1、等价类法

概念:等价类划分属于典型的黑盒测试方法,根据程序对数据的要求,把程序的输入域划分成若干个部分,

   区分出哪些数据是有效的,哪些数据是无效的,从每个部分中选取少数代表性数据作为测试用例。

   这样,每一类的代表性数据在测试中的作用都等价于这类中的其他值。

有效等价类:

    • 对程序的规格说明有意义、合理的输入数据集合。
    • 如果用户输入有效等价类中的数据,程序应该正确计算、执行

无效等价类:

    • 对程序的规格说明不合理的或无意义的输入数据集合。
    • 如果用户输入无效等价类中的数据,程序应该给予错误提示或者根本不允许用户输入

等价类划分的步骤:

  1. 划分等价类
  2. 细划等价类划分
  3. 建立等价类表
  4. 编写测试用例

 

等价类的特点:

    • 每一类的代表性数据(也就是被选为测试用例的数据)在测试中的作用等价于这一类中的其他值。
    • 如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷。
    • 如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷。

划分等价类基本原则:

  1. 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
  2. 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
  3. 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。
  4. 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
  5. 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。

 

2、边界值法

设计方法:

  1. 找到测试数据的边界点,也就是有效等价类和无效等价类的边界点,对边界点数据专门进行测试。
  2. 一般情况下,需要对边界值(-99和99)以及边界值两边的数(-100和-98以及100和98)分别进行测试。

使用边界值方法设计的测试用例的三个点

找出范围值的内点、上点、离点设计用例

    • 内点:在范围内除上点外最大或最小的值
    • 上点:在范围内最大或最小的值
    • 离点:在范围外离上点最近的值

边界值方法小结:

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

 

 3、因果图法

因果图法概述:

因果图在软件测试用例的设计过程中,用于描述输入与输入、输入与输出之间存在的约束关系。

在一个功能模块或一个界面中,往往会有多个控件,这些控件一般会有一定的制约关系或者是组合关系,并且输出依赖于输入的条件。如果只是单独去测每个控件,往往使测试有很多冗余数据,同时又会造成测试的不全面,遗漏一些数据,这样,在设计测试用例时,可以使用因果图法,考虑这些输入的组合以及输出对输入的依赖关系。

因果图的核心:

    • 因果图的“因”——输入条件
    • 因果图的“果”——输出结果

因果图法要考虑:

  1. 所有输入条件的相互制约关系以及组合关系
  2. 输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”

因果图中的基本符号:

恒等       非(~)       或(V)        与(∧)         

常见的因果图中的约束条件:

互斥(E)    包含(I)     唯一(O)      要求(R)      屏蔽(M)

使用因果图法设计测试用例基本步骤:

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

 

4、判定表法

适合使用判定表设计测试用例的条件:

    1. 规格说明以判定表的形式给出,或很容易转换成判定表。
    2. 条件的排列顺序不影响执行哪些操作。
    3. 规则的排列顺序不影响执行哪些操作。
    4. 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
    5. 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要

 

 5、正交排列法

正交排列法概述:

正交排列法能够使用最小的测试过程集合获得最大的测试覆盖率。当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。

正交表的概念

正交表:一种特制的表,一般的正交表记为:    

        n=k*(m-1)+1

    

n是表的行数,也就是需要测试组合的次数

K是表的列数,表示控件的个数(因素的个数,或因子个数)

m是每个控件包含的取值个数(各因素的水平数,即各因素的状态数)

用 L为正交表的代号

  混合水平正交表: Ln(m1^k1 m2^k2..mx^kx),用n=k1(m1-1)+k2(m2-1)+…kx*(mx-1)+1公式计算

正交排列法的使用步骤:

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

正交表的种类:

    1. 各列水平数均相同的正交表
    2. 混合水平正交表

 

6、场景法

场景法概述:

      场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。当拿到一个测试任务时,我们并不是先关注某个控件的边界值、

      等价类是否满足要求,而是先要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试。当业务流程测试没有问题,

      也就是该软件的主要功能没有问题时,我们再重点从边界值、等价类等方面对控件进行测试 

场景法中重要的概念:

基本流:

按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)

备选流:

导致程序出现错误的操作流程(模拟错误的操作流程)

场景法的基本设计步骤:

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

7、测试大纲法

测试大纲方法:

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

使用测试大纲方法的步骤:

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

测试大纲方法小结:

大纲是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。

在根和每个叶节点之间存在唯一的路径,每条路径定义了一个特定的输入条件集合,用于定义测试用例。

 

8、状态转换图法

状态图法的两个重要的概念:

软件的状态:软件运行到某个时刻所处的情况

输入的动作:用户向软件进行的操作

状态转换图法概念:

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

状态转换图法的核心:

    • 软件所有的状态
    • 导致状态发生变化的所有输入动作

使用状态转换图法的步骤:

    1. 找出程序的所有输入动作,并进行编号
    2. 找出程序的所有状态
    3. 找出什么动作会导致什么状态发生,画出状态转换图(一般情况下这是一个反复的过程)
    4. 把相关联的动作和状态联系起来,设计成测试用例

状态转换图法小结:

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

 

9、测试方法选择的综合策略

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

 

posted on 2020-08-14 10:39  予夜以星  阅读(176)  评论(0)    收藏  举报