程序测试(program testing)是指对一个完成了全部或部分功能、模块的
计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行。软件的正确性尚未得到根本的解决,软件测试仍是发现
软件错误和
缺陷的主要手段。为了发现系统中的错误,应竭力设计能暴露错误的
测试用例。测试用例是由测试数据和
预期结果构成的。一个好的测试用例是极有可能发现为止尚未发现的错误的测试用例。
高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。软件测试所追求的是以尽可能少的时间和人力发现软件产品尽可能多的错误。是指对一个完成了全部或部分功能、模块的
计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行。
软件的正确性尚未得到根本的解决,软件测试仍是发现
软件错误和缺陷的主要手段。为了发现系统中的错误,应竭力设计能暴露错误的测试用例。测试用例是有测试数据和预期结果构成的。一个好的测试用例是极有可能发现为止尚未发现的错误的测试用例。
灰盒测试,确实是介于
白盒测试与
黑盒测试之间的,可以这 样理解,
灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
白盒测试,又称结构测试。他的前提是可以把程序看成在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部
逻辑设计测试用例,检测程序中的主要执行通路是否能按照预定要求正确工作。
白盒测试根据软件的内部逻辑设计设施用例,常用的技术是
逻辑覆盖,即考察用测试数据运行被测程序是对
程序逻辑的覆盖程度。主要的覆盖标准有:
语句覆盖、
判定覆盖、
条件覆盖、判定/条件覆盖、组合条件覆盖和
路径覆盖。
黑盒测试根据关键需求说明书所规定的功能来设计
测试用例,它不考虑软件的内部结构和处理算法。常用的黑盒测试技术包括
等价类划分、边值分析、错误推测和因果图等。
单元测试(unit testing),也称
模块测试,通常可放在编程阶段,由程序员对自己编写的模块自行测试,检查模块是否实现了
详细设计说明书中规定的功能和算法。单元测试主要发现编程和
详细设计中产生的错误,单元测试计划应该在详细设计阶段制定。
单元测试期间着重从以下几个方面对模块进行测试:模块接口、局部数据结构、重要的执行通路、出错处理通路及
边界条件等。
集成测试(integration testing),也称
组装测试,它是对由各模块组装而成的程序进行测试,主要目标是发现模块间的接口和通信问题。
集成测试主要发现设计阶段产生的错误,集成
测试计划应该在
概要设计阶段制定。集成的方式可分为非渐增式和渐增式。
确认测试(validation testing),主要依据
软件需求说明书检查软件的功能、性能及其他特征是否与用户的需求一致。确认
测试计划应该在
需求分析阶段制定。