单元测试的定义:单元测试是对软件的基本组成单元进行的测试,如函数、类或类的方法。
单元测试的目的:
- 检查每个软件单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求;
- 发现单元内部可能存在的各种差错;
- 提高软件质量。
为了清晰地比较几种逻辑覆盖法设计测试用例的异同,逻辑覆盖法设计测试用例的几种方法我们都将使用以下代码为例。(为了方便在测试用例中进行标识,笔者在语句前标上了序号)
public static int test(int a,int b,int c) {
1 int result = 0;
2 if(a == 0 or b > 2) {
3 result = b - a;
}
4 if(a > 0 and c > 0 ) {
5 result = c * a;
}
6 return result;
}
使用语句覆盖法设计白盒测试用例的具体步骤如下:
第 1 步:分析待测试程序,画出程序的流程图。上述代码的参考流程图如下图所示(为了方便后面的讲解,笔者在流程图中标上了序号)。如果对语句覆盖法比较熟悉或代码逻辑比较简单,也可以省略画流程图这一个步骤。
第 2 步:分析流程图,编写测试用例。
分支判定覆盖
概述 :分支覆盖,也叫判定覆盖,是指运行代码进行测试时,程序中的所有判定语句的真、假分支至少都被执行过一次。
条件覆盖
条件覆盖是指运行代码进行测试时,程序中所有判断语句中的条件取值为真值为假的情况都被覆盖到,即每个判断语句的所有条件取真值和假值的情况都至少被经历过一次。
分支-条件覆盖
分支(判定)覆盖是设计一定量的测试用例使程序中的每个判断语句的真假分支都得到覆盖,但是分支覆盖不能保证判断语句中每个条件的真、假分支都得到覆盖。
条件组合覆盖
条件组合覆盖又称为多条件覆盖,是指设计足够数据的测试用例,使每个判定语句中的所有判定条件的各种可能的组合都至少被执行一次。
路径覆盖
程序中的路径是执行程序时经过的分支的集合。
基本路径覆盖
路径覆盖可以使程序中的路径都被测试到,但是,要对程序中的路径做到完全覆盖经常是无法实现的。