测试用例方法总结
等价类法
1、 等价类的使用范围?
答:一个项目中的某个功能需要用户通过键盘在文本输入框中输入数据的时候需要用到等价类法。输入的数据可以是正确的或者错误的数据。
2、 等价类的优缺点?
答:优:该方法具有简单、高效的优点,它可以让测试人员在不熟悉业务的前提下,根据需求中的要求,快速构造测试数据,并且开展测试工作。它同时还可以评估测试人员的工作量,
如果说:一个界面中有N个输入框,最少用例数是N+1条,实际工作的用例数量是最少用例的4-6倍。
缺:而缺点就是数据都是随机构造的,可能会漏到一些测试数据,导致测试人员发现不了缺陷。
3、 举个例子(步骤)?
当我们看到有输入框时,怎么开展测试?以下图为例:
① :确认输入的个数和名称
本例中的输入个数为5个,名称分别为:邮件地址,密码,确认密码,验证码,是否同意条款。
② :确定每一个输入的规则,从类型,长度,取值范围,组成规则,是否为空,是否重复这几个方面考虑。根据这些规则构造《输入参数分析列表》。
126邮箱注册功能输入参数分析列表 |
||||||
输入名称 |
类型 |
长度 |
取值范围 |
组成规则 |
是否为空 |
是否重复 |
邮件地址 |
字符串 |
[6-18] |
字母、数字、下划线 |
必须以字母开头 |
否 |
否 |
密码 |
字符串 |
[6-16] |
/ |
/ |
否 |
是 |
确认密码 |
字符串 |
[6-16] |
/ |
必须与密码完全一致 |
否 |
是 |
验证码 |
字符串 |
6 |
/ |
与图片一致 |
否 |
是 |
是否同意条款 |
布尔型 |
/ |
选中/不选 |
/ |
否 |
/ |
③ :根据输入的规则构造测试数据,包括:符合规则的有效数据和不符合规则的无效数据,也就是《等价类表》
字母注册功能等价类表 |
||||
输入名称 |
有效类 |
有效数据 |
无效类 |
无效数据 |
邮件地址 |
6-18位的字母开头的包含数字和_ |
test_176 |
长度为5位 |
te_12 |
以字母开头,包含字母和数字 |
test176 |
长度为19位 |
test_176test_176abc |
|
以字母开头,包含字母和_ |
test_test |
非字母开头 |
12345678 |
|
|
|
已注册的邮件地址 |
test176 |
|
|
|
包含非下划线特殊字符 |
test#!%*176 |
|
|
|
空 |
空格 |
|
|
|
不输入 |
||
密码 |
字母全大写 |
AAAAAA |
长度为5位 |
|
字母全小写 |
aaaaaa |
长度为17位 |
|
|
字母大小写混合 |
AaAaAA |
空 |
空格 |
|
包含字母、数字、特殊符号 |
test!*%176 |
不输入 |
||
确认密码 |
与密码完全一致 |
|
与密码不一致 |
|
|
|
空 |
空格 |
|
|
|
不输入 |
||
验证码 |
与图片一致 |
MdBJ7J |
与图片不一致 |
|
与图片一致字母全大写 |
MDBJ7J |
空 |
空格 |
|
与图片一致字母全小写 |
mdbj7j |
不输入 |
④ :设计测试用例:在写测试用例的时候遵循先写正常的用例,目的是为了保证功能的基本实现,而原则是一条正常的用例要尽可能多的包含有效数据。再写异常的用例,
目的是为了检查功能能否处理用户的错误输入,原则为:一条异常的用例只包含一个无效的数据。
如下图:为部分测试用例。
边界值法
1、 边界值法的适用范围?
答:当一个文本输入框有输入长度的限制或者取值范围的要求时,也就是输入存在边界的时候,就要考虑边界值法。
2、 边界值法的优缺点?
答:优:使用该方法取边界上的数据更容易发现缺陷。
缺:它的使用范围比较小,只能在有范围限制的前提下使用。
3、 举个例子(步骤)
答:步骤和等价类一样,两种方法常常结合起来使用。
① :确认输入的个数和名称
② :确定每一个输入的规则,从类型,长度,取值范围,组成规则,是否为空,是否重复这几个方面考虑。根据这些规则构造《输入参数分析列表》。
③ :根据输入的规则构造测试数据,包括:符合规则的有效数据和不符合规则的无效数据,也就是《等价类表》
④ :设计测试用例
注:在构造边界值的时候要注意三个点:
上点:边界上的数据;
离点:离上点最近的数据,遵循的原则为:闭外开内;
内点:取值范围内的任意一点;
输入域覆盖法
1、 输入域覆盖法的适用范围?
答:该方法同样是用在文本输入框中,和等价类边界值法不同的是,该方法考虑的是输入类型的最大值、最小值,比如:int(整形):最大值为:232-1,最小值:-232。
还有就是一个文本框没有长度限制,长时间的输入会不会引起异常,然后就是考虑一下输入的特殊值。比如:打电话时,110,120,119这些数据的可能性。
2、 举个例子(步骤)?
答:输入域覆盖法实际上就是在分析等价类边界值法的基础上考虑一下特殊值和长时间输入的情况,因此从步骤来讲,和等价类边界值法相同。
输出域覆盖法
1、 输出域覆盖法的适用范围?
答:如果界面上存在默认数据,这些数据不需要用户的输入,这些数据一旦发生错误系统是不会提示报错信息的,所以要测试数据来源/显示是否正确,这个时候就要用到输出域覆盖法。
有输出的结果倒推输入的内容,来验证数据是否正确。
判定表
1、 判定表的适用范围?
答:当有多个复选框同时出现,他们之间存在逻辑条件(成立、不成立的关系或者判断关系),不同的条件组合在一起,会产生不同的结果。这时需要用判定表对这些复选框的组合进行测试。
2、 判定表的优缺点?
答:优:该方法可以覆盖到所有的逻辑组合;
缺:当条件桩过多时,判定表会非常庞大,一般为2的N次方。、
3、 举个例子(步骤)?
① :根据需求,找出所有的判断条件----条件桩;
条件桩 |
是否用华夏信用卡 |
是否是周三看 |
|
是否是情侣 |
② :分析需求,提取所有可能的输出----动作桩;
动作桩 |
无优惠 |
8折 |
|
7折 |
|
女士免票 |
|
符合4 |
|
符合2、3 |
③ :填入条件项
买票 |
|||||||||
条件桩 |
是否用华夏信用卡 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
是否是周三看 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
是否是情侣 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
动作桩 |
无优惠 |
|
|
|
|
|
|
|
|
8折 |
|
|
|
|
|
|
|
|
|
7折 |
|
|
|
|
|
|
|
|
|
女士免票 |
|
|
|
|
|
|
|
|
|
符合4 |
|
|
|
|
|
|
|
|
|
符合2、3 |
|
|
|
|
|
|
|
|
④ :针对每一种条件组合找到对应的输出结果----动作项;
买票 |
|||||||||
条件桩 |
是否用华夏信用卡 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
是否是周三看 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
是否是情侣 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
|
动作桩 |
无优惠 |
|
|
|
|
|
|
|
√ |
8折 |
|
|
|
√ |
|
|
|
|
|
7折 |
|
|
|
|
|
√ |
|
|
|
女士免票 |
√ |
|
√ |
|
√ |
|
√ |
|
|
符合4 |
|
|
|
|
|
|
|
|
|
符合2、3 |
|
√ |
|
|
|
|
|
|
⑤ :删除已存在的条件组合,剩下的就是测试数据;
⑥ :编写测试用例,遵循一列对应一条测试用例。
买电影票测试用例 |
|||||||
用例编号 |
测试项目 |
用例标题 |
优先级 |
预置条件 |
输入数据 |
操作步骤 |
预期结果 |
MDYP—ST-SRS007-001 |
买电影票优惠功能测试用例 |
情侣购票在周三下午用华夏信用卡购票 |
高 |
/ |
/ |
“2、3、4” |
女士免票 |
MDYP—ST-SRS007-002 |
买电影票优惠功能测试用例 |
在周三用华夏信用卡购票 |
高 |
/ |
/ |
“2、3” |
享受折上折 |
MDYP—ST-SRS007-003 |
买电影票优惠功能测试用例 |
情侣用华夏信用卡购票 |
高 |
/ |
/ |
“2、4” |
女士免票 |
正交试验法
1、 正交试验法的适用范围?
答:当输入是由系统给定固定的值,不存在无效的输入,出现多个复选框的时候,并且输入之间是组合的关系,当选择不同的状态值,会有不同的处理路径,这个时候用正交试验法。
2、 正交试验法的优缺点?
答:优:该方法能够覆盖输入之间的两两组合,有效的减少了重复的组合数量,既保证了测试的全面性,又提高了测试的效率。
缺:该方法是一种基于风险的测试,它要求输入参数之间只能是组合的关系,并且输入之间必须是完全独立的。
3、 什么叫因子和状态?
答:因子:一个具体的输入就是一个因子
状态:输入的每个具体的值就是一个状态。
举个例子(步骤)?
① :根据需求提取因子状态,画出因子状态表
② :用符号去替换因子和状态的名称
③ :将符号版的因子状态表代入到正交试验表中,如果因子和状态数量不一致,遵循对于状态多的需要先合并状态,对于状态过少的需要用已有状态补充。
④ :如果存在合并的状态,要拆分合并的状态
⑤ :将符号转换成对应的文字
S4:将符号替换回文字 |
|||||
|
Betscaoe6.2 |
无 |
IIS |
Windows2000 |
|
|
Betscaoe6.2 |
RealPlayer |
Apache |
WindowsNT |
|
|
Betscaoe6.2 |
MediaPlayer |
NetscapeEnterprise |
Linux |
|
|
IE8.0 |
无 |
Apache |
Linux |
|
|
IE8.0 |
RealPlayer |
NetscapeEnterprise |
Windows2000 |
|
|
IE8.0 |
MediaPlayer |
IIS |
WindowsNT |
|
|
Opera4.0 |
无 |
NetscapeEnterprise |
WindowsNT |
|
|
Opera4.0 |
RealPlayer |
IIS |
Linux |
|
|
Opera4.0 |
MediaPlayer |
Apache |
Windows2000 |
⑥ :编写测试用例,原则:一行对应一条测试用例
用例编号 |
测试项目 |
测试标题 |
预置条件 |
优先级 |
输入测试数据 |
执行步骤 |
预期结果 |
WEB-ST-SRS001-001 |
web站点测试 |
不同的浏览器,不同的插件,不同的应用服务器,不同的操作系统显示web站点的正常测试 |
/ |
中 |
1、WEB浏览器:Betscaoe6.2 |
/ |
web站点正常显示 |
4、 用allpairs工具生成正交的测试用例?
① :把allpairs文件夹放在C盘的根目录下
② :制作符号版的因子状态表,注:不要加任何格式,从第一行第一列开始,其中第一行是因子名称。
③ :在allpairs目录下新建一个文本文件,然后把它进行重命名(注:起个简单的名字)
④ :将因子状态表复制到文本文件中,然后保存退出。
⑤ :进入DOS命令行,输入:cd 点击回车;
cd allpairs 点击回车
allpairs.exe 111.txt -> 222.txt 点击回车
⑥ :出现C:allpairs>才代表成功
⑦ :打开222.txt ,其中testcase就是生成的测试用例。
状态迁移图
1、 状态迁移图的适用范围?
答:当有多个状态或输入的取值,状态的变化或取值变化有规定的顺序取值,或者从一个状态可以达到若干个状态时,要用状态迁移图法。
2、 状态迁移图的优缺点?
答:优:该方法可以把某个功能的有效组合全覆盖,
缺:该方法覆盖不到无效的功能组合。
3、 举个例子(步骤)?
答:①:根据需求提取所有的状态、功能的名称、输入的名称
②:将提取到的名称绘制业务矩阵表-àN个功能就要画N*N的表
|
快倒 |
暂停 |
播放 |
快进 |
录音 |
快倒 |
√ |
√ |
√ |
|
|
暂停 |
√ |
|
√ |
√ |
√ |
播放 |
√ |
√ |
|
√ |
|
快进 |
√ |
√ |
√ |
|
|
录音 |
|
√ |
|
|
|
③:将业务矩阵转换成业务树;
业务树有两种画法:广度优先和深度优先。
广度优先的画法:找一个合适的状态作为起始节点(根节点),画出根节点的所有可达节点,然后逐层按照从左向右的顺序,依次画出每个节点的可达节点,每个节点只画一次可达节点,直到所有的节点都画完,结束叶子节点。
深度优先的画法:找一个合适的状态作为起始节点(根节点),画出根节点的所有可达节点,然后先画第一个节点的最左侧的叶子节点,把所有最左侧的节点都画完,每个节点只画一次可达节点,从最后一层向上逐层递推,直到所有的节点都画完。
⑤ :编写测试用例,从根节点到叶子节点,一条路径对应一条测试用例。
因果图
1、 因果图的适用范围?
答:每个功能都可以用因果图法
2、 因果图的优缺点?
答:优:因果图法能够帮助我们按照一定步骤,高效的选择测试用例,设计多个输入条件组合用例,通过因果图分析还能为我们指出,程序规格说明描述中存在什么问题。
缺:输入条件与输出结果的因果关系,有时难以从软件需求规格说明书得到,即时得到了这些因果关系,也会因为因果关系复杂导致因果图非常庞大,测试用例数目及其庞大。
3、 举个例子(步骤)?
① :根据需求列出所有的原因(输入)
② :根据需求列出所有的结果(输出)
③ :为原因和结果进行编号
④ :按照需求画出因果图
⑤ :按照因果图列出判定表
⑥ :将不存在的判定表删除
⑦ :剩余部分为测试用例的组合
异常分析法
该方法是针对系统罗列可能出现的故障/异常的情况来分析的。比如说:断电,断网,硬件损坏,内存不足,强制中止程序,程序进行中点击取消了,支不支持断电续传?还有就是手机APP交互性测试。
错误猜测法
错误猜测法是根据以往的经验和对系统内部的知识的了解,列出系统中可能有错误和容易发生错误特殊情况,再根据这些情况设计用例。
注意:该方法只能作为测试用例设计的补充而不能单独用来设计用例。