引言:
对一个测试工程师来说,测试用例的设计编写是一项必须掌握的能力,但有效的设计和熟练的编写测试用例却是一个十分复杂的技术,测试用例编写者不仅要掌握软件测试技术和流程,而且要对整个软件不管从业务,还是对软件的设计、程序模块的结构、功能规格说明等都要有透彻的理解。测试的设计方法不是单独存在的,具体到每个测试项目里都有很多种方法,每种类型都有各自的特点。
一:测试用例的定义:
测试用例是执行测试的依据,把测试系统的操作步骤用文档的形式描述出来
二:测试用例包含?
测试用例的标题:
用例编号 、 用例描述、【用例所属模块】、执行条件、预期结果、测试输入、实际结果、
【测试人】、【测试版本】、【测试日期】、【备注】
三:测测用例文档的方式
1: Excel表
2:word文档方式
3:bug管理工具里可以直接写(禅道)
四:测试用例开始写的时间
拿到对应的模块进行编写。
五:测试用例的注意:
1:根据需求文档或者是原型图年写的用例的覆盖度[80%-90%].
2:书写用例有正反 反向用例【异常用例】8:1
六:测试用例的特征:
1、有效性:测试用例的能够被使用,且被不同人员使用测试结果一致
2、可重复性:良好的测试用例具有重复使用的功能。(回归测试)
3、易组织性:好的测试用例会分门别类地提供给测试人员参考和使用(功能、性能、易用分类编号)
4、清晰、简洁:好的测试用例描述清晰,每一步都应有相应的作用,有很强的的针对性,不应出现一些无用的操作步骤。
5、可维护性:由于软件开发过程中需求变更等原因的影响,常常对测试用例进行修改、增加、删除等,以便测试用符合相应测试要求
七:测试用例的好处:
测试用例的作用:
在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。
测试用例的使用令软件测试的实施重点突出、目的明确。
在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、缩短项目周期。
检验软件是否满足客户需求、体现一个测试人员的工作量、展现测试用例的设计思路
八:测试用例的4个特性
1、代表性:能够代表并覆盖各种合理的和不合理、合法的和不合法的、边界的和越界的以及极限的输入数据、操作等。
2、针对性:对程序中的可能存在的错误有针对性地测试
3、可判定性:测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果
4、可重现性:对同样的测试用例,系统的执行结果应当是相同的。
九:编写测试用例的基本方法
一:测试方法有: 有效等价类、无效等价、类边界值、因果图、场景法
1:等价类划分:有效等价类、无效等价
1.1概念:
【有效,无效
等价类划分是指分步骤地把海量(无限)的测试用例集减得很小,但过程同样有效。
等价类 :何为等价类,某个输入域的集合,在这个集合中每个输入条件都是等效的。
一般可分为有效等价类和无效等价类】
1.2:应用场景
【多用于输入框】
1.3示例:
2:边界值法
2.1一般边界值分析是因为程序开发循环体时的取数可能会因为<,<=搞错。
比如下面代码
for(int i = 0;i <100; i ++)
{
int j = i+1;
System.out.println("循环第“+j+"次")//循环地做某件事情
}
这里的程序是循环了100次,所以会做100次;
如果程序员不小心,把i <100写成i <= 100,则多循环添加一次,这时候边界值检查是一个很好的测试方法。
比如:在一个系统中,填写一个多少岁的青少年考了多少分(假设成年人年龄为x,13<=x<=17,数学成绩为y:0<=y<=100
根据上面的等价类划分法我们可知,年龄的有效等价类是13<=x<=17,所以边界值就是12,14,16,18
数学成绩的,有效等价类是0<=y<=100,所以边界值就是-1,0,100,101
对数据进行软件测试,就是在检查用户输入的信息、返回的结果以及中间计算结果是否正确。即使最简单的程序要处理的数据量也可能极大,使这些数据得以测试的技巧是,根据一些关键的原则进行等价类的划分,以合理减少测试用例,这些关键的原则是:边界条件,次边界条件、空值和无效数据。
2.2. 确定边界值的方法
选取正好等于、刚刚大于或刚刚小于边界值作为测试数据
输入要求是1 ~ 100之间的整数,因此自然产生了1和100两个边界,我们在设计测试用例的时,要重点考虑这两个边界问题。
[1 100] 闭区间 1,100上点 0,101离点 2,99内点
(1,100) 开区间 2,99上点 1,100离点 3,98内点
(1,100] 前开后闭 2,100上点 离点1,101 3,99内点
注明:边界值不是从每个等价类中挑一个作为代表,而是把每个等价类的边界都进行测试。
3. 因果图法
3.1. 概念:
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
3.2 因果图基本图形符号
恒等:若原因出现,则结果出现;若原因不出现,则结果不出现。
非(~):若原因出现,则结果不出现;若原因不出现,则结果出现。
或(∨):若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现。
与(∧):若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现。
3.3. 因果图的约束符号
E(互斥):表示两个原因不会同时成立,两个中最多有一个可能成立
I(包含):表示三个原因中至少有一个必须成立
O(惟一):表示两个原因中必须有一个,且仅有一个成立
R(要求):表示两个原因,a出现时,b也必须出现,a出现时,b不可能不出现
M(屏蔽):两个结果,a为1时,b必须是0,当a为0时,b值不定
3.4.因果图测试用例
例如:有一个处理单价为2.5元的盒装饮料的自动售货机软件。若投入2.5元硬币,按“可乐”、“啤酒”、或“奶茶”按钮,相应的饮料就送出来。若投入的是3元硬币,在送出饮料的同时退还5角硬币。
分析这一段说明,我们可列出原因和结果
原因(输入):
投入2.5元硬币;
投入3元;
按“可乐”按钮;
按“啤酒”按钮;
按“奶茶”按钮。
中间状态: ① 已投币;②已按钮
结果(输出):
退还5角硬币;
送出“可乐”饮料;
送出“啤酒”饮料;
送出“奶茶”饮料;
4:场景法
4.1 概念:
测试用例设计的思想 现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。 用例场景是通过描述流经用例的路径来确定的过程, 这个流经过程要从用例开始到结束遍历其中所有基本流和备选流。
正交表
错误推测
用例评审会:一般在需求确定后编写用例,用例编写后直接进行评审
用例评审:
组内评审:测试人员和测试组长项目经理客户经理
组外评审:测试人员和测试组长项目经理客户经理客户