软件测试的策略和方法 软件测试工具
软件测试按使用的测试技术不同可以将测试分为静态测试和动态测试。
静态测试
静态测试是指依据需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行,对软件进行分析、检查和测试,不实际运行被测试的软件,约可找出30~70%的逻辑设计错误。
动态测试
动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。动态测试的两个基本要素:被测试程序和测试数据(测试用例)。
静态测试可以分为静态分析和代码审查。动态测试可为分白盒测试、黑盒测试和穷尽测试。
静态分析
静态分析是一种计算机辅助静态分析方法。主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析的对象是计算机程序,程序设计语言不同,相应的静态分析工具也就不同。目前具备静态分析功能的软件测试工具如Purify、Macabe等。
代码走查
代码走查是一种人工测试方法。包括代码评审和走查。主要依靠有经验的程序设计人员根据软件设计文档,通过阅读程序,发现软件缺陷。
白盒测试
白盒测试又称结构测试,玻璃盒测试或基于覆盖的测试。
白盒测试是一种按照程序内部的逻辑结构设计测试方法。在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。检验程序的每条通路是否按预期正常进行,力求提高测试覆盖率。
白盒测试把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
黑盒测试
黑盒测试又称为功能测试,数据驱动测试,基于规格说明书的测试。
黑盒测试是一种从软件需求开发,根据软件需求规格说明设计测试用例,并按照测试用例的要求运行被测程序的测试方法。它根据软件产品的功能设计规格,在计算机上进行测试,以证实每个已经实现的功能是否符合要求。
黑盒将被测试程序对象看作黑盒子,不考虑其内部程序结构与处理过程,仅仅对于程序接口进行测试。即检查适当的输入是否能够产生适当的输出。
穷尽测试
不论黑盒还是白盒测试都不能进行穷尽测试, 所以软件测试不可能发现程序中存在的所有错误,因此需精心设计测试方案,力争尽可能少的次数,测出尽可能多的错误。