软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。
白盒测试方法主要有:
- 代码检查法:检查代码的逻辑、语法、格式等是否正确。
- 静态结构分析法:对程序进行词法分析、语法分析、控制流分析、数据流分析等,以了解程序的结构。
- 静态质量度量法:对程序进行质量度量,以了解程序的质量。
- 逻辑覆盖法:通过测试用例覆盖程序中的所有逻辑路径,以检查程序的逻辑正确性。
- 基本路径测试法:通过测试用例覆盖程序中的所有基本路径,以检查程序的控制流正确性。
- 域测试:对程序中的每个域进行测试,以检查程序的域正确性。
- 符号测试:对程序中的每个符号进行测试,以检查程序的符号正确性。
- 路径覆盖和程序变异:通过测试用例覆盖程序中的所有路径和程序变异,以检查程序的控制流和数据流正确性。
黑盒测试方法主要包括:
- 等价类划分法:将程序的输入划分为若干个等价类,然后选择若干个等价类进行测试。
- 边界值分析法:对程序的边界值进行测试,以检查程序的边界值正确性。
- 错误推测法:根据经验或直觉推测程序中可能存在的错误,然后进行测试。
- 因果图法:通过因果图来描述程序中的各个因素之间的因果关系,然后进行测试。
- 判定表驱动法:通过判定表来描述程序中的各个条件和操作之间的逻辑关系,然后进行测试。
- 正交试验设计法:通过正交试验设计方法来选择测试用例,以覆盖程序中的所有功能和边界值。
- 功能图法:通过功能图来描述程序的功能和流程,然后进行测试。
- 场景法:通过场景来描述程序中的各个场景和流程,然后进行测试。
从是否执行程序的角度划分,测试方法又可分为静态测试和动态测试。静态测试包括代码检查、静态结构分析、代码质量度量等。动态测试由3部分组成:构造测试实例、执行程序和分析程序的输出结果。 |