zoukankan      html  css  js  c++  java
  • 黑盒测试用例设计技术概述

    1.等价类划分法

      1.1 测试中的疑问

        做加法器功能测试时,测试了1+1,1+2 , 1+3和1+4之后,还有必要测试I+ 5和1 +6吗,能否放心地认为它们是正确的?

      

      1.2 等价类划分

        1.把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
        2.每类的代表性 数据在测试中的作用等价于这一类中的其他值,如果某一 类中的一个例子发现了错误,这一 等价类中的其他例子也能发现同样的错误。反之,如果某-类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误

      

      1.3 基本步骤

        1.有效等价类

                      2.无效等价类

         3.确定等价类的原则

      1.4 确定测试用例

        1.为每一个等价类规划一个惟一的编号。

        2.设计一个新的测试用例,使其尽可能多覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。

        3.设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。

     2.边界值分析法

       2.1 边界值得选择原则

          1.如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。

          2.分析规格说明,找出其他可能的边界条件。

          3.如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。

          4.如果程序的规格说明给出的输入域或输出域是有序集合 ,则应选取集合的第一个元素和最后一 个元素作为测试用例。

          5.如果程序中使用了个内部数据结构 ,则应当选择这 个内部数据结构边界上的值作为测试用例。

    3.因果图法

      3.1 因果图法的来源

        如考虑所输入条件之间的相互组合 ,会由于组合情况数目相当大,需要大量的测试用例。

      

      3.2 应果图法的特点

       1.考虑输入条件间的组合关系。

        2.考虑输出条件对输入条件的信赖关系,即因果关系。

        3.能检查出功能说明中的某些不一致或遗漏。

          4.测试用例发现错误的效率高。

          5.因果图方法最终生产的就是判定表,它适合于检查程序输入条件和各种组合情况。

      

      3.3 因果图法基本步骤

        根据功能说明书中规定的原因和结果之间的关系如下图:

      

      3.4 识别出 “原因”和“结果” ,并加以编号   

        案例: 有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下。若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。
        自动售货机因果图如下:

      

      3.5 其中互斥、包含、唯一、要求时对原因的约束,屏蔽是对结果的约束。他们的含义如下:   

        1.互斥:表示不同时为1,即a, b,c中至多只有一个1。
        2.包含:表示至少有一个1 , 即a,b , c中不同时为0。
        3.唯一:表示a,b , c中有且仅有一个1。
        4.要求:表示若a=1,则b必须为1.即不可能a= 1且b=0。
        5.屏蔽:表示若a=1 ,则b必须为0。

       

    4.判定表驱动法

      1.心条件桩( Condition Stub ) :列出了问题得所有条件。通常认为列出的条件的次序无关紧要。
      2.心动作桩( Action Stub ) :列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
      3.心条件项( Condition Entry ) :列出针对它左列条件的取值。在所有可能情况下的真假值。
      4.学动作项( Action Entry ) :列出在条件项的各种取值情况下应该采取的动作。

      4.1 建立判定表的步骤

        确定规则的个数

        假如有n个条件,每个条件有两个取值(0 , 1) ,故有2n种规则。

        1.列出所有的条件桩和动作桩填入条件项。
        2.填入动作项,制定初始判定表。
        3.简化,合并相似规则或者相同动作。
        4.规格说明以判定表的形式给出,或很容易转换成判定表。
        5.条件的排列顺序不影响执行哪些操作。
        6.规则的排列顺序不影响执行哪些操作。
        7.当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。

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

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

       

  • 相关阅读:
    PHP(Zend Studio)入门视频
    PHP开发工具
    ggplot2 pdf import in Adobe Illustrator missing font AdobePiStd
    Python逐行读取文件内容
    R语言合并data.frame
    shell删除最后一列、删除第一行、比较文件
    C语言的fopen函数(文件操作/读写)
    Android 必须知道2018年流行的框架库及开发语言,看这一篇就够了!
    谈谈你对Glide和Picasso他们的对比的优缺点
    Google推荐——Glide使用详解(图片加载框架)
  • 原文地址:https://www.cnblogs.com/HouGuangJun/p/12164937.html
Copyright © 2011-2022 走看看