测试用例设计方法总结一

上一篇 / 下一篇  2015-01-21 16:09:19 / 个人分类:测试用例

写在前面的话:最近想换工作,对于测试人员来说,测试用例是必不可少的,虽然很多时候没有时间写测试用例,没有系统的执行过测试用例,但是面试官肯定会问你的,所以在找工作之前整理一下测试用例的设计方法并理解,以便面试官问。
一、基本的测试方法
1.等价类划分法
①概念
等价类划分法是把程序的输入域分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类的其他值。
②分类
分为有效等价类和无效等价类;
1)有效等价类是对于程序的规格说明是合理的,有意义的输入数据构成的集合;
2)无效等价类是对于程序的规格说明是不合理的,无意义的输入数据的集合;
设计测试用例时,要同时考虑这两种等价类,因为,软件不仅要能接收合理的数据,也要能接受意外的考验。这样的测试才能确保软件具有更高的可靠性。
③举例
比如登录,要求输入1~9位数字左右账号和6-16位字母和数字的组合为密码登录
如图等价类划分法
编写测试用例的原则,一个测试用例使其尽可能多地覆盖尚未覆盖的有效等价类,
一个测试用例仅覆盖一个尚未被覆盖的无效等价类。

根据上面表格中的内容,编写测试用例如下
有效等价类的有:
①④
①⑤
①⑥
无效等价类的有:




⑨,共8条测试用例

2.边界值分析法
①概念
边界值分析法就是对输入或者输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是对等价类分析法的补充。
②原则
选择边界值,应该选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类的典型值或者任意值作为测试数据。
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及超越这个边界的值作为测试输入数据
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数小一点,比最大个数大一的数作为测试数据
3)将规则1)和2)作为输入条件,即设计用例使输出值达到边界值及其左右的值
4)如果程序的规格说明给出的输入域或者输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
5)如果程序中使用了一个内部数据结构,则应当选择内部结构的边界上的值作为测试用例。
6)分析规格说明,找出其他可能的边界条件。
③举例
还是上个中登录的例子,要求输入1-9的全闭区间的数字作为账号,6-16位全闭区间数字和字母的组合作为密码登录
如图边界值分析法
3.错误推测法
①概念
基于经验和直觉推测程序中所有可能存在的各种错误,从而针对性的设计测试用例

4.因果图表法

①概念
因果图表法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查输入条件的各种组合情况。
②产生原因
因为等价类划分法和边界值分析法都着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的互相制约关系。如果在测试时必须考虑输入条件的各种组合,则可能是天文数字,因此必须考虑一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图。
③4种因果图
如图tc8.gif
(a)恒等:若c1=1,则e1=1,否则e1=0;
(b)非:若c1=1,则e1=0,否则c1=1;
(c)或:若c1或c2或c3都是1,则e1=1;否则e1=0;
(d)与:若c1和c2都是1,则e1=1,否则e1=0;
约束
 如图tc7.gif
输入条件的约束以下4类:
1)E约束(异):a和b中至少一个可能为1,即a和b不能同时为1
2)I约束(或):a、b和c至少有一个必须是1,即a、b和c不能同时为0
3)O约束(唯一):a和b必须是1,即不可能a是1时b是0
4)R约束(要求):a是1时,b必须是1,即不可能a是1时b是0.
输出条件约束类型
1)输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0;
④采用因果图法设计测试用例的步骤:
1)分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。
2)分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。
3)由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。
4)把因果图转换为判定表。
5)把判定表的每一列拿出来作为依据,设计测试用例。
5.判定表驱动法
①概念
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。
②优点
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。针对不同逻辑条件的组合值,分别执行不同的操作。判定表适合于处理这类问题。
③结构
如图tc13.gif
1)条件桩:列出问题所有条件。通常认为列出条件的次序无关紧要
2)动作桩:列出问题规定可能采取的操作。这些操作的排列顺序没有约束。
3)条件项:列出针对它左列条件的取值。在所有可能情况下的真假值。
4)动作项:列出条件项的各种情况下应该采取的动作。
④步骤
1)确定规则的个数,假如有n个条件。每个条件取(0,1)两个值,所以有2^n中规则
2)列出所有的条件桩和动作桩。(就是填入所有的条件和结果的可能性)
3)填写条件项(所有条件的所有取值)
4)填入动作项。得到初始判定表
5)简化 合并相似规则。
⑤简化原则
两规则动作项一样,条件项类似。在1、2条件项分别取Y 、N时,无论条件3取何值,都执行同一个操作。即要执行的动作与条件3无关。于是可以合并。
⑥适合测试用例的条件
B.Beizer指出了适合使用判定表设计测试用例的条件:
1)规格说明以判定表形式给出,或容易转换成判定表。
2)规则的排列顺序不会也不影响执行哪些操作。
3)每当某一规则的条件已满足,并确定要执行的操作后,不必检验别的规则
4)如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。


二、测试用例设计综合策略
1. Myers提出了使用各种测试方法的综合策略:
1) 在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。
2) 必要时用等价类划分方法补充一些测试用例。
3) 用错误推测法再追加一些测试用例。
4) 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例。
5) 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。
2.测试用例的设计步骤
1) 构造根据设计规格得出的基本功能测试用例;
2) 边界值测试用例;
3) 状态转换测试用例;
4) 错误猜测测试用例;
5) 异常测试用例;
6)性能测试用例;
7)压力测试用例。
3.优化测试用例的方法
1) 利用设计测试用例的8种方法不断的对测试用例进行分解与合并;
2) 采用遗传算法理论进化测试用例;
3) 在测试时利用发散思维构造测试用例;
写在后面的话:正交实验设计法,功能图法,场景法后面再继续整理,觉得我写的不对的,可以评论,也可以加QQ:2473518012,一起交流学习
 

TAG:

测试小顽童---小壮壮 引用 删除 安裴轩   /   2015-01-21 17:12:54
谢谢支持,我很努力的
奔跑地蜗牛的个人空间 引用 删除 奔跑地蜗牛   /   2015-01-21 17:11:58
很全面,期待后面更精彩!
奔跑地蜗牛的个人空间 引用 删除 奔跑地蜗牛   /   2015-01-21 17:11:14
5
 

评分:0

我来说两句

Open Toolbar