编写测试用例的方法

在编写测试用例的过程中,我们也有许多编写方法,下面是一部分总结:

1、等价类划分法

顾名思义,等价类划分法就是将所有测试用例划分为几个互不相交的子集,他们的并集就是全集,再从每个子集中选取若干具有代表性的值作为测试用例。
概念:

依据需求将输入(特殊情况下会考虑输出)划分成若干个等价类,从等价类中选出一个测试用例,如果这个测试用例通过,则认为所代表的等价类测试通过

思想:

输入的集合是无穷的,不能全部覆盖到

分类:

有效等价类:

对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明书中规定的功能和性能

无效等价类:

根据规格说明书 ,不符合需求的集合

小栗子:

例如,我们要测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。

我们可以先划分子集:

空用户名,1-7位数字,8位数字,9位或以上数字,非数字。

然后从每个子集选出若干个有代表性的值:

  • 空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
  • 1-7位数字:”234” (无效等价类实例)
  • 8位数字:”00000000” (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
  • 9位或以上数字:”1234567890” (无效等价类实例)
  • 非数字:”abc&!!!” (无效等价类实例)
  • 他们5个,就是用等价类划分选出的测试用例。实际上,对于1-7位数字的子集来说,选“234”和“11111”没有本质的区别

那么到底划分到何种程度才算合适呢,这个就需要看你有的资源和时间,以及是否值得的问题了,因为你总会有未发现的缺陷存在,所以我们能做的就是尽量发现问题并解决

2、边界值分析法

概念:

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

在很多测试中,大量的错误会出现在输入和输出边界上,所以针对边界值设计测试用例是很有必要的。
选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
一个栗子:

假定 X 为整数,10≤X≤100,写出合适的边界值测试用例

根据题目要求,我们设计的主要有以下:

  • 小于10的(无效等价类):我们可以选数字“9”,因为大于9的数字一定大于所有小于10的用例。
  • 边界值(有效的) :选取‘10’和‘11’,‘99’和‘100’,12~99之间任取一个数字
  • 大于100的(无效等价类):这里取‘101’,因为101是大于100中的数中的最小下限

3、因果图

概念:

因果图是一种简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。
因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有多种输入条件、程序的输出又依赖于输入条件的各种情况。

常见的关系图表示:
这里写图片描述
这里写图片描述

  • 恒等:如果原因为真,那么结果必定为真。
  • 与:只有2个原因都为真,那么结果为真
  • 或:2个原因中有一个为真时,结果就为真。
  • 非:只有原因为假,结果才为真。

因果图法设计测试用例的步骤如下:

(1)分析所有可能的输入和可能的输出。

(2)找出输入与输出之间的对应关系。

(3)画出因果图。

(4)把因果图转换成判定表。

(5)把判定表对应到每一个测试用例。

4、判定表法设计测试用例

概念:

又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。

判定表是分析和表达多种输入条件下系统执行不同动作的工具。将复杂的逻辑关系和多种条件组合的情况表达的清晰明了。判定表通常由四个部分组成:
这里写图片描述

  • 条件桩:列出系统的所有输入;
  • 动作桩:列出系统可能采取的操作;
  • 条件项:列出针对对应条件桩的的取值(即在所有可能情况下的取值);
  • 动作项:列出针对对应动作桩的取值情况下应该采取的动作。

说明:
(1)动作项和条件项放一起看,指出了在条件项的各种取值情况下应该采取的动作,在判定表中贯穿条件项和动作项的一列就是一条规则,可以针对每个合法输入组合的规则设计用例进行测试。

(2)判定表可以简化,简化是以合并相似规则为目标的。若表中有两条或多条规则具有相同的动作,且其条件项之间存在极为相似的关系,就可以将其合并。但是,合并也存在漏测的风险,即程序对于某个条件有不同的分支,而我们却错误的将其合并,导致某条或某些路径没有被测试覆盖,造成漏测(条件类似且动作相同的路径,在程序内部可能有不同的分支,简化会丧失对某些程序分支的覆盖)。

小结:

判定表法主要针对功能需求中的处理过程,处理过程越复杂,越有必要使用判定表法。

一个栗子:

输入条件:男性、女性
输出结果:先生、女士

判定表设计:
这里写图片描述
判定表设计步骤:
(1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。
(2)列出所有的条件桩和动作桩。
(3)填入条件项。
(4)填入动作项。得到初始判定表。
(5)简化、合并相似规则(相同动作)。

5、错误推测法

概念:

错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。

这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

6、正交实验法

概念:

正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验

正交表的构成:

  • 因素数:正交表中的行的个数,即试验的次数,用N代表
  • 行数:正交表中的行的个数,即试验的次数,用N代表
  • 水平数:任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”,用T代表。

正交表的表示形式: L=行数(水平数*因素数) L=N(TC)
正交表的性质:

每一列中各数字出现的次数都一样多。
任何两列所构成的各有序数对出现的次数都一样多,

正交法测试用例的设计步骤:
1、有哪些因素(变量)
2、每个因素有哪几个水平(变量的取值)
3、选择一个合适的正交表
4、把变量的值映射到表中
5、把每一行的各因素水平的组合作为一个测试用例
6、加上你认为可疑且没有在表中出现的用例组合

7、场景设计法

概念:

通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果。场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。
基本的场景图实例:
这里写图片描述

在这个图中,有一个基本流和四个备选流。

  每个经过用例的可能路径,可以确定不同的用例场景。从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:

  场景 1 基本流

  场景 2 基本流 备选流 1

  场景 3 基本流 备选流 1 备选流 2

  场景 4 基本流 备选流 3

  场景 5 基本流 备选流 3 备选流 1

  场景 6 基本流 备选流 3 备选流 1 备选流 2

  场景 7 基本流 备选流 4

  场景 8 基本流 备选流 3 备选流 4

  • 备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况)
  • 基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
    场景设计法测试用例:

    (1)根据说明,描述出程序的基本流及各项备选流

    (2)根据基本流和各项备选流生成不同的场景

    (3)对每一个场景生成相应的测试用例

    (4)对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

  • 16
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值