目录
2.1基于需求的设计方法(Requirements-Based Testing,RBT)
1.测试用例的基本要素
- 测试点表达清晰、无歧义
- 用例的可操作性强(性能测试 并发)--->采用性能测试工具,模拟虚拟用户操作
- 一个测试用例对应一个预期结果
- 可维护性好
- 对需求覆盖率高
- 暴露程序Bug的能力强
2.测试用例的设计方法
黑盒测试设计方法:等价类、边界值、因果法、正交设计法、场景法、错误猜测法
2.1基于需求的设计方法(Requirements-Based Testing,RBT)
首先验证需求的合理性和正确性,使测试专注于质量问题产生的根源(需求),重点关注:
- 验证需求是否正确、完整、无二义性,并且逻辑一致。根据需求提炼功能点
- 从“黑盒”的角度,设计出充分且必要的测试集,保证设计和代码完全符合需求。
2.2等价类划分法
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,若通过,则认为所代表的等价类测试通过;实现少用例,多覆盖,解决不能穷举测试的问题。
有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否满足功能和性能需求。只考虑输入域的分类
无效等价类:根据需求说明书,不满足需求的集合。
2.3边界分析法
对输入或输出的边界值进行测试的一种黑盒测试方法。是对等价类划分法的补充,测试用例来自等价类划分法的边界。
- 上点:边界上的点(正好等于边界值)
- 离点:距离上点最近的点
- 内点:范围内的点
如:
闭区间:[20,30],上点:20,30,离点:19、31,
开区间:(20,30),上点:20,30,离点:21、29,
半开半闭:(20,30],上点:20,30,离点:21、31
半开半闭:[20,30),上点:20,30,离点:19、29
对于闭区间:上点是有效数据,离点是无效数据
对于开区间:上点无效,离点有效
不管是开和闭区间,内点都是有效数据
等价类和边界值法一般是一起进行测试用例的设计
2.4因果图
简化的逻辑图,表明程序输入条件(原因)和输出动作(结果)之间的相互关系。适用于分析程序输入条件的各种组合(等、与、或、非),以及输入输出之间的依赖关系。
因果图法设计测试用例的步骤:
- (1)分析所有可能的输入和可能的输出。
- (2)找出输入与输出之间的对应关系。
- (3)画出因果图。
- (4)把因果图转换成判定表。若有3个条件,输出有2个取值,所以表的列数为2x2x2=8
- (5)把判定表对应到每一个测试用例。
例1:
假设业务单据的处理规则为:“淘宝618活动,提单已提交,订单合计金额大于300元或有红包,则进优惠”。
Y为真 | N为假 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
输入 | 金额>300 | Y | Y | N | N | Y | Y | N | N |
有红包 | Y | N | Y | N | Y | N | Y | N | |
订单已提交 | Y | Y | Y | Y | N | N | N | N | |
中间条件 | Y | Y | Y | N | Y | Y | Y | N | |
输出 | 优惠 | Y | Y | Y | N | N | N | N | N |
不优惠 | N | N | N | Y | Y | Y | Y | Y |
得到测试用例:
(1)订单已提交,订单金额大于300元,则优惠。
(2)订单已提交,订单金额小于等于300元,无红包,不优惠
(3)订单已提交,有红包,则优惠。
(4)订单已提交,订单金额大于300元,有红包,则优惠。
(5)订单未提交,不优惠。
(6)订单未提交,不优惠
(7)订单未提交,不优惠。
(8)订单未提交,不优惠。
例2:
根据因果图画判定表:
输入 | 中间结果 | 输出 | ||||||||
2 | 1.5 | 可乐 | 雪碧 | 红茶 | m1 | m2 | 0.5 | 可乐 | 雪碧 | 红茶 |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | |||
1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | |||
0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
2.5正交排列
正交法的目的是为了减少用例数目。基于正交表的、高效率、快速、经济的试验。研究多因素(变量)多水平(变量的取值)的测试用例设计方法,适用于输入数据或输入数据组合量很大的场合。
正交表的构成:
行 =(水平数-1)*因素数+1; 列 = 因素数
- 行数(Runs):即试验的次数,用N代表。
- 因素数(Factors):正交表中列的个数,用C代表。
- 水平数(Levels):任何单个因素能够取得的值的最大个数。用T代表。
正交表的表示形式: L=行数(水平数*因素数) L=N(TC)
正交表的性质:
- 每一列中各数字出现的次数都一样多
- 任何两列所构成的各有序数对出现的次数都一样多
正交法设计测试用例的步骤:
- 1、有哪些因素(变量)
- 2、每个因素有哪几个水平(变量的取值)
- 3、选择一个合适的正交表
- 4、把变量的值映射到表中
- 5、把每一行的各因素水平的组合作为一个测试用例
- 6、加上你认为可疑且没有在表中出现的用例组合
例题:以注册为例
1、因素:姓名、邮箱、密码、确认密码、验证码
2、水平:填写、不填写列 = 因素 = 5
行 = (水平数-1)*因素数+1 = 6
注意正交表内每一行数据不能一样(测试用例不能重复)!!!
案例:字符属性测试程序
窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值
字体:仿宋,楷体、华文彩云
字符样式:粗体·、斜体、下划线
颜色:红色、绿色、蓝色
字号:20号、30号、40号
得到正交表:
2.6场景设计法
把各个孤立的功能点按照一定的策略组合起来,形成一个应用场景
典型的应用:用业务流把各个孤立的功能点串起来
找出场景中的每一个功能点,根据每一个功能点正常和异常的情况设计测试用例
例1:
当当网购书流程:
登陆——查找书籍——放入购物车——结算(生成订单)——支付
2.7错误猜测法
是经验丰富的测试人员喜欢使用的一种测试方法。有针对性地设计测试用例。梳理出产品以往哪些地方容易出现问题,问题越多的地方,潜在的bug也就越多。
2.8测试用例的粒度和评价
粒度:指测试用例编写的详细程度。
最简单的测试用例:是测试的纲要,仅指出要测试的内容,如探索性测试中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。
复杂的测试用例:会指定输入的每项数据,期待的结果及检验的方法, 具体到界面元素的操作步骤,指定测试的方法和工具等。带来效率问题和维护成本问题