好文档 - 专业文书写作范文服务资料分享网站

史上最全的测试用例设计方法总结

天下 分享 时间: 加入收藏 我要投稿 点赞

测试用例的设计方法(共22页)

3)化简后的读书指南判定表

建 议 问 题 你觉得疲倦吗? 你对内容感兴趣吗? 书中内容使你胡涂吗? 请回到本章开头重读 继续读下去 跳到下一章去读 停止阅读,请休息 1 — Y Y x 2 — Y N x 3 Y N — x 4 N N — x 7.判定表的建立步骤:(根据软件规格说明)

1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2n种规则。 2)列出所有的条件桩和动作桩。 3)填入条件项。

4)填入动作项。得到初始判定表。 5)简化.合并相似规则(相同动作)。 二.实战演习

1.问题要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义 。请建立判定表。 ○1确定规则的个数:这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则。 ②列出所有的条件桩和动作桩:

③填入条件项。可从最后1行条件项开始,逐行向上填满。如第三行是: Y N Y N Y N Y N,第二行是: Y Y N N Y Y N N等等。

④填入动作桩和动作顶。这样便得到形如图的初始判定表。

条 件 动 作 功率大于50马力吗? 维修记录不全吗? 运行超过10年吗? 进行优先处理 作其他处理 1 Y Y Y x 2 Y Y N x 3 Y N Y x 4 Y N N x 5 N Y Y x 6 N Y N x 7 N N Y x 8 N N N x 初始判定表

16

测试用例的设计方法(共22页)

⑤化简。合并相似规则后得到图。

条 件 动 作 功率大于50马力吗? 维修记录不全吗? 运行超过10年吗? 进行优先处理 作其他处理 1 Y Y — x 2 Y N Y x 3 Y N N x 4 N — Y x 5 N — N x 2.NextData函数的精简决策表 M1={月份, 每月有30天} M2={月份, 每月有31天}

M3={月份, 2月} 于2月27日

D1={日期,1~28} 平年2月28日处理不同 D2={日期,29} 有29=512条规则 D3={日期,30}

D4={日期,31} 日月份的31日处理不同12月末31日和其它31 Y1 ={年:年是闰年} Y2 ={年:年不是闰年} 改进为

M1={月份: 每月有30天}

M2={月份: 每月有31天, 12月除外} M4={月份:12月} M3={月份: 2月} D1={日期:1<=日期<=27} D2={日期:28} D3={日期:29} D4={日期:30} D5={日期:31} Y1 ={年:年是闰年} Y2 ={年:年不是闰年}

输入变量间存在大量逻辑关系的NextData决策表。

C1月份在 C2日期在 C3年在 a1:不可能 a2:日期+1 a3:日期复位 a4:月份+1 a5:月份复位 a6:年+1 1~3 M1 D1 D2 D3 — x 4 M1 D4 — x x 5 M1 D5 — x 6~9 M2 D1 D2 D3 D4 — x 10 M2 D5 — x x 11~14 M3 D1 D2 D3 D4 — x 15 M3 D5 — x x x 16 M4 D1 — x 17 M4 D2 Y1 x 18 M4 D2 Y2 x x 19 M4 D3 Y1 x x 20 M4 D3 Y2 x 21~22 M4 D4 D5 — x 3.用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日

17

测试用例的设计方法(共22页)

期。

例如,输入为2004年11月29日,则该程序的输出为2000年12月1日。 1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。

2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。 3)根据(1)和(2),画出简化后的决策表。 案例分析如下:

1)month变量的有效等价类: M1: {month=4,6,9,11} M3: {month=12}

M2: {month=1,3,5,7,8,10} M4: {month=2}

2)day变量的有效等价类: D1:{1≤day≤26} D4: {day=29}

D2: {day=27} D5: {day=30}

D3: {day=28} D6: {day=31}

3)year变量的有效等价类: Y1:{year是闰年}

Y2:{year不是闰年}

4)考虑各种有效的输入情况,程序中可能采取的操作有以下六种: a1: day+2

a2: day=2 a5: month=1

a3: day=1 a6: year+1

a4: month+1

4.判定表在功能测试中的应用

1)一些软件的功能需求可用判定表表达得非常清楚,在检验程序的功能时判定表也就成为一个不错的工具。如果一个软件的规格说明指出:

I.当条件1和条件2满足,并且条件3和条件4不满足,或者当条件1、3和条件4满足时,要执行操作1。 II.在任一个条件都不满足时,要执行操作2。

III.在条件1不满足,而条件4被满足时,要执行操作3。 根据规格说明得到如下判定表:

根据规则说明得到的判定表

这里,判定表只给出了16种规则中的8种。事实上,除这8条以外的一些规则是指当不能满足指定的条件,执行3种操作时,要执行1个默许的操作。在没必要时,判定表通常可略去这些规则。但如果用判定表来设计测试用例,就必须列出这些默许规则(如下表)。

条件1 条件2 条件3 条件4 默许操作 规则5 — — Y N x 规则6 N Y N N x 默许的规则

18

规则7 Y Y N Y x 规则8 Y N N — x 条件1 条件2 条件3 条件4 操作1 操作2 操作3 规则1 Y Y N N x 规则2 Y — Y Y x 规则3 N N N N x 规则4 N — — Y x 测试用例的设计方法(共22页)

2)判定表的优点和缺点

I.优点:它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。 II. 缺点:不能表达重复执行的动作,例如循环结构。 3)B. Beizer 指出了适合使用判定表设计测试用例的条件:

①规格说明以判定表形式给出,或很容易转换成判定表。 ②条件的排列顺序不会也不影响执行哪些操作。 ③规则的排列顺序不会也不影响执行哪些操作。

④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。 ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

B. Beizer提出这5个必要条件的目的是为了使操作的执行完全依赖于条件的组合。其实对于某些不满足这几条的判定表,同样可以借以设计测试用例,只不过尚需增加其它的测试用例罢了。

正交实验设计方法 一.方法简介

利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

正交实验设计方法:依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等. 利用正交实验设计测试用例的步骤: 1.提取功能说明,构造因子--状态表

把影响实验指标的条件称为因子.而影响实验因子的条件叫因子的状态.利用正交实验设计方法来设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把他们当作因子,而把各个因子的取值当作状态.对软件需求规格说明中的功能要求进行划分,把整体的概要性的功能要求进行层层分解与展开,分解成具体的有相对独立性的基本的功能要求.这样就可以把被测试软件中所有的因子都确定下来,并为确定个因子的权值提供参考的依据.确定因子与状态是设计测试用例的关键.因此要求尽可能全面的正确的确定取值,以确保测试用例的设计作到完整与有效。 2.加权筛选,生成因素分析表

对因子与状态的选择可按其重要程度分别加权.可根据各个因子及状态的作用大小,出现频率的大小以及测试的需要,确定权值的大小。

3.利用正交表构造测试数据集

正交表的推导依据Galois理论(这里省略,需要时可查数理统计方面的教材)。

利用正交实验设计方法设计测试用例,比使用等价类划分,边界值分析,因果图等方法有以下优点:节省测试工作工时;可控制生成的测试用例数量;测试用例具有一定的覆盖率。 二.实战演习 暂无

功能图分析方法 一.方法简介

一个程序的功能说明通常由动态说明和静态说明组成.动态说明描述了输入数据的次序或转移的次序.静态说明描述了输入条件与输出条件之间的对应关系.对于较复杂的程序,由于存在大量的组合情况,因此,仅用静态说明组成的规格说明对

19

测试用例的设计方法(共22页)

于测试来说往往是不够的.必须用动态说明来补充功能说明.功能图方法是用功能图FD形式化地表示程序的功能说明,并机械地生成功能图的测试用例. 功能图模型由状态迁移图和逻辑功能模型构成.状态迁移图用于表示输入数据序列以及相应的输出数据.在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态.逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系.逻辑功能模型只适合于描述静态说明,输出数据仅由输入数据决定.测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成.功能图方法其实是是一种黑盒白盒混合用例设计方法。

(功能图方法中,要用到逻辑覆盖和路径测试的概念和方法,其属白盒测试方法中 的内容.逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计方法.该方法要求测试人员对程序的逻辑结构有清楚的了解.由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖及路径覆盖.下面我们指的逻辑覆盖和路径是功能或系统水平上的,以区别与白盒测试中的程序内部的.) 1.功能图

功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同时要依靠判定表或因果图表示的逻辑功能.例,一个简化的自动出纳机ATM的功能图。 2.测试用例生成方法

从功能图生成测试用例,得到的测试用例数是可接受的. 问题的关键的是如何从状态迁移图中选取测试用例. 若用节点代替状态,用弧线代替迁移,则状态迁移图就可转化成一个程序的控制流程图形式.问题就转化为程序的路径测试问题(如白盒测试)问题了。 3.测试用例生成规则

为了把状态迁移(测试路径)的测试用例与逻辑模型(局部测试用例)的测试用例组合起来,从功能图生成实用的测试用例,须定义下面的规则.在一个结构化的状态迁移(SST)中,定义三种形式的循环:顺序,选择和重复.但分辨一个状态迁移中的所有循环是有困难的.(其表示图形省略)。 4.从功能图生成测试用例的过程

1)生成局部测试用例:在每个状态中,从因果图生成局部测试用例.局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。

2)测试路径生成:利用上面的规则(三种)生成从初始状态到最后状态的测试路径。

3)测试用例合成:合成测试路径与功能图中每个状态中的局部测试用例.结果是初始状态到最后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。 5.测试用例的合成算法:采用条件构造树. 二.实战演习 暂无

场景设计方法 一.方法简介

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。

基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。

20

史上最全的测试用例设计方法总结

测试用例的设计方法(共22页)3)化简后的读书指南判定表建议问题你觉得疲倦吗?你对内容感兴趣吗?书中内容使你胡涂吗?请回到本章开头重读继续读下去跳到下一章去读停止阅读,请休息1—YYx2—YNx3YN—x4NN—x7.判定表的建立步骤:(根据
推荐度:
点击下载文档文档为doc格式
874mc255vh7u3cm9al38
领取福利

微信扫码领取福利

微信扫码分享