软件测试分类(按开发阶段划分)_海若的博客-程序员秘密

技术标签: test  

单元测试

 单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。

单元测试的内容:

    模块接口测试

应对通过所测模块的数据流进行测试

调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配

所测模块调用子模块时,输入子模块的参数与子模块的形式参数在个数、属性和顺序上是否匹配。输出给标准函数的参数的个数、属性和顺序是否正确。

全局变量的定义在各个模块中是否一致。

当模块通过外部设备进行输入/输出操作,文件属性是否正确、open和close语句是否正确,规定的I/O格式说明与I/O语句是否匹配;缓冲区容量是否与记录长度匹配,在读写之前是否打开了文件,读写之后是否关闭了文件,对I/O错误是否做了处理

    局部数据结构测试

局部数据结构是最常见的错误来源

不一致的数据类型

不正确或不一致的数据说明

使用尚未赋值或尚未初始化的变量

错误的初始值或错误的缺省值

    路径测试

算的优先次序、常见的比较和控制流

 

    错误处理测试

遇见出错的条件,并设置适当的出错处理

  

    边界测试

例如循环的次数,最大或最小值

 

步骤:

利用设计文档设计测试用例;创建被测模块的桩模块或驱动模块;利用被测试模块、驱动模块和桩模块来建立测试环境,进行测试

 

驱动模块:相当于所测模块的主程序,它接收测试数据,把这些数据传送给所测模块,最后再输出实际结果

桩模块:用以代替所测模块调用的子模块。

 

 ⑵集成测试

又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。

1、在把各个模块连接起来的时候,穿越各个模块的接口的数据时候会丢失

2、一个模块的功能是否会对另一个模块的功能产生不利的影响

3、各个子功能组装完成后,能否达到预期的父功能

4、全局数据结构是否有问题

5、单个模块产生的误差累计起来是否会放大

 

模块组装成系统的方式:一次性组装方式和增殖式组装方式

1、一次性组装方式

  先对模块分别进行测试,再把所有模块组装进行测试

  缺点:发现错我不容易定位 

2、增值式组装测试

  先对一个个模块进行模块测试,然后将这些模块逐步组装成系统

  分为两种方式:自顶向下的增殖方式和自底向上的增殖方式

①    自顶向下的增殖方式(不需要驱动模块)

将模块铵系统程序结构,严控制层次自顶向下进行组装。

首先以主模块作为被测模块兼驱动模块,所有直属主模块的下属模块全部用桩模块代替,对主模块进行测试。再采用深度优先或广度优先的策略,用实际模块代替桩模块,再用桩模块代替它们的直接下属模块,与已经测试的模块构成新的子系统。然后进行回归测试。

深度优先策略:

 

 

广度优先策略:(不需要桩模块)

 

②    自底向上的增殖方式(不需要驱动模块)

由驱动模块控制最底层模块的并行测试。

 

 

③ 混合增殖式

自顶向下增殖方式:

优点:能够较早的发现主要控制方面的问题

缺点:需要建立桩模块,增加了一些附加的测试,涉及算法和输入输出的模块一般在底层,这些底层模块要到组装和测试的后期才能发现。一旦发现问题就会出现过多的回归测试。

自底向上增殖方式:

优点:不需要建立桩模块,建立驱动模块要比建立桩模块要简单得多,同时涉及到算法已近输入输出的模块要先测试,把最容易出现问题的部分在早期解决。

缺点:程序一直未能作为一个实体存在,直到最后一个模块加上才能形成一个实体

    。控制方面最后才能接触。

 

集成测试完成的标志:

1、成功执行了测试计划中规定的所有集成测试

2、修改了所发现的错误

3、测试结果通过专门小组的评审

集成测试需要提交的测试报告:

集成测试计划、集成测试规格说明书以及集成测试分析报告

 

3.确认测试

 

确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。

 ① 进行有效性测试

现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。无是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。

  确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法

②软件配置复查

     保证软件配置的所有成分齐全,质量都符合要求。应该遵守用户手册和操作手册中的规定步骤。

  4、系统测试

 软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,

目的在于与系统需求比较,发现问题

5、验收测试

以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。

不是对系统进行全覆盖测试,而是对核心业务流程进行测试。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/nihao0526/article/details/40582965

智能推荐

微软官方卸载Office 2003、2007、2010专用套件下载_weixin_34185320的博客-程序员秘密

无法通过“控制面板”卸载 Office 2003、Office 2007 或 Office 2010 套件的情况下,如何才能将其卸载? 虽然 Windows 安装程序清理实用程序(Windows Installer Clean Up)解决了一些安装问题,但有时它会损坏计算机上安装的其他组件。因此,已从 Microsoft 下载中心删除该工具。本文中的修复问题解决方案能够...

在游戏上第3部分完美的信息游戏_weixin_26642481的博客-程序员秘密

Previous article 上一篇文章 The economics literature distinguishes the quality of a game’s information (perfect vs. imperfect) from the completeness of a game’s information (complete vs. incomplete). Perf...

关于selenium在爬虫中的应用_程序猿的冒险谭的博客-程序员秘密

这是笔者在selenium中爬取哔哩哔哩鬼畜区的一个案例,注释十分清晰,基本上每一个函数都有注释。希望对学习这一块的同志有帮助。import reimport osimport sysimport you_getfrom selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom multiprocessing.dummy import Poolfrom lxml import etre

腾讯手游助手修改共享目录/缓存目录/Temp文件夹路径_dkbnull的博客-程序员秘密

使用帮助 目录:https://blog.csdn.net/dkbnull/article/details/87933584        我们在电脑上安装了 腾讯手游助手 后,发现腾讯手游助手的缓存目录/游戏安装目录/共享目录(即"Temp"文件夹)的路径,无法通过设置修改,这时,我们可以通过修改注册表的方法进行修改。1、Win+R 打开运行窗口,输入 regedit 打开注册表编辑...

卷积神经网络的卷积核参数如何更新_【超详细教程(附源码)】如何用FPGA加速卷积神经网络CNN运算?..._weixin_39703561的博客-程序员秘密

原创教程,转载请联系作者并注明出处:https://github.com/WalkerLau源码地址:https://github.com/WalkerLau/Accelerating-CNN-with-FPGA最近发现很多小伙伴都想用FPGA加速卷积神经网络运算,而恰好我刚做完的本科毕设就是这个题目,所以就有了写这个教程的想法,希望能给还没开始的小伙伴一点思路与帮助,更希望大神们给出一些进一步优...

计算机科学与技术各大学的强项,计算机科学与技术院校排名纵览_Taraus zhang的博客-程序员秘密

一、计算机科学与技术一级学科最新排行:重点优势学科单位: 1 清华大学 2 北京航空航天大学 3 北京大学 4 上海交通大学 5 哈尔滨工业大学 6 华中科技大学 7 浙江大学 8 吉林大学 9 东南大学 10 复旦大学 11 北京邮电大学 12 武汉大学 13 东北大学 14 南京大学优势学科单位: 1 中国科学技术大学 2 西安电子科技大学 3 西安交通大学 4 西北工业大学 5 北京理工大学...

随便推点

Computer Vision_Matlab (2)_Chengzz_Lord的博客-程序员秘密

1Image ModificationIa=imread('rooster.jpg');Ib=imread('elephant.png');Ic=imread('woods.png');Ib(403,404)=1;Ib(401:end,401:end)=255;figure(1), clfimagesc(Ib); colormap('gray')Isyn=zeros(201,201);Isyn(51:150,51:150)=1;Isyn(81:120,:)=0...

MiKTeX+TeXstudio 快速搭建latex环境(备忘)_Kblacksmith的博客-程序员秘密

MiKTeX官网下载:连接地址下载TeXstudio编辑器。新建文件,保存,编译(F5)后即可得到.tex文件和pdf文件。

python对比两个excel表 【超简单】_python对比两个excel文件_snow5618的博客-程序员秘密

注:由于我们不是专门做数据处理与分析的,因此懂的也少,所以编写的python程序是简单易懂的,如果存在bug或者可以有更好的方法,欢迎大佬指出!!!主要思路:就是将excel表中每条数据变成一个字典,然后添加到列表中,组成一个元素为字典类型的列表(由于数据不可公开,所以做了马赛克)。如下:excel数据:表1​excel数据:表2可以看到每个excel表数据很多,都几千条,如果一个个看很费时。import openpyxl# 加载第一个Exceldata_raw= openpyxl..

python入门教程陈孟林_Python基础教程学习路线_weixin_39673293的博客-程序员秘密

Python基础教程学习路线,如果想从零基础熟练掌握python开发,你需要有一套完整的学习路线,学习Python的优势如何学习等相关的内容。接下来小编带你一起寻找Python 基础教程学习路线~一、学习Python的优势1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。2.易于阅读:Python代码定义的更清晰。3.易于维护:Python的成功在于它...

关于Spring+Hibernate 整合 出现 no transaction is in progress_spring升级no transaction is in progess_荆轲刺秦的博客-程序员秘密

如果单单是因为配置问题的话,各位可以在网上找到有关配置的教程。而我想说的是在你配置没有问题的时候,却还是一直出现这个异常的处理,以下是我出异常的代码(我的配置是没有问题的,和网上大多教程一样):@Repository("accountDaoImpl")public class AccountDaoImpl implements AccountDao{ @Autowired ...

软考软设 1.计组 知识点_a000h-bfffh_hjwwow.的博客-程序员秘密

解析:依题意,改地址段共有BFFFH - A000H + 1 = 2000H = 2×16³ = 2³,又因为按字节编制,1个字节即一个存储空间,因此共 2^13 个存储单元,又1KB=1024B,答案即8K。解析:相联存储器也称为按内容访问存储器,是一种根据存储内容(不根据地址) 来进行存取的存储器,以实现快速地查找快表。流水线方式:单条指令所需时间+(n-1)×(流水线周期),其...

推荐文章

热门文章

相关标签