等价类的划分:
在考虑一个功能的测试的时候,我们可以先做一个分类,从每一类中选择有代表性的数据或者情况来做测试,然后根据实际情况去做合适的分类和选择有代表性的数据去做测试。这种测试思想在术语上被称作等价类的划分。
举例:例如测试计算器的加法验算,加数的选择范围无穷尽,所以我们先对这些加数进行分类,然后从不同的类别中选择具有代表性的数进行测试。分类的方法也有许多,比如对加数的选择范围进行分类:
- 第一种:可以分为正数,负数,0
- 第二种:分类的标准为有无进位
- 第三种:按照加数的位数来分类
- 第四种:按照加数的个数来分类
- ......
然后我们选择合适的分类来进行测试,例如选择第一种分类方法,分别从正数、负数、0中选择有代表性的数据进行输入测试。
边界值分析:
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法(黑盒测试是指在完全不考虑程序内部结构和内部特性的情况下,只检查程序功能能否按照需求规格说明书的规定正常使用)。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
举例常见的边界值:
- 对于16-bit的整数而言,32767和-32768是边界值
- 屏幕上光标在最左上方、最右下方位置
- 报表的第一行和最后一行
- 数组元素的第一个和最后一个
- 循环的第0次、第一次和倒数第二次、最后一次
- ......
一般情况下,我们将等价类的划分与边界值分析法综合起来使用,来进行测试,往往会取得更好的结果。
因果图:
因果图法是通过文字形式对需求做分析,将其中的原因和结果通过图的形式表现,整个过程一目了然。它适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。做因果图的目的是为了把软件产品的内在逻辑整理清楚,避免在条件复杂的情况下产生遗漏或者差错,方便测试的进行。因果图法着重分析输入条件的各种组合。
举例:招生系统中关于计算加分的一个小功能,如果考生是体育特长生,加五分;如果考试是少数民族,加五分;如果考生同时具备两者条件,加八分。这在软件方面是需求定义,定义了加分的条件(原因)和具体加分额度(结果),用因果图的形式表示出来:
?
判定表:
判定表是另一种表达逻辑判断的工具,能把所有条件组合充分地表达出来。判定表一般和因果图结合使用,因果图法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。相较于因果图,判定表更加清晰明了,在实际的测试工作中判定表应用得更要广泛。用判定表的形式来将上述例子的需求进行分析:
代码覆盖:
在一些大的软件研发项目中,会以测试达到的代码覆盖率来作为衡量软件测试工作的标准之一。尽可能多地测试软件构成的代码,那么软件产品的质量就会更有有保障。那么下面介绍三种常见的代码覆盖方法:
- 语句覆盖:测试人员通过测试用例将代码中所有可执行的代码都进行执行? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 举例:
if(a==0)
b=-1; 在做上述代码的语句覆盖时,? 应当保证if语句的判断条件为真,即“a==0”,使得“b=-1"能够被成功执行。 - 分支覆盖:通过测试用例将分支语句中的每一个分支都测试到? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 举例:
if((a==0)&&(b==0))
{
c=1;
}
else
{
c=2;
} 在做上述代码的分支覆盖时,应测试到条件为真或者为假的两种情况,测试时两个判定条件应当同时满足,并且c的两种情况都应得到测试。 -
条件覆盖:条件覆盖相较于分支覆盖要求更加严格,条件覆盖对于每一个在分支判断中出现的条件,不仅程序中的每个语句至少被执行一次,而且使每个判定表达式中的每个条件都取到各种可能的结果.
|