测试用例的设计方法:八大方法及综合策略

一、等价类法

概述:

  1. 根据程序对数据的要求,把程序的输入域划分成若干个部分
  2. 区分出哪些数据是有效的,哪些数据是无效的,(有效等价类与无效等价类)
  3. 从每个部分中选取少数代表性数据作为测试用例

步骤:

  1. 划分等价类
  2. 细化等价类 (对等价类进行编号)
  3. 建立等价类表
  4. 编写测试用例

要点:

  1.  被选为测试用例的数据在测试中的作用等价于这一类中的其他值
  2.  如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷
  3.  如果等价类中的一个测试不能捕获缺陷,那么选择该类中的其他测试也不会捕获到缺陷

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

二、边界值法

概述:

  1. 找到测试数据的边界点,也就是有效等价类和无效等价类的边界点
  2. 对边界点数据专门进行测试

步骤:

  1. 找到测试数据的边界点, 分析出上点、离点、内点
  2. 根据上点、离点、内点写出测试用例

要点:

  1.  如果输入条件规定了值的范围,则应取边界点数据,以及边界点两边的数据进行测试
  2. 如果输入条件规定了值的个数,则用最大个数及其两边的点、最小个数及其两边的点作为测试数据
  3. 根据规格说明的每个输出条件,使用前面的原则
  4. 根据规格说明的每个输出条件,应用前面的原则
  5. 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

三、因果图法

概述:

  1. 在一个模块或一个界面中,有多个控件,这些控件存在约束关系或组合关系,且输出依赖于输入条件,则可以使用因果图法

步骤:

  1. 找出所有的输入条件
  2. 找出所有的输出条件
  3. 明确所有输入条件之间的制约关系以及组合关系
  4. 明确所有输出条件之间的制约关系以及组合关系
  5. 找出怎么样的输入条件组合会产生那种输出结果
  6. 根据因果图写出判定表
  7. 根据判定表写出测试用例

要点:

  1. 恒等、或(V)、与(∧)、非(~)、互斥(E)、包含(I)、唯一(O)、要求(R)、屏蔽(M)
  2. 因果图法主要考虑控件之间条件的组合关系
  3. 每个控件的条件不宜过多,最好为2个
  4. 控件较多,或每个控件的条件过多,不宜用因果图法

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

四、判定表法

概述:

  1. 判断表主要侧重输入条件之间的逻辑关系(画因果图只是一个辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例)

步骤:

  1. 找出所有的输入条件
  2. 找出所有的输出条件
  3. 明确所有输入条件之间的制约关系以及组合关系
  4. 明确所有输出条件之间的制约关系以及组合关系
  5. 找出怎么样的输入条件组合会产生那种输出结果
  6. 根据因果图写出判定表
  7. 根据判定表写出测试用例

要点:

  1.  判定表的组成:

         

  1. 适合使用判定表设计测试用例的条件:
  • 规格说明以判定表的形式给出,或很容易转换成判定表
  • 条件的排列顺序不影响执行哪些操作
  •  规则的排列顺序不影响执行哪些操作
  • 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则
  • 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

五、正交法

概述:

  1. 能够使用最小的测试过程集合获得最大的测试覆盖率

步骤:

  1. 根据所测程序中控件的个数以及每个控件的取值个数,选取一个合适的正交排列表
  2.  把控件以及取值列出来,并对取值进行编号
  3. 把控件以及取值映射到正交排列表中
  4. 根据映射好的正交排列表编写测试用例

要点:

一、 n阶拉丁方:

  用n个不同的拉丁字母排成一个n阶方阵, 每个字母在任一行、任一列中只出现一次

二、 正交拉丁方:

  设有两个n阶的拉丁方,如果将它们叠合在一起,恰好出n2个不同的有序数对

三、 正交表是一种特制的表,记为:
  • m是每个控件包含的取值个数
  • K表示控件的个数
  • n是表的行数, n=k*(m-1)+1
  • n=k1*(m1-1)+k2*(m2-1)+…kx*(mx-1)+1
  •  L为正交表的代号
  • Ln(m1^k1 m2^k2...mx^kx)

正交排列法的局限性:

  1. 基本都要求每个控件中取值的个数要相等,这在实际软件中很少遇到

正交表的性质:

  1. 每一列中,不同的数字出现的次数相等
  2. 任意两列中数字的排列方式齐全而且均衡
  • 即:
  • 正交表的两大优越性,“均匀分散性,整齐可比性”
  • 通俗的说,每个因素的每个水平与另一个因素各水平各碰一次,这就是正交性

种类:

  1. 各列水平数均相同的正交表
  2. 混合水平正交表
  • 例:L8(4*24)——一个控件有4个属性,4个控件有2个属性

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

六.场景法

概述:

  1. 场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程
  2. 在冒烟测试时也主要采用场景法进行测试

步骤:

  1. 根据说明,描述出程序的基本流及各项备选流
  2. 根据基本流和各项备选流生成不同的场景
  3. 对每一个场景生成相应的测试用例

要点:

一、 基本流:
  • 按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)
二、 备选流 :
  • 导致程序出现错误的操作流程(模拟错误的操作流程)

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

七.大纲法

概述:

  1. 在一个程序或程序的某个模块中,涉及到多个窗口,每个窗口中能够完成多个动作
  2. 这些窗口又相互联系, 为了弄清窗口和窗口之间的关系,或者说动 作和动作之间的关系,可以使用测试大纲方法

步骤:

  1. 找出所有的窗口以及每个窗口的输入动作
  2. 找到各个窗口之间的联系,并据此编写测试用例

要点: (综合策略)

  1. 为了测试程序的业务逻辑、业务流程、主要功能的正确性,错误处理能力,使用场景法设计测试用例
  2. 需要输入数据的地方,进行等价类划分,包括输入条件和输出条件的等价划分
  3. 使用边界值分析方法补充用例
  4. 可以用错误推测法追加一些测试用例
  5. 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准或发现还有遗漏,应该再补充足够的测试用例
  6. 如果程序的功能说明中含有输入条件和输出条件的组合情况, 则一开始就可选用因果图法或判定表方法
  7. 对于参数配置类的软件,要考虑各个参数之间的组合情况,使用正交排列法
  8. 为了更真实模拟用户的操作流程、顺序,可以使用状态转换图方法设计测试用例
  9. 如果程序的模块有多个窗口,并有相关联的操作,可以使用测试大纲方法设计测试用例

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

八、状态转换图法

概念:

  1. 找出软件所有的状态以及导致这些状态发生变化的所有输入动作
  2. 进而用图形的方法把相关联的输入动作和状态联系在一起,真实模拟用户的操作顺序流程

步骤:

  1. 找出程序的所有输入动作,并进行编号
  2. 找出程序的所有状态
  3. 找出什么动作会导致什么状态发生,画出状态转换图
  4. 把相关联的动作和状态联系起来,设计测试用例

要点:

两个重要的概念::(核心)
  1. 软件的状态
  2. 输入的动作
状态转换图法小结:
  1. 每种状态至少访问一次 【无论用什么方法,每一种状态都必须测试】
  2. 测试看起来最常见最普遍的状态转换 【根据产品说明书,通过与客户、开发人员沟通,了解哪些操作更常用、更重要】
  3.  测试状态之间最不常用的分支 【这些分支是最容易被产品设计者和程序员忽视的】
  4. 测试所有错误状态及其返回值 【错误没有得到正确处理、错误提示信息不正确等情况是常有的】

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

九、综合策略

  1. 为了测试软件的业务流程,业务逻辑,基本功能的正确性,错误处理能力,采用场景法编写用例
  2. 需要输入数据的地方,进行等价类划分,包括输入条件和输出条件的等价划分
  3. 使用边界值分析方法补充测试用例
  4. 可以用错误分析法追加测试用例
  5. 对照程序的逻辑,检查测试用例的逻辑覆盖程度,如果没有达到覆盖标准或发现有遗漏,则要补齐用例
  6. 如果软件的功能说明里有输入条件和输出条件的组合情况,一开始就考虑用因果图和判定表方法
  7. 对于有参数配置的软件,要考虑各个参数的组合情况,则可以用正交排列表法来设计测试用例
  8. 为了模拟用户的操作流程,顺序,则可以用状态转换图法设计测试用例
  9. 如果一个软件或一个界面里有多个窗口,每个窗口可以完成多步动作,且每个窗口之间存在联系,可以采用大纲法来设计用例

 

posted @ 2019-05-30 14:51  元不器  阅读(9554)  评论(0编辑  收藏  举报