第2章 传统的软件测试的设计方法
从本章开始介绍软件测试的各种设计方法,这是学习软件测试的重要内容。
5种黑盒测试方法如下。
·等价类 边界值。
·决策表。
·状态转换图。
·决策树。
·正交法。
7种白盒测试方法如下。
·语句覆盖。
·分支覆盖。
·条件覆盖。
·判定 条件覆盖。
· 覆盖。
·路径覆盖。
·控制流测试。
最后分析测试用例设计中几个错误观点。
基于质量的测试方法参看第1.1.9节软件测试类型,本书不再进行深入介绍;基于风险的测试方法将在第4章介绍;基于经验的测试方法将在第3章介绍。另外,关于软件测试的设计,读者可以参考参考文献【5】、【13】进行深入学习。
2.1 运用等价类/边界值设计测试用例
通过等价类/边界值法设计软件测试用例是测试用例设计的最基本的方法。这两种方法密不可分。下面先介绍"等价类分析法"。
2.1.1 等价类
等价类是指软件测试对象的某个参数输入域的子集合。在该子集合中,各个输入数据对于识别软件测试对象中的缺陷是等价的。只要测试等价类的某一个代表值,就可以认为覆盖了该等价类所有其他值的软件测试。
等价类的划分
是把软件测试对象的输入域划分成若干部分,然后从每一部分中选取少数具有代表性的数据,作为测试用例输入数据的测试用例设计技术。
等价类的两个假设
(1)软件测试对象等价类中任意一个代表值没有发现缺陷,则认为等价类内其他值也不能发现缺陷。比如等价类为【0~5】,如果测试数据4没有发现缺陷,那么测试数据1也不可能发现缺陷。
(2)软件测试对象等价类中任意一个代表值可以发现缺陷,则认为等价类内其他值也都可以发现缺陷。比如等价类为【0~5】,如果测试数据4发现缺陷,那么测试数据1也肯定能发现缺陷。
有效等价类与无效等价类
(1)有效等价类:对于软件测试对象而言,有效等价类指的是合理的、有意义的数据构成的集合。
(2)无效等价类:对于软件测试对象而言,无效等价类指的是不合理的、没有意义的数据构成的集合。
案例2-1:等价类的分类。
通过表2-1来看各种类型的数据是如何通过等价类进行分类的。
表2-1等价类的设计法
下面再介绍一下"边界值分析法"。
2.1.2 边界值
边界值分析是对输入或输出的边界值进行软件测试的一种测试方法。通常,边界值分析法作为对等价类划分法技术的补充。这种情况下,其测试用例来自等价类的边界。由于程序员在开发时在边界区域比较容易犯错误(如原本应该为a<100,却写成a≤100),所以边界值测试法就显得非常重要。由于边界值是随着等价类出现的,所以边界值可以分为有效等价类的边界值和无效等价类的边界值。
边界值分析的步骤如下:
(1)识别软件测试对象中的参数等价类;
(2)识别每个等价类的边界值;
(3)创建边界值的相关测试用例;
(4)定义边界值分析技术的覆盖率。
案例2-2:边界值的设计法。
基于表2-1,来看各种情况的边界值如何划定,见表2-2。
表2-2边界值的设计法
2.1.3 基于输出的等价类/边界值划分
等价类/边界值除了可以以输入进行分类,也可以以输出进行分类,如案例2-3所示。
案例2-3:公园门票规定:
身高1.2m以下的儿童免票;
身高1.2~1.4m的儿童半票(含1.2m);
年龄在60~69岁之间的老人半票(含60岁);
年龄在70岁以上的老人免票(含70岁);
在校学生半票(不含在职学生、电大学生);
革命烈士家属、现役军人免票。
我们可以划分等价类为全票、半票和免票,见表2-3。
表2-3公园门票等价类/边界值
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。