各种类型的测试
1. 单元测试
是对软件或硬件基本组成单元进行的测试。其测试对象是每个模块下的实现具体功能的单元,一般对应详细设计中描述的设计单位。在具体实现时,对应的是一个或一组函数,可能需要开发 测试驱动模块或者测试工具。单元测试属于早期测试,其侧重点在于发现程序设计或实现的逻辑错误,主要属于白盒测试的范畴。
2. 集成测试
对部分模块的组合测试,验证组成系统的各部件之间接口和集成问题,这里不同模块往往是分配给不同的程序设计开发人员。
3. 系统测试
针对全部需求说明进行黑盒测试,包括系统中所有部件。总体包括功能测试和性能测试两部分,功能测试是验证系统功能是否实现产品需求的测试过程,性能测试在验证是否实现产品需求的基础上,进一步测试系统的容错性、稳定性、异常处理能力、高强度输入处理能力等系统性能方面的测试过程。其侧重点在于考察功能的需求规格符合性、功能设计或实现的用户满意度,以及系统性能的稳定性,主要属于黑盒测试的范畴。
4. 验收测试
确定系统是否满足客户验收标准而执行的正式测试,测试的结果将决定客户是否接收该系统。
5. 验证和确认
按照CMMI的定义,验证关注工作产品是否恰当的反映了对应的需求,而确认是证明所提交的产品实现了用户的要求。据此,单元测试、集成测试和系统测试属于验证(Verification)的内容,而验收测试属于确认(Validation)的内容。
6. 回归测试
版本更改后重新进行的测试,测试时既要测试改动部分,也要测试受影响部分,回归测试的关键在于决定哪些测试必须被重复,以及测试工作的可重现性。
7. 冒烟测试
主要测试被测系统是否具有基本运行功能,如启动、加载、执行基本操作等。冒烟测试在采用每日构建的开发策略中可以对构建结果进行即时验证,也可以作为验证被测系统是否满足测试入口条件、达到测试就绪状态的方法。
8. 性能测试
一般情况下,软件项目中的需求、开发和测试工作总是过于关注系统的功能,直到后期才关注系统的非功能性问题。实践证明,这种方法会给系统带来隐患,增大产品失败的风险,在项目后期需要付出极大的努力进行改正。软件的非功能方面包括软件的性能、可维护性、可扩展性、安全性和可使用性等。其中性能测试在软件的质量保证中起着重要作用,它主要包括三个方面的测试内容:客户端性能测试、网络性能测试、服务器端性能测试。通常情况下,三个方面有效结合,可以达到对系统性能起全面的分析和瓶颈的预测。
9. 白盒测试
白盒测试也称为结构测试或者逻辑驱动测试,它是在知道产品内部实现过程的情况下,通过测试来检查产品内部动作是否按照规格说明书的规定正常进行。检验程序中的每条路径是否都能按预定要求正确工作,而不管它的整体功能。白盒测试的方法主要有逻辑驱动、路径测试等,主要用于产品验证。
10. 灰盒测试
介于白盒和黑盒测试之间的一种测试,关注输出对于输入的正确性,同时也关注程序内部表现,但这种关注不象白盒那么详细完整,只是通过一些现象、事件、标志来判断内部的运行状态,有时输出是正确的,但内部其实已经发生错误,因此需要采取这样的灰盒测试方法来发现此类问题。
12. 黑盒测试
也称为功能测试或数据驱动测试,它是在已知产品应该具有的功能的情况下,通过测试来检测每个功能是否都能正常使用,在测试时完全不考虑程序内部结构,只检查程序功能是否按照需求说明书的规定正常使用,程序是否能适当的接收输入数据而产生正确的输出信息,并保证外部信息(如数据库或文件)的完整性。
13. 敏捷测试
这个目前没有找到标准定义。一般理解,在采用敏捷开发模式的项目中进行的测试,称为敏捷测试。 需要大家再补充。
集成测试
1. 什么是集成测试?
集成测试又称为“组装测试”“联合测试”。集成测试遵循特定的策略与步骤 将已经通过单元测试的各软件单元(或模块)逐步组合在一起进行测试,以期望通过测试发现各软件单元接口之间存在的问题。
理论上,凡是两个单元(如函数单元)的组合测试都可以称为集成测试。实际操作中,通常集成测试的对象为模块级的集成和子系统间的集成,其中子系统集成测试又