软件测试分类、定义
上一篇 /
下一篇 2022-07-28 17:58:12
/ 个人分类:软件测试技术
1 定义
1.1 早期定义:
1979,Myers,《软件测试艺术》,测试是为发现错误而执行程序的过程。
理解:
测试是为了证明程序有错,而不是证明程序无错误。一个成功的测试是发现了至今未发现的错误的测试。
1.2 优化定义:
1983,IEEE
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
理解:
测试是在用户需求和开发技术之间找一个平衡点。
1.3 国内定义
GB/T 11457
依据规范的软件检测过程和检测方法,按照测试计划和测试需求对被检测软件的文档、程序和数据进行测试的技术活动。软件测试是一个过程,测试不只是测试执行,它包括从计划开始到测试结束的一系列活动。软件测试需要测试方法和技术,或者说技巧。软件包括程序、数据和文档,除了执行程序,数据和文档也需要测试。
本人理解:
软件测试是根据用户的显性或隐藏需求,通过高效的技术手段,尽早发现文档、程序、数据等缺陷的一系列活动。
2 目的
Ø 从定义上来看是尽早发现文档、程序、数据等缺陷
Ø 是确保最终交给用户的产品的功能符合用户的需求,把尽可能多的问题在产品交给用户之前发现并改正
Ø 软件测试的目的是检验软件系统是否满足规定的需求或弄清预期结果与实际结果之间的差别。(通过发现系统缺陷,寻找技术和需求之间的平衡点,提升系统质量,提高用户满意度)
3 分类
从不同的角度,软件测试很不同的分类。
3.1 从测试流程阶段分
一个典型的“V”模型软件开发流程,各项软件测试工作是在项目开发流程中循序渐进进行的。下面将介绍各个阶段测试的含义。
l 单元测试:单元测试是对程序中的单个子程序或具有独立功能的代码段进行测试的过程。
l 集成测试:集成测试是在单元测试的基础上,先通过单元模块组装成系统或子系统,再进行测试。重点是检查模块之间的接口是否正确。
l 系统测试:系统测试是针对整个产品系统进行的测试,验证系统是否满足需求规格的定义,以及软件系统的正确性和性能等是否满足其需求规格的要求。
l 验收测试:验收测试是部署软件之前的最后一个测试阶段。验收测试的目的是确保软件准备就绪,向软件购买者展示该软件系统能够满足用户的需求。
l (6)回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
3.2 按是否可查看代码
l 黑盒测试
黑盒测试,指的是把被测的软件看作一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。它只检查程序呈现给用户的功能是否按照需求规格说明书的规定正常使用、程序是否能接收输入数据并产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
l 白盒测试
白盒测试,指的是把盒子打开,去研究里面的源代码和程序执行结果。它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条逻辑路径是否都能按预定要求正确工作。
l 灰盒测试
灰盒测试介于黑盒测试与白盒测试之间。
可以这样理解,灰盒测试既关注输出对于输入的正确性,同时也关注内部表现。但这种关注不像白盒测试那样详细、完整,它只是通过一些表征性的现象、事件、标志来判断内部的运行状态。有时候输出是正确的,但内部其实已经错误了,这种情况非常多。如果每次都通过白盒测试来操作,效率会很低,因此需要采取灰盒测试的方法。
3.3 按测试实施组织
收藏
举报
TAG: