测试用例设计相关知识

三、测试用例设计

1.测试用例

①测试用例的定义:设计一种情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果。

②测试用例模板:测试模块、用例编号、用例描述、用例名称、测试步骤、输入数据、预期结果。测试结果、测试人、备注。

标识符(用例编号):一般编号规则:TsetCase_项目名称_模块名称_功能名称_0001

测试项:测试用例的测试目的,一般情况下,用一句话表明目的.

依赖用例:一般功能流程上,下游的功能测试依赖于上游的功能测试的用例。

测试步骤:用最朴实的语言,写出来软件的操作步骤,要尽量详细。

测试数据:单独整合测试数据,必须和测试步骤中的数据保持一致。

预期结果:准确、对象的准确性,内容的准确性。原则上每一个操作都要有一个结果,在重要的步骤之后,设定预期结果。一般和测试目的密切相关!!!测试的目的决定了测试步骤和预期结果。

测试结果:要求在测试执行完成后添加,没有执行保持为空。测试结果只有两个(通过或失败,Pass/Failed)。和预期结果一致则为通过,不一致即为失败。

测试人:测试的执行人。

备注:为了测试用例正常执行而做的特殊准备。

③用例设计和编写的作用:

有效性:测试用例是测试人员测试过程中最重要的参考依据。

可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率。

易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。

可评估性:测试用例的通过率是检验代码质量的保证。

可管理性:测试用例也可作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的标准。

④测试用例设计和编写注意:

杀虫剂效应:一个发现过缺陷的测试用例,就相当于杀虫剂,会产生抗药性,则需要“更强的杀虫剂”,也就是新的测试用例(与之前的用例中数据类型保持一致)进行重新测试。

集群效应:一个测试用例发现bug,则需要在这个测试用例模块进行深入测试,也许会发现更多的缺陷。

2.黑盒测试用例设计方法

测试数据选择:等价类划分法、边界值分析法

测试步骤选择:因果图法、判定表法、正交实验法、功能图法、场景法

①等价类划分法

原理:将程序的输入域划分为若干个部分,然后从每个部分中选取代表性数据作为测试用例。每一类代表性数据在测试中的作用等价于这一类中的其他值,如果某一类的一个例子发现了错误,则其他例子也可能会发现同样的错误,反之亦然。

原则:

#在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。

例:一个文本框规定,输入字符个数为6~18位。

一个有效等价类:范围内个数

两个无效等价类:小于6;大于18个

#在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

例:请输入11位的手机号。

一个有效等价类:11位就是有效

一个无效等价类:不是11位就是无效

#布尔量:表示“真”或“假”,真就是有效,假就是无效

#在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类

例:登录中要输入用户名和密码

一个无效等价类:用户名和密码不匹配,可再分类

n个有效等价类:用户名和密码 都要对,可划分为n个

#在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

例:用户名要求6~18,由字母、数字、下划线组成;字母区分大小写,以大写字母开头

#在确知已划分的等价类中,各元素在程序处理中的方式中的方式不同的情况下,则应再将该等价类进一步地划分为更小地等价类。

②边界值分析法

原理:如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。分析规格说明,找到其他可能的边界条件 。

边界值只是一个特定的数据。例如,文本框输入6~18位字符。

边界值有:

1)6个字符

2)18个字符

次边界:边界附近的值,按照系统规定的单位或者计算方式,一个数据的差异。

思考:

1)6≤X≤12,请问X的边界值要取哪几个值进行测试?

答:无效:5,13   有效:6,7,11,12

2)6<X<12,请问X的边界值要取哪几个值进行测试?

答:无效:6,12 有效:7,8,10,11

3)文本框输入字符的个数要求是不大于150字。测试的时候如何选择边界值。

答:空,1,149,150,151

例子:一个程序读入3个整数,把这3个数值看作一个三角形的3条边的长度值。这个程序会给出弹窗提示信息,说明这个三角形是普通的、是等腰的、是直角的,还是等边的,以及相应的错误提示信息。

 

三角形判断:

构成三角形:任意两边之和大于第三边;a+b>c a+c>b c+b>a

直角三角形:b²+c²=a²

等腰三角形:a=b且a+b>c

等边三角形:a=b=c

钝角三角形:有且仅有一个角大于90°;b²+c²<a²

锐角三角形:三个角都是锐角;b²+c²>a²

四边形判断:任意三边之和大约第四边。平行四边形;菱形

五边形判断:有没有特殊形状,如果有,如何判断?

 ③因果图法

原理:因果图法是一种适合于描述对于多种输入条件组合的测试方法,适合于检查程序输入条件设计的各种组合情况。根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例。

方法:

第一步:根据功能说明书规定的原因和结果之间的关系画出因果图。

原因与结果的关系:

1)恒等。原因A成立,结果B一定成立。

2)非。原因A成立,结果B不一定成立。

3)或。原因A、B、C只要有一个成立,结果D就一定成立。

4)与。原因A、B、C都成立时,结果D才成立。

第二步:根据功能说明在因果图上添加一些约束关系。

原因之间的约束:(假如原因成立用1表示,不成立用0表示,有原因A、B、C)

1)互斥(Exclusive)。A+B+C≤1

2)包含(Include)。A+B+C≥1

3)唯一(Only)。A/B/C=1

4)要求(Request)。原因B成立,要求原因A一定要先成立。若A=1,则B=1

结果之间的约束:

1)屏蔽(Mask)。结果之间出现A结果,B结果一定不出现。

 


案例分析:有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的规格说明如下。若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来,若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

阅读合分析功能说明书,识别出“原因”和“结果”,并加以编号。

分析原因和结果:

 

画出因果关系图(部分):

 

根据需求描述结果、原因之间的约束:

 

因果图使用中的局限性:当原因和结果很多的时候,他们之间的关系连线就会很多,导致因果图的可读性变差。因此用作局部的小功能分析(原因和结果不是很多的时候)。

列出所有的原因和结果的列表,设计初步的测试用例步骤。

 

 

Case1

Case2

Case3

Case4

Case5

Case6

Case7

Case8

投币

投5角

1

1

0

0

0

0

1

0

投1元

0

0

1

1

0

0

0

1

按钮

选橙汁

1

0

1

0

1

0

0

0

选啤酒

0

1

0

1

0

1

0

0

 

 

 

 

 

 

 

 

 

 

结果

出橙汁

1

0

1

0

1

0

0

0

出啤酒

0

1

0

1

0

0

0

0

找零5角

0

0

1

1

0

0

0

0

因果图的优势在于能够发现设计中存在的不足。

经分析发现:

1)只选择饮料,没有投币的时候,软件没有出现任何结果。

2)只投币,没有选择饮料的时候,软件没有出现任何结果。

3)我们不能把软件缺陷设计成测试用例。

 参考:

 

 

 ④判定表法

原理:是分析和表达多逻辑条件下执行不同操作的情况的工具。

1、应用场合:主要适用于多条件的内容组合与结果分析。

2、组成:由条件桩、动作桩、条件项、动作项四部分组成。

条件桩:列出了问题的所有条件。

动作桩:列出了问题可能采取的操作。

条件项:列出针对它左列条件的取值。

动作项:列出在条件项的各种取值情况下应该采取的动作。

3、使用的条件:所有的条件桩在表中的位置和顺序互相不影响;所有动作桩的顺序不会因为条件桩顺序的变化而产生不同。

4、实现的步骤

1)识别出操作条件(原因)和对应的动作(结果)

2)分析条件的条件项(组合数量):如果有n个条件,每个条件有成立和不成立两种情况,那么最后一共会有2∧n个数量

3)简化和优化结果。排除一些不可能存在的情况。

实例:

需求:订购单的检查。

如果金额超过500元,又未过期,则发出批准单和提货单;

如果金额超过500元,但过期了,则不发批准单;

如果金额低于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。

(1)分析条件和动作

条件1

条件2

动作

金额>500

未过期

发出批准单和提货单

金额>500

过期

不发批准单

金额≤500

未过期

发出批准单和提货单

金额≤500

过期

发出批准单和提货单,提货单

金额超过500

超过500

1

1

0

0

不超过500

时效(过期)

过期

1

0

1

0

未过期

动作

批准单

0

1

1

1

提货单

1

1

1

1

通知单

1

0

1

0

(2)写出条件桩和动作桩、条件项和动作项:

(3)对判定表进行简化和优化(对其中不合理的或不合适的进行取舍)

不管金额的高低,只要未过期,就会发送批准单和提货单,所以优化之后,条件项就减少成为3个:(在测试za时间充足的情况下,可以选二者中其一进行测试,在测试时间充足的情况下,每一项都要测)

金额超过500

超过500

1

1

0

不超过500

时效(过期)

过期

1

0

1

未过期

动作

批准单

0

1

1

提货单

1

1

1

通知单

1

0

1


(4)将判定表中的每一列(条件项和对应的动作项)作为测试用例的数据和操作以及对应的预期结果。

测试用例的设计方法:没有哪一种方式是单独使用的。

1) 所有的软件,都是因为某种操作才会导致一定的结果。--考虑使用因果图

2) 所有的软件都有文本框。--必须使用等价类、边界值法。

判定表的实例题目:该判定表为一个杂志的阅读指南判定,指导读者能够良性阅读。

 

1

2

3

4

5

6

7

8

问题

觉得疲倦吗?

Y

Y

Y

Y

N

N

N

N

感兴趣吗?

Y

Y

N

N

Y

Y

N

N

糊涂吗

Y

N

Y

N

Y

N

Y

N

建议

重读

 

 

 

 

 

 

 

继续

 

 

 

 

 

 

 

跳一下章

 

 

 

 

 

 

休息

 

 

 

 

读完表格后,请对表格内容进行优化,将重复的内容去掉。并且说明原因。

1) 合并1、2、3、4为一项。在疲倦的情况下,一律休息即可。

2) 合并7、8为一项。在都不疲倦的情况下,不感兴趣就跳下一章。

觉得疲倦吗?

1

0

0

0

感兴趣吗?

 

0

1

1

糊涂吗

 

 

1

0

重读

 

 

1

 

继续

 

 

 

1

跳一下章

 

1

 

 

休息

1

 

 

 

⑤场景法

基本原理:现在的软件几乎都是用事件触发来控制流程的。测试时,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。

基本流:软件功能按照正确的事件流实现的一条正确流程。通常一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点。

备选流:除了基本流之外的各支流,包含多种不同的情况。

 

重点:

基本流(软件功能正确实现的流程)

备选流(基本功能流程之外的过程)

注意:

1. 场景中必须有基本流

2. 场景中必须有内容从用力开始,到用例的结束。

#案例:ATM机的取款流程

基本流:

 

⚪ 基本流:插卡-输入密码-选择取款服务-取款金额-出钞=取卡

⚪ 备选流:

1卡片不是银行卡

2卡片不是银联的卡

3密码输错一次

4密码输错两次,第三次输入正确

5密码输入错误三次,冻结账号或者吞卡

6选择存款服务

7选择查询服务

8选择转账服务

9选择修改密码服务

10选择取款金额

11选择其他金额

12 ATM机没钱了

13账户取款金额达到取款机的当日取款上限

⚪ 场景设计:

场景1:基本流

场景2:基本流 备选流5

场景3:基本流 备选流4

场景4:基本流 备选流1

场景5:基本流 备选流2备选流4

..........

⚪ 设计测试用例:
每一个场景,都是一个测试用例。

以场景5为例:设计步骤,假定ATM只能识别银联卡(用一个万事达卡先进行插入)

1. 插卡(先用万事达卡)

2. 换卡(银联卡),插卡

3. 输入密码(第一次输入错误)

4. 再次输入密码(第二次输入错误)

5. 第三次输入密码(输入正确)

6. 选择服务-取款

7. 选择取款金额-500

8. 等待出钞

9. 取卡

⚪为用例步骤设计数据

⑥正交实验法

1、日本的统计学家提出的

2、使用的工具:正交表

3、统计和分析实验数据,从大量实验中找到合适的实验数据组合。(原本用于工业生产的数据组合与实验室的数据挑选。)

4、正交实验法的本质:大量的实验中,挑选出来一部分具有代表性的点,进行试验,分析数据。

5、数学原理:《线性代数》《数理统计》《概率论》

6、核心概念:

1)影响实验结果的——实验因素(因子)、因素

2)每一个因素的不同取值(状况)——水平

例如,字的显示效果——字体、字号、颜色,称为因素

字体选择时,可以选择宋体、楷体、微软雅黑、隶书....称为水平(212个)

字号选择时,一号....称为水平(100个)

颜色选择时,.....称为水平(256)

测试字的显示效果将会有:212×100×256=5,427,200

3)正交表特点:每一列中,同一数字(水平)出现次数相等;任意两列组成的数字对(水平)出现的次数也是相同的。

7、实施步骤:

1)分析所有对结果有影响的因素。从多个角度和方式进行分析(不要放过文本框、按钮等需求中提及或者没有提及)

2)分析每个因素的水平数量。充分利用等价类、边界值(需求中说明和未说明的都要分析)

3)选择正交表。只有特定的因素数和水平数的组合才有对应的正交表。所以在现实中用到的时候,找最贴近的正交表(正交表的因素数和水平数一般要大于实际的因素数和水平数)

①正交表的数字关系。N代表需要进行实验次数,m代表水平数,k因素的数量。这三个数字之间没有任何数学关系。

②仅适合用于每一个因素的水平数都相同的正交表。

8、小案例:

因素

操作方式

温度(℃)

洗涤时间(min)

 

60

15

 

80

20

 

100

25

完全排列组合:3*3*3=27

使用小工具完成正交实验设计:(L9_3_4:三水平,四因素)

每一列中,同一个数字出现的次数相等。(3次)

任意两列中,同一个数字对出现的次数相等。(1次)

9.案例

 

因素

辅助瞄准

单发狙开火模式

左右探头射击

探头自动开镜

枪口顶墙提示

***枪开火模式

探头射击模式

 

按下开火

按下开火

点击侧身

 

松手开火

松手开火

按住侧身

使用小工具完成正交实验设计:(L8_2_7:二水平,七因素)

 

⑦功能图法(状态迁徙图法)

1、使用场合:软件的状态会根据某些内容、条件、操作的变化而变化。

2、目标:尽可能覆盖软件的状态、状态-条件的组合、状态变迁路径。

3、步骤:

1)识别和列举所有的输入(操作)事件。以IP N(input) (N=1,2,3)

2)定义空闲状态(初始状态)。一般以软件刚启动时打开的界面状态为空闲 状态。

3)为空闲状态加操作(只加一次)

4)为第3)步所产生的新状态加操作(只加一次,并且曾经加过的操作,不再重复添加)

5)循环为所有的新增状态加操作,直到没有新状态产生为止。

6)组合任意的状态,以列表的形式展现,设计和编写测试用例。

4、小案例:

1)识别出可以进行的操作:

  IP1:输入账号

  IP2:输入密码

  IP3:点击登录

  IP4:点击关闭按钮

2)定义QQ登录界面为 空闲 状态。

3)给空闲状态加操作。

第一轮分析后:

 

产生了新的状态。针对新的状态进行分析(第二轮):

 

得到一个新的状态。所以继续进行新的分析(第三轮):

 

虽然得到了一个全新的界面(状态),但是和空闲状态发生了“隔断”,因此将其视为空闲状态的结束。可以结束分析过程。

4)将状态变化过程列表化,准备设计测试用例。

状态名/序号

A

B

C

D

空闲

1

1

1

1

QQ号已输入

 

2

 

2

密码已输入

 

 

2

 

QQ号、密码已输入

 

 

 

3

QQ主界面

 

 

 

4

退出

2

3

3

 

设计用例的时候:

①A列:从QQ的登陆界面,直接点击关闭按钮,QQ登录退出。

②D列:从QQ的登录界面,先输入QQ号(状体变为QQ号已输入);再输入密码(状态变为QQ号、密码已输入),点击登录,状态就会变为QQ主界面。

③B列:(略)

⑧其他用例设计方法

1、测试大纲法。

1)特点:着眼于需求。进行详细的需求分析,将其转化为思维导图(树形结构)

2)无需用例设计。一般从根节点开始分析,到叶结点为止。这样的一条路径就是一条测试用例。

3)一般用于快速的测试和过程记录。用例一般进行候补。

2、探索性测试

1)基于经验和直觉

2)是计划内测试用例设计的补充

3)探索性测试执行前也需要设计测试用例

3、猴子测试法(随意测试)

1)没有测试用例(无意识的行为)

2)缺点:测试往往不太真实,不能达到一定的覆盖率,许多测试都是冗余的,想要重复操作及其困难

3.用例设计方法综合选择

软件测试工程师面试如何应对测试用例设计方法?

首先明确用例设计方法都有哪些?

1、等价类划分法

2、边界值分析法

3、因果图法

4、判定表法

5、场景法

6、正交实验法

7、状态迁徙图法(功能图法)

如何使用呢?记住方法的名称很简单,但是如何使用却是一个大问题:如何使用。用例设计方法的使用不是孤立存在的,而是存在于一个项目中!

不对缺陷做测试用例!!!

所有测试用例的设计方法。没有独立使用的,都是融合在一起使用。往往在一个软件界面中,都可以受用好几种测试用例设计方法。

正交实验法是一种极其特殊的用例设计方法。一般在含参数、设置的界面才适合用。

#话题测试##学习路径#
全部评论
感谢分享
点赞 回复
分享
发布于 2021-12-18 11:53

相关推荐

5 68 评论
分享
牛客网
牛客企业服务