① 如何设计好测试用例
什么是测试用例
测试用例也叫测试案例,是在执行测试之前由测试人员编写的指导测试过程的重要文档,主要包括:用例编号、测试目的、测试步骤、预期结果等
注意:不同公司使用的用例模板可能存在差异,但都大同小异
为什么要写测试用例
1、防止测试点的遗漏,让测试覆盖的更全面
2、方便做版本的回归测试
3、监督测试过程,评估结果
4、提高测试效率,避免盲目测试
5、缩短周期,比如当版本更新或升级时,只需修正少部分测试用例即可,用例资源可以做到重复使用
测试用例编写依据
1、业务需求文档或需求规格说明书
2、开发文档,比如概要设计文档、详细设计文档
3、参考已开发出来的程序,即一边对照程序+需求文档,一边写测试用例
4、与开发人员、需求人员、客户进行沟通确认
什么是好的测试用例
1、用例覆盖率最大化:好的测试用例是完整的用例集合,能够完全覆盖测试需求
2、测试数据的准确性:等价类划分准确,每个等价类范围的数据,测试效果一致
3、测试数据的全面性:保证所有可能的边界值和边界条件涵盖在内,且正确识别
设计测试用例的常见方法
1、等价类划分法
2、边界值分析法
3、错误推测法
4、因果图法
5、判定表法
6、正交排列法
7、功能图分析法
8、场景法等
其中,等价类划分法、边界值法、错误推测法是平时工作中最常用的方法,也是设计好一个测试用例的装备武器,本节课主讲等价类划分法和边界值分析法。
方法一:等价类划分法
将所有可能的输入数据划分为若干子集,从每一个子集中,挑选任意输入数据,测试效果是一样的。那么这样的子集就是一个等价类。
比如有一个需求是:某输入框只能输入-99(含)至99(含)之间的整数,且不能为空
有效等价类(有效数据)可划分为:
-99至0之间的任意整数
0至99之间的任意整数
无效等价类(无效数据)可划分为:
小于-99的整数
大于99的整数
为空的情况
非整数的情况(浮点数、字母、特殊字符、中文字符)
如下图:
方法二:边界值分析法
对输入或输出的边界值进行测试的一种黑盒测试方法,即选取边界值进行测试。因为测试数据的边界值在程序中最容易出错,所以边界值应该重点测试。
还是以上面需求为例:某输入框只能输入-99(含)至99(含)之间的整数,且不能为空
有效边界值包括:
-99(最小边界值)
-98(有效最小次边界值)
-1(边界值)
0(边界值)
1(边界值)
98(有效最大次边界值)
99(最大边界值)
无效边界值包括:
-100(无效最小次边界值)
100(无效最大次边界值)
备注:测试过程中,只要是需要输入数据的地方,就可以使用等价类划分法和边界值分析法,这两个方法一般是搭配使用的。
方法三:错误推测法
基于对被测软件系统的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例的方法。
即错误的操作,比如输入输出数据为0或空格等容易错误的情况。将其作为测试用例来执行。
② 测试用例设计方法有哪些
可以采用软件测试常用的基该方法:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等设计测试用例。视软件的不同性质采用不同的方法。如何灵活运用各种基该方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,全凭测试设计人员的丰富经验和精心设计。
编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。 软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。
测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:版本号、模块名称、用例编号、用例名称、用例级别、预知条件、验证步骤、期望结果(含判断标准)、测试结果、测试时间、测试人员等。
(2)设计测试用例的方法有哪些扩展阅读
测试用例设计一般遵循以下原则:
(1)正确性。输入用户实际数据以验证系统是否满足需求规格说明书的要求;测试用例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。
(2)全面性。覆盖所有的需求功能项;设计的用例除对测试点本身的测试外,还需考虑用户实际使用的情况、与其他部分关联使用的情况、非正常情况(不合理、非法、越界以及极限输入数据)操作和环境设置等。
(3)连贯性。用例组织有条理、主次分明,尤其体现在业务测试用例上;用例执行粒度尽量保持每个用例都有测点,不能同时覆盖很多功能点,否则执行起来牵连太大,所以每个用例间保持连贯性很重要。
(4)可判定性。测试执行结果的正确性是可判定的,每一个测试用例都有相应的期望结果
(5)可操作性。测试用例中要写清楚测试的操作步骤,以及与不同的操作步骤相对应的测试结果。
③ 测试用例设计方法有哪些
1、等价类划分
为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一编号。设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重复这一步骤,使得有效等价类均被测试用例所覆盖设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖。
2、边界值分析
从测试规格中分析得到输入参数类型,对于输入等价类划分方法进行等价类的划分,运用域测试分析方法确定域范围的边界(上点、离点与内点)。如果存在多个输入域,则需要运用因果图、判定表方法这些输入域边界值的组合情况进行进一步分析,选择这些上点、离点与内点或者这些点的组合形成测试项。
3、判定表
判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。
列出所有的条件桩和动作桩,填入条件桩、条件项和动作桩、动作项,化简,合并相似规则,将每条规则转化为用例。
基本格式
1、用例编号
测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则:PROJECT1-ST-001,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
2、测试标题
对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“测试用户登录时输入错误密码时,软件的响应情况”。
3、重要级别
定义测试用例的优先级别,可以笼统的分为四个不同的等级。
4、输入限制
提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
5、操作步骤
提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
6、预期结果
提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
④ 测试用例设计的四种常用方法
根据输入条件、输入值或输入个数等分为有效等价类和无效等价类。
在有效等价类和无效等价类中选取有代表性的输入构成测试用例,避免测试效果相同的冗余用例。
通常和边界值法结合使用。
1、按照每个输入条件确定有效等价类和无效等价类
2、不同的输入条件的等价类不需要组合,即不需要所有组合遍历一遍。只需要每一种等价类都被覆盖即可。
1、输入条件明确了值的范围
2、输入条件明确了值的个数
3、输入条件明确了是一个有序的集合
1、除了考虑边界值,还要考虑边界值附近的值
2、同一范围内取一个有效值即可
针对不同逻辑条件的组合值,分别执行不同的操作
条件桩(问题的所有条件) 条件项(所有可能条件下的真假值)
动作桩(问题规定可能采取的动作) 动作项(在条件项的各种取值情况下应该采取的动作)
对多种状态以及状态之间的切换条件和切换路径的测试
1、绘制状态迁移图,包括迁移方向和迁移条件
2、设计用例覆盖所有路径
⑤ 编写测试用例有哪些方法
可以采用软件测试常用的基该方法:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等设计测试用例。视软件的不同性质采用不同的方法。如何灵活运用各种基该方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,全凭测试设计人员的丰富经验和精心设计。
编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。 软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。
测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:版本号、模块名称、用例编号、用例名称、用例级别、预知条件、验证步骤、期望结果(含判断标准)、测试结果、测试时间、测试人员等。
(5)设计测试用例的方法有哪些扩展阅读
测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。
总之,测试执行的过程中及时地更新测试用例是很好的习惯。不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。
⑥ 编写测试用例常用的五种方法
一,等价类法。
此方法多适用于输入的参数存在有效规则和无效规则;
其运用步骤1,罗列有效无效规则,绘制有效无效规则表;如下图注册用户时用户名的有效无效规则表:
第2步,构造数据,根据有效无效规则构造一些测试数据;
其中构造数据需遵从两个规则:
1,一条有效数据尽可能多的包含有效规则,目的是为了减少用例的冗余;
2,一条无效数据只能包含一条无效规则,目的是精确定位问题。
第3步,编写测试用例。
用到等价类法通常考虑:长度、组成(数字字母符号等)、是否区分大小写、是否含有空格、是否为空、是否重复、是否检验空格、全角半角输入。
二,边界值法
此种方法适用范围是输入的参数存在边界;比如密码规定长度6到18位;
在这应注意三个点:上点、内点和离点。
上点指边界上的点(比如6或者18);
内点指范围内的点(比如9就在6到18这个范围内);
离点指离边界最近的点(比如5或者7)。
其中取点规则是闭外开内;也就是说闭区间取外面的点,开区间取里面的点。
三,判定表法
适用范围输入的参数存在约束关系,不同的逻辑组合形成不同的结果;比如注册时密码与确认密码之间。
步骤1,将输入的参数转化为条件桩,
2,将输出的结果转化为动作桩,
3,会形成2的n次方个条件项(n指条件桩的个数),
4,其中表格中的每一列就是一条测试用例。
四,正交试验法
适用范围:1,输入的参数之间不存在约束关系,
2,输入的参数全部都是正确有效的,
3,不同的逻辑组合形成不同的结果,
其运用步骤,1,将输入的参数转化为因子状态表:
2,用字母替换因子状态表中的状态:
3,在allpairs文件夹中创建一个新的文本文档xxx.txt;
4.把步骤2中生成字母的因子状态表拷贝到xxx.txt中保存;
5,Ctrl(Windows)/command(Mac本)+R ☞输入cmd回车打开doc窗口;
6,进去allpairs所在路径(cd allpairs的路径 回车);
7,执行allpairs.exe(allpairs xxx.txt>xxx01.txt);
8,打开xxx01.txt把其中Test case的内容拷贝到Excel中;
9,用文字把字母替换回去:
10,其中每一行就是一条用例。
五,流程分析法
这类方法先把流程图画出来,然后根据里面的判定框编写测试用例。
⑦ 测试用例的几种常见设计方法
一、等价类划分
定义: 把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,用少量代表性的测试数据,取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)确定等价类
有效等价类: 满足输入条件的
无效等价类: 不能满足输入条件的 超出范围的数值
空值
特殊字符
有空格(前、中、后)
2)生成测试用例
每个等价类编写一个测试用例;
设计一条测试用例,尽可能多地覆盖所有还未被覆盖的有效等价类;
设计一条测试用例,覆盖一条还未被覆盖到的无效等价类。
等价类划分的六大原则:
1)输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
例如:手机号码由11位数字组成
有效:11位符合电话号码规则的数字
无效:1、小于11位数字;2、大于11位数字
2)在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。布尔量是一个二值枚举类型,一个布尔量具有两种状态:true和false
4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
例如:
输入条件说明输入为:中文、英文、数字三种之一,则分别取这三种值作为三个有效等价类,另外把这三种字符以外的任何字符作为无效等价类
5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
例如:输入条件说明每个学生可选修1~3门课程
有效:选修1~3门课程
无效:1、未选修课程
2、选修课程超过3门
6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
等价类划分法要点:长度、类型、字母、汉字、特殊字符、空、空格
二、边界值分析法
边界值分析方法是对等价类划分方法的补充。
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是着重测试边界的情况。选取正好等于,刚刚大于或刚刚小于边界值的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
1)如果输入条件规定了一个输入值范围,那么应针对范围的边界设计测试用例,针对刚刚越界的情况设计无效输入测试用例;
比如:需求规定输入的数字在0~100范围内,此时测试数据应该有一下几类:
a.刚刚等于边界:0、100;
b.刚刚超出边界范围:-1、101:;
c.刚刚在范围内:1、99
2)如果输入条件规定了输入值的数量,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例;
例1:输入手机号码有:
a 输入11位合法数字;b 输入10 位合法数字;c 输入12位合法数字
例2:输入6~8位数字密码:
a 输入6位数字;b 输入8位数字c 输入5位数字;d 输入9位数字
3)如果程序输入或输出是一个有序序列,则应该特别注意该序列的第一个和最后一个元素。
三、错误推测法
错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。需要多实践,且在实践时多积累常见问题。
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例-例如, 在单元测试时曾列出的许多在模块中常见的错误-以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行-这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。
四、因果图法
因果图法适用于描述对于多种输入条件组合的测试方法。(有多步输入操作)
根据输入条件的组合、约束条件和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件涉及的各种组合情况。
例题:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。
分析:
输入条件:a 投入1元5角硬币 b 投入2元硬币
1 按“可乐”按钮 2 按“雪碧”按钮 3 按“红茶”按钮
中间状态:1 已投币 2 已按按钮
输出结果:A 送出可乐 B 送出雪碧 C 送出红茶 D 退还5角硬币
测试用例:
1)投币1元5角,按“可乐”按钮,送出可乐
2)投币1元5角,按“雪碧”按钮,送出雪碧
3)投币1元5角,按“红茶”按钮,送出红茶
4)投币2元,按“可乐”按钮,送出可乐,退5角硬币
5)投币2元,按“雪碧”按钮,送出雪碧,退5角硬币
6)投币2元,按“红茶”按钮,送出红茶,退5角硬币
输入组合:投硬币+按按钮
结果组合:送出饮料+退钱