大家好,又见面了,我是你们的朋友全栈君。
第1章 测试用例设计方法
测试用例设计方法包括黑盒测试用例设计方法和白盒测试用例设计方法,下面
分别进行介绍。
1.1 黑盒测试用例设计方法
黑盒测试用例设计方法包括等价类划分法、边界值分析法、判定表法、因果图法、正交试验法、状态迁移图法、流程分析法、输入域测试法、输出域分析法、异常分析法和错误猜测法等,下面进行详细介绍。
1.1.1 等价类划分法
1.什么是等价类划分法
等价类划分法是一种典型的黑盒测试设计方法。该方法主要针对测试子项进行规格分析,然后获得用例,而不用对系统内部处理进行深入了解,也是目前测试设计过程中普遍使用的一种方法。等价类划分法是将系统的输入域划分为若干部分,然后从每个部分中选取少数有代表性的数据进行测试,这样可以避免穷举法产生的大量用例。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据用来揭示软件中的错误都是等效的,并且合理地假定测试某等价类的代表值就等价于对这一类其他值的测试。因此,把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据取得较好的测试结果。
等价类划分有两种不同的情况—有效等价类和无效等价类。
有效等价类:对于系统的规格说明来说,由合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:对于系统的规格说明来说,由不合理的、无意义的输入数据构成的集合。
在设计测试用例时,要同时考虑这两种等价类,因为软件不仅要能接收合理的数据,还要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
2.如何使用等价类划分法
等价类划分法的具体实施步骤如下。
(1)划分等价类。
这里等价类的划分基于特性测试子项所对应的软件需求规范(Software Requirement Specification,SRS)片段。可以参考下面几条原则。
① 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
例如,在1<x<5中,一个有效等价类为1<x<5,两个无效等价类为x≥5和x≤1。
② 在输入条件规定了输入值的集合或者规定了必须如何操作的情况下,可以确立一个有效等价类和一个无效等价类。
例如,规定字段“周”是输入周几,则该输入条件的一个有效等价类是输入的值属于从周一到周日的集合,一个无效等价类是输入的值不属于周一到周日的其他值。
③ 在输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类。
例如,对于性别,如果规定输入“男”为有效,则一个有效等价类为“男”,一个无效等价类为“女”。
④ 在规定了输入数据的一组值(假定有n个)并且程序要对每一个输入值分别进行处理的情况下,可以确立n个有效等价类和一个无效等价类。
例如,在Word中编辑的某文档的简体中文字体要求是楷体、黑体、宋体、隶书和微软雅黑。每种字体都会显示不同的字体样式。这里n=5,可以确定5个有效等价类和一个无效等价类。5个有效等价类就是楷体、黑体、宋体、隶书和微软雅黑;一个无效等价类就是不属于这5类中的其他字体。
⑤ 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类符合规则和若干个无效等价类从不同角度违反的规则。
例如,用户名的规则是长度为6~16个字符,由英文和数字组成。此时,一个有效等价类是符合长度和字符类型的字符串,如test123。若干个无效等价类可以包括长度不符合要求的等价类(如test1、test1234567890123456),字符类型不符合要求的等价类(如test@123、test 123等)。
⑥ 在已划分的等价类中,若各元素的处理方式不同,则应再将该等价类进一步划分为更小的等价类。
例如,对于考试分数(100分制)而言,有效等价类为高于或等于60分,无效等价类为低于60分。
根据考试成绩的相关规定和后续的处理方式,还可以进一步划分。例如,
有效:60~80分为合格,80分以上为优秀;无效:50~59分需要补考,低于50分需要重修。
(2)确定测试用例。
从划分出的等价类中,按以下3条原则设计测试用例。
① 为每一个等价类规定一个唯一的编号。
② 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
③ 设计一个新的测试用例,使其仅覆盖一个尚未覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
3.案例1-1
现有一个档案管理系统,允许用户通过输入年、月对档案文件进行检索。系统关于查询条件年、月的输入限定为1990年1月到2049年12月,并规定日期由6位数字组成,前4位表示年,后两位表示月。
现用等价类划分法设计测试用例,用来测试程序的“日期检查功能”。
4.案例1-2
某保险公司承担人寿保险,该公司保费计算方式为投保额×保险费率,保险费率又因点数不同而有区别,10点及以上保险费率为0.6%,10点以下保险费率为0.1%。
转载自网络。
结语:
如果对python自动化测试、web自动化、接口自动化、移动端自动化、大型互联网架构技术、面试经验交流等等感兴趣的老铁们,可以关注我。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137658.html原文链接:https://javaforall.cn