测试用例 (一)

   

  一、测试用例格式

  

  

  

  

二、用例设计方法  等价类

  1、定义

 

    等价类:等价定义→等价类划分→等价类划分规则→进行用例设计

    无效等价类不做组合

等价

定义

具有相同属性或者方法的事物集合

这个集合中某个个体所表现的特征与其他个体完全一致

对于某个被测对象的测试输入而言,某个个体能够被接受或被拒绝,则该个体在集合中的任意个体都应该被接受或被拒绝

等价类

划分

有效等价类

针对被测对象而言,合理的、有意义的、系统接受的输入

用户名长度在[6,18]

无效等价类

针对被测对象而言,不合理的、无意义的、系统不能接受的输入

用户名长度大于18位,或者小于6

等价类

划分规则

如果需求规定了输入域的取值个数或确定了某个范围时,则可确定一个有效等价类及两个无效等价类

有效等价类

用户名长度在[6,18]

无效等价类

用户名长度大于18位,或者小于6

如果需求规定了某个输入域的集合,或者必须如何的情况下,可确定一个有效等价类及一个无效等价类

有效等价类

以字母开头

无效等价类

非字母开头

如果需求规定了某个输入域是真假值时,可确定一个有效等价类和一个无效等价类

如果用户需求规定了输入域是一组值,则可确定若干个有效等价类及一个无效等价类

京东商城

砖石会员、金牌会员、铜牌会员和普通注册用户

用户需求规定必须遵守某种规则时,可确定一个有效等价类及若干个从不同角度违反规则的无效等价类

以字母开头

有效等价类:以字母开头;

无效等价类:以数字、汉字或者特殊符号开头

进行

用例设计

根据需求,划分有效及无效等价类,有效等价类同意编号,无效等价类统一编号

设计一个新的测试用例,使其尽可能的覆盖所有尚未覆盖的有效等价类,直到所有有效等价类都被覆盖

设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类都被覆盖

等价类四则运算法

不考虑需求其他子项,细致分解当前测试点及详细需求,做累加

根据业务规则减少,排除相关不可能出现的规则,减少不可能出现的组合

如果有效等价类中具有互斥条件的需求时,可进行相乘得到用例个数

排除所有具有重复特性的等价类,尽可能做到有效等价类之间的交集为空,无效等价类之间的交集也为空,有效及无效等价类的并集为整个输入域

  2、使用场景

      具有相同属性或者方法的事物集合、这个集合中某个个体所表现的特征与其他个体完全一致、对于某个被测对象的测试输入而言,某个个体能够被接受或被拒绝,则该个体在集合中的任意个体都应该被接受或被拒绝

      例如 用户登录  ** 6~18个字符,包括数值、字母、下划线;** 字符开头,字母或数字结尾,不区分大小写

  3、分析过程 (具体案例)

  • 分析过程

  • 测试计划

三、边界值

  1、定义 

      例:用户名长度为6-18

    

边界值

三点

上点

边界上的点

6

8

离点

离上点最近的点

5

19

根据上点的精度确定

 

 

内点

边界有效范围内的任一一点

10

 

如何确定离点

如果边界是闭区间,则离点在外

[618]

上点:618

离点:519

内点:10

如果边界是开区间,则离点在内

618

上点:618

离点:717

内点:10

边界值

方法应用步骤

根据等价类方法划分有效等价类和无效等价类,确定上点、离点及内点,每个点统一编号

 

 

设计一个新的用例,使其尽可能的覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖

 

 

设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类完全覆盖

 

 

 

 

 

 

  2、使用场景

 

边界值

应用场景

 

 

 

如果需求规定了取值范围或规定了取值个数时,可利用该范围的边界内及边界附近的数据进行测试

[618]

61851910

如果需求规定了取值的个数,则少于个数一个或多于个数一个的值进行进行测试

购买5件商品则打8

456件商品

如果需求规定了一个有序集合的时候,可使用该集合的第一个和最后一个值进行测试

下拉列表有4个城市名可供选择

第一个和最后一个城市

如果程序中使用一个内部数据结构的话,则应从该数据结构的边界进行考虑

Int

 

int长度范围内

  3、分析过程 (具体案例)

四、判定表  (电商类)

  1、定义

判定表定义

分析和表述若干输入条件下,被测对象针对这些输入做出的响应一种工具

 

在遇到复杂业务逻辑时,可以利用该表理清业务逻辑关系

重要概念

 

 

 

 

条件

条件桩

需求规格说明书定义的被测对象的所有输入

 

条件项

针对条件桩所有可能的输入数据的真假值

动作

动作桩

针对条件被测对象可能采取的所有操作

 

动作项

针对动作桩被测对象响应的可能取值

规则

 

动作项和条件项组合在一起,形成的业务逻辑处理规则

判定表

应用步骤

 

 

 

 

1、理解需求,确定条件桩、动作桩

2、设计和优化判定表

3、填写动作项

4、根据判定表中输出结果的表现,进行判定表的合并(非必须)

合并(即简化判定表)条件:如果输出相同,在其对应输入中,有且只有一个条件的取值对动作不产生任何影响则可合并(合并存在一定风险)

5、抽取测试用例

  2、使用场景

     条件 与 结果 之间的关系 考虑使用 判定表

  3、分析过程 (具体案例)

    案例一 :如果用户欠费或停机,则不允许主被叫

    (1)、分析需求,得到 有效等价类 和无效等价类

        

    (2)、根据 等价类 得到 判定表

        

        ** 其中 4 条用例 2^2得到(2个条件桩,每个条件桩2中状态)

    (3)、根据判定表 编写测试用例

 

    案例二 :订购单的检查

      如果金额大于500元,又未过期,则发出批准单和提货单;
      如果金额大于500元,但过期了,则不发批准单;
      如果金额小于等于500元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。

    (1)、分析需求,得到 有效等价类 和无效等价类

        金额是否大于500;是否过期;批准单是否发出

    (2)、根据 等价类 得到 判定表

        

 

    (3)、根据判定表  编写测试用例

         

 

 

五、 因果图

  1、定义

输入与输入

关系

所有输入条件中最多有一个产生,也可以一个没有

(or)

所有输入条件中,最少有一个产生、或者多个、或者所有

唯一

所有输入条件中,有且只有一个条件产生

要求

所有输入条件,只要有一个产生,其他跟着也会出现

输入与输出关系

恒等

当输入条件发生时,结果一定会出现

当输入条件发生时,结果一定会出现

(not)

当输入条件发生时,结果一定会发生

当输入条件发生时,结果一定会出现

(and)

当多个输入条件中,只有所有输入条件都发生,结果会出现

(or)

当多个输入条件中,只要有一个发生,结果会出现

  2、使用场景

    条件 与 条件 之间存在复杂关系 考虑使用因果分析

  3、分析过程 (具体案例)

    案例1:有一个修改文件的功能性需求:如果第一列是A或B,第二列数字,则修改文件;如果第一列不正确,则给出M,第二列不正确则给出L。

    (1)、根据需求 分析出因果

        

 

    (2)、画出因果节点图

        

 

    (3)、根据 因果图 得到因果表

      

    (4)、编写出 测试用例

 

六、 正交试验

  1、定义

    t因子c水平的正交表通过查表可得  (t因子,代表  ;c水平,代表

名词

因子

所有参与试验的影响试验结果的条件称为因子

水平

影响试验因子的取值或输入称为水平

特点

整齐可比

在同一张正交表中,每个因子每个水平出现的次数完全相同,试验中,每个因子的每个水平与其他因子的水平参与试验的机率完全相同

均匀分撒

同一张正交表中,任意两列的水平搭配是完全相同的

设计流程

分析测试需求获取因子及水平

根据因子水平选择合适的正交表

替换因子水平,获取试验次数

根据经验或其他因素补充试验次数

细化输出获得测试用例

注意

选择正交表时,因子与水平恰好与正交表相同

被测对象因子与正交表中的因子数不同时,选择正交表中因子稍大于被测对象因子数,且试验次数最少的、多余的因子弃用

被测对象水平与正交表中的水平不同时,可根据实际情况进行合并,然后拆分

因子、水平都不相同时,则可选择因子、水平稍大于被测对象的,且试验次数最少的

                  缺点:没有办法考虑实际因子之间的关系问题。

  2、使用场景

    在复杂的 业务逻辑关系中,针对4 判定表方法,得出的测试用例 太多,可以考录使用正交法

  3、分析过程 (具体案例)

    案例一:采集用户的用户信息,用户名、联系电话、通讯地址

    (1)、确定因子 和水平

      

      因子:1、客户信息;2、联系电话、3、通信地址  (3因子)

      水平:1、客户信息:a、输入;b、不输入 (2水平)

         2、联系电话:a、输入;b、不输入 (2水平)

         3、通讯地址:a、输入;b、不输入 (2水平)

     (2)、得到正交试验图 

        ** 搜索 “3因子2水平”,得到正交试验图 (数学知识)

        

      (3)、编写测试用例

七、 状态迁移

  1、定义

定义

关注被测对象的状态变化,在需求规格说明书中是否有不可达到的状态和非法的状态,是否产生非法的状态转移

状态

被测对象在特定输入条件下所保持的响应形式

方法流程

根据需求明确状态节点

绘制状态迁移图

绘制状态迁移树

抽取测试用例

  2、使用场景

    例如 商品选购,其中就有多种状态。(一个完整的流程中,要经过多种状态)

  3、分析过程 (具体案例)

    案例一:

      

    (1)、分析案例中的状态,得到状态图节点图

        

    (2)、根据 状态节点图 得到 状态流程图

        

 

    (3)、得出一条条测试流程 (测试用例)

        

 

    

 

八、 流程分析

  1、定义

场景设计-三个流程

基本流

通过业务流程输入都为正确的,能够最后达到目标的流程

ATM取款:插入银行卡,输入密码,输入取款金额,取款,取卡

备选流

通过实现业务流程时,因错误操作或异常输入,导致流程存在反复,但最终能够完成期望业务的流程

ATM取款:插入银行卡,输入密码(第一次输入错误,重新输入后完成剩余操作)

异常流

通过实现业务流程时,因错误操作或异常输入,导致业务没有正确完成

ATM取款:插入银行卡,输入密码,错误3次,吞卡

使用方法

理解需求,确定业务流程(基本流、备选流、异常流)

绘制流程图,再次明确流程路径

根据业务流程图,抽取测试路径,每次路径需包含一个从未走过的路径

细化路径设计测试用例

注意点:需使用等价类、边界值、正交试验、判定表、因果图等方法保证单个功能的正确性

缺点:本身不校验单个功能节点的正确性,只关心流程能不能走通

 

          

 

  2、使用场景

  3、分析过程 (具体案例)

      案例:

        

    (1)、分析需求 画出流程图

        

 

    (2)、根据 流程图 编写测试用例

        

 

posted @ 2018-07-18 19:40  hello秘密花园  阅读(35859)  评论(3编辑  收藏  举报