软件测试用例
什么是测试用例?
测试用例是指为实施测试而向被测试系统提供的输入数据,操作或各种环境设置以及期望结果的一个特定的结合。(测试用例就是确定在什么环境下进行测试,测试哪些内容,进行测试的具体步骤,以及测试结果是否正确的标准)。
编写测试用例的好处
指导性:测试用例对测试过程提供了严格的要求和指导,降低了对执行测试人员的能力要求。
组织性:编写测试用例有利于测试的组织和管理,可以避免盲目测试,提高测试效率。
功能覆盖:编写测试用例可以减少软件功能漏测现象,令测试的实施明确、有依据。
重复性:在项目进行期间,对软件的不同版本必须要多次重复测试(内容,步骤,相同),寻找新的软件缺陷,以保证各版本的功能均正常。如果没有测试用例,光凭脑子不可能记住以前执行了哪些测试及执行情况,这样就很难重复原有的测试。
统计:测试用例的统计数据对整个测试非常重要,例如,执行了多少测试用例?多少通过?多少失败?这些数据可以确定测试的覆盖程度及软件产品的质量。缺陷多的模块可以在后续的测试中重点进行测试。
测试用例的依据
测试用例的设计必须建立在需求的基础上,根据用户需求设计测试用例,检验系统的实际行为是否与需求指定的行为一致。
测试用例内容
项目名称:被测项目名称
模块名称:被测模块名称
测试目的:描述被测模块的功能及要测试的目标
预置条件:执行测试用例之前所做的操作
用例编号:标识该测试用例的唯一编号如:001
相关用例(用例间的依赖关系):列出必须先于本测试用例执行的测试用例
用例说明:描述测试用例的具体步骤
输入数据:描述测试用例所需的输入数据
预期结果:是指依据用例说明和输入数据执行后,程序应该输出的结果
测试结果:此项在执行测试用例时填写,说明测试用例是否通过
测试用例设计的方法
等价类划分方法
等价类划分法是一种最为典型的黑盒测试方法,测试人员要对需求说明书中的各项需求,尤其是功能需求进行细致分析,然后把程序的输入划分成若干部分,从每个部分中选取少数代表性数据作为测试用例。
等价类方法的步骤是,在进行等价类划分之前,首先从程序的功能说明中找出给个输入条件,然后为每个输入条件划分等价类,确定了等价类划分后,给出相应的等价类表,再根据等价类表给出测试用例。
例子:
假定一个ATM机允许提取增量为50元人民币,总额为从50元人民币到5000元人民币(含5000)不等的现金,在不考虑由于硬件原因造成的提取错误的情况下,我们来设计测试用例,测试其提取现金的功能。采用等价类方法,我们可以设计如下的用例设计步骤:
4) 细化等价类:在 50 ~ 5000 的等价类中细分成 50 的倍数的有效等价类和非 50倍数的无效等价类。等价类划分中的核心要点(参考依据)
1. 若某个输入条件说明了一个必须成立的情况,则可分为一个有效等价类和一个无效等价类,例如“标识符的首个字符必须为字母”,则可以确定一个有效等价类(首个字符是字母)和一个无效等价类(首个字符不是字母)。
2. 若某个输入条件对取值范围进行了规定,则可划分一个有效等价类和两个无效等价类。
例如,在两位整数加法器中,输入值必须在-99~99之间,故-99~99是一个有效等价类,小于-99和大于99是两个无效等价类。
3. 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。客观上讲,针对布尔量划分等价类实际上已经针对这个布尔量的穷举测试了。
4. 若以划分的某等价类中的各元素在程序中的处理方式不同,则应当将此等价类进一步划分成更小的等价类。例如,在两位整数加法器中,考虑到程序中可能存在正数和负数的处理方式不同,故对等价类进行了进一步的细化。
5. 如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如,在两位整数加法器中,-99~99的整数是一个有效等价类,小数、字母、特殊字符等的输入构成若干个无效等价类。
6. 如果输入条件规定了一个输入值的合,而且程序会对每个值进行不同达到处理(如“交通工具的类型必须是公共汽车、出租车、地铁或自行车”),那么就应该为每个输入值确定一个有效等价类,其他的数据为一个无效等价类。
边界值分析
边界值分析也是一种黑盒测试方法,是一种与等价类划分相关的技术,它具有很强的发现程序缺陷的能力。(错误隐藏在角落里,问题聚焦在边界上)
确定边界值的方法
首先,应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,重点测试最后一个肯定合法的数据和刚刚超过边界的非法数据。
其次,边界值方法通常和等价类划分一起使用,产生一套完整的测试用例。
边界值的原则
如果输入条件对取值范围进行了界定,则应以边界内部以及恰巧超出边界外的值来作为测试用例。
若输入范围为0~50,则测试用例应该包含-1、0、1、49、50、51,即正好等于,刚刚大于或刚刚小于的边界的值。
如果对取值的个数进行了界定,则应当分别以最大个数、最小个数、比最大个数大1或小1、比最小个数大1或小1作为测试用
例。例如,软件测试工程师管理系统最多可保存10个工程师信息,则可以分别设计系统中保存99、100、101个工程师信息的测试用例。
对于输出条件,同样可以应用上面提到的两条原则进行测试用例设计。例如,网上购物网站的商品检索功能,每页最多显示10种商品。这时可以设计测试用例,通过控制输入条件使得检索出来的结果是0、1、10、11种商品的情况,那么前三种情况单页显示,第四种情况两页显示,可能会发现一些缺陷。
若在需求说明书中提到的输入时一个有序的集合,就应该注意选取该有序集合中的第一个和最后一个元素作为测试用例,如年龄选择框,是一个有序的元素集合,那么我们就应该选第一个“不限”和最后一个“50岁以上”作为边界值。
因果图概念
因果图是一种形式化的语言(以图的形式表现)它不仅描述了原因和结果之间的关系,也描述了各个原因之间、各个结果之间复杂关系的组合。
约束关系
E约束:即异约束、排他约束,原因不能同时为真,但可以同时为假。
例如,某人可能是初中在读,可能是高中在读,也可能既不是初中在读也不是高中在读,但肯定不可能既是初中在读又是高中在读
I约束:即或约束、包含性约束,各原因中总有一个为真,也可以同时为真,但不可以同时为假
O约束:即唯一性有约束,有且只有两个原因中的一个为真。例如性别不是男就是女。
R约束:即必要性约束,当原a因为真时,原因b必须同时为真,反之则不成立。例如,某人具有硕士学历,同时也具有本科学历。
M约束(结果约束):即强制约束,如果结果为a为真,则结果b一定为假;如果结果a为假,则结果b状态不定。
例如,对于支付宝系统,先给出两个结果:无法输入登录密码(a),安全控件运行正常(b),
如果无法登录密码,那么可以判定的是安全控件没有正常运行;反过来,如果可以输入登录密码,则不能确定安全控件一定工作正常,因为浏览器不支持安全控件的情况下可能是允许可直接输入登录密码的。
因果图设计步骤
1.分析被测应用,确定原因(输入)和结果(输出)
2.确定因果逻辑关系
3.确定约束关系
4.把因果转换为判定表
5.根据约束条件简化判定表,并给出结果
6.计划测试用例
实践指导
(1)根据某工厂发放工资程序,分析需求得到以下结论。员工工资分为年薪制,月薪制。
员工所犯错误根据程度分为普通错误、严重错误。年薪制员工犯普通错误(不考虑次数)的扣工资的2%,
犯严重错误(不考虑次数)的扣工资的4%,月薪制员工犯普通错误(不考虑次数)的扣工资的3%,
犯严重错误(不考虑次数)的扣工资的6%。员工工资只能是年薪或月薪制。
员工一个统计周期内,可以既犯普通错误,又犯严重错误。
(2)分析确定原因和结果
原因:年薪制、月薪制、严重错误、普通错误
结果:扣2%工资、扣%4工资、扣3%工资、扣6%工资。
(3)画出因果图
(4)判定表
(5)测试用例
正交实验法
正交试验法概念
正交试验法是研究多因素,多水平的一种设计方法。
正交表表示形式:
L行数:正交表中行的个数,即试验的次数,也是我们通过正交实验法设计测试用例的个数。
因素数(原因):正交表中列的个数即我们要测试的功能点,也是输入条件的个数。
水平数(结果):单个因素数能取得的值的最大个数,即单个输入条件可取的值的个数。
公式:L行数=(水平数-1)X因素数+1
正交表的两大特性。
1. 整齐可比性
在同一张正交表中 , 每个因素的每个水平出现的次数是完全相同的。 由于在试验中每个因素的每个水平与其他因素的每个水平参与测试的几率是完全相同的 , 这就保证了在各个水平中最大程度地排除了其他因素水平的干扰。
2. 均衡分散性
在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)出现中次数是完全相同的。这样就保证了试验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性。
正交实验法设计测试用例的步骤
1) 判断有哪些因素(输入)
2) 每个因素有哪几个水平(输入的可取值)
3) 选择一个合适的正交表
4) 把输入的值映射到表中
5) 把每一行的各因素水平的组合作为一个测试用例
6) 加上你认为可疑且没有在表中出现的组合
用正交试验法设计测试用例的关键步骤就是选择合适的正交表。
因素数与水平数刚好符合正交表,即选择该正交表。
因素数不相同,采用包含的方法查找正交表,找到包含该情况的正交表,如果有多个符合条件的公式,那么选取行数最少的正交表。
水平数不同,采用包含加组合的方法查找正交表,找到包含该情况的正交表,如果有多个符合条件的公式,那么选取行数最少的正交表。
因果图和正交表的选择
因果图法、正交实验法是解决输入条件组合的设计测试用例的方法。
如果输入条件(原因)与输出结果之间存在因果关系,从需求中能简单地分析出已输入条件和输出结果,并且组合后的因果关系不是特别多,在这种情况下,可以考虑因果图法。如果因果关系足够庞大,以至于据此因果图而得到的测试用例数目多得惊人,给软件测试带来了沉重的负担,为了有效合理地减少测试用例工作量,可利用正交实验法进行测试用例设计。
网友评论