测试复习随笔:软件测试的分类

软件测试的分类——从不同维度阐述

 

一、按照开发阶段划分

1.单元测试阶段;

单元测试是指对软件中的最小可测试单元进行检查和验证,人为规定的最小的被测功能模块,例如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等;

测试对象:单元模块

测试人员:白盒测试工程师或开发人员

测试依据:代码和注释+设计详细文档

测试方法:白盒测试

测试内容:测试单元内部的数据结构、逻辑结构、异常处理等

评估基准:主要是逻辑覆盖率

2.集成测试阶段;

主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。集成测试是单元测试的逻辑扩展,它最简单的形式是:把两个已经测试过的单元组合成一个组件,测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合;

测试对象:模块间的接口

测试人员:白盒测试工程师或开发人员

测试依据:单元测试模块+概要设计文档

测试方法:黑盒、白盒相结合测试(或称为灰盒测试)

测试内容:主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能

评估基准:主要是接口覆盖率

3.系统测试阶段;

系统测试是将已经确认的软件、计算机硬件、外设、 络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与设计目标相比较,发现所开发的系统与目标不符或矛盾的地方,从而提出更加完善的方案,它包括了回归测试(指修改了旧代码后,重新进行测试以确认此修改没有引入新的错误或导致其他代码产生错误的一种测试方法)和冒烟测试(在软件开发过程中的一种针对软件版本包的快速基本功能验证策略,是对软件基本功能进行确认验证的手段,并非对软件版本包的深入测试);

测试对象:整个系统

测试人员:白盒测试工程师或开发人员

测试依据:需求规格说明文档+系统设计目标文档

测试方法:黑盒测试

测试内容:主要测试功能、界面、可靠、易用、性能、兼容、安全、安装使用、等方面

评估基准:主要是测试用例对需求规格的覆盖率

4.验收测试阶段

验收测试也叫做交付测试,验收测试的目的是保证软件的准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求。它包括了α测试(用户在开发环境下操作使用)、β测试(用户在私人环境下操作使用,需要确保回收使用中的缺陷情况)。

测试对象:整个系统

测试人员:最终交付用户(需求者)代表

测试依据:用户需求标准或验收标准

测试方法:黑盒测试

测试内容:大体和系统测试相同

评估基准:主要是测试用例对需求规格的覆盖率

 

PS:这里涉及到一个问题,就是系统测试和验收测试的目的到底有什么区别的问题,为什么有了系统测试还要有验收测试呢span>

个人的观点是:系统测试更多的是验证当前系统实现的功能是否和最开始系统设计文档上的目标要求是否相符,这时候是不应当直接引入验收用户的需求的,验收测试才是正式验证是否和需求用户(验收方)的要求相符。

二、按照测试对象划分

1.功能测试

主要包括验证软件是否实现需求设计文档上要求的功能目标,也包括未提到但是客观上需要的功能,但是未有需求却实现某一功能这种情况应当算作软件错误;

2.性能测试

主要测试软件关于响应速度,用户高并发(吞吐量),数据存储最大值,资源利用,精度处理等问题;

3.安全测试

主要测试软件安全相关的问题,如密码加密,加密传输,SQL注入等等,同性能测试一样,是一个相对独立的领域,可以作为软件测试的一个专业发展方向;

4.兼容测试

主要测试软件对于不同系统、不同平台、不同运行环境的兼容性问题,包括软件环境和硬件环境;

5.易用测试

主要测试软件是否能够被用户良好使用,目的是让软件更便于使用;

6.界面测试

主要测试软件界面的元素风格、缩放变化、元素可用等问题,即UI测试;

7.文档测试

主要测试软件使用文档、安装文档的完整、正确、一致、易用问题;

8.安装测试

主要测试软件安装过程中的步骤及数据配置、环境配置等问题;

9.维护测试

主要测试软件的健壮性和可扩展性,保证软件后期便于更新维护

三、按照观察对象划分

1.黑盒测试

黑盒测试也称功能测试,它是通过测试来检测 每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试;

2.白盒测试

白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致;

3.灰盒测试

介于白盒测试与黑盒测试之间的一种测试,主要用于集成测试阶段。关注输入、输出数据的正确性的同时也关注程序内部的情况。

四、按照执行过程划分

1.静态测试

不运行程序本身,仅通过分析和检查源程序的语法、结构、过程、接口来检查程序的正确性。对需求规格说明书、软件设计说明书、流程图分析、符 执行来寻找软件错误;

2.动态测试

运行被测的程序。检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性的等性能,这种方法主要是由三部分进行组成的:测试用例、执行程序、分析程序运行输出的结果。

五、按照测试效率划分

1.手工测试

是由人一个一个的输入测试用例,然后观察结果、和机器测试相对应,属于比较原始,大事需要一个一个步骤进行测试;

2.自动化测试

在预设条件下运行系统或应用程序,评估运行结果、预先条件应该包括正常的条件和异常条件。简单的说自动化测试是把人为驱动的测试行为转化为机器执行的一种过程。

六、按照目标市场划分

1.本地化测试

面向目标市场(即某一地域)进行测试,包括了语言、使用习惯、地域特色等等;

2.国际化测试

面向全球市场,为了让全球不同地区用户能够更好使用该软件系统,这里面最明显的体现应该是语言转换;

3.无障碍测试

对于一些残障人士而专门开设的测试流程,目的是便于残障人士对于软件的使用,其实博主本人更觉得这并不是一个需要满足目标市场才去进行的测试,而应该把无障碍测试放入所有的测试项目中去必须执行他,只是这个改变还需要时间和过程。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月4日
下一篇 2020年11月4日

相关推荐