zoukankan      html  css  js  c++  java
  • 白盒测试

    白盒测试

    白盒测试

    又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。它一般用来测试程序的内部结构,包括控制流和数据流,但以控制流结构为主,并判定其结果是否与预期的结果一致。

    控制流覆盖准则包括:语句覆盖准则;分支覆盖准则;谓词测试,包括:原子谓词覆盖准则、 分支-谓词覆盖准则、复合谓词覆盖准则;路径覆盖准则。

    1.语句覆盖准则

    是最简单的结构性测试方法之一,它要求测试中,程序中的每条语句都得到运行。即,控制流图中的所有语句都被运行的充分必要条件是,覆盖图中的所有节点。

    测试数据集T称为语句覆盖充分的,当且仅当LT覆盖了GP中的所有节点。

    缺点:测试用例可以覆盖所有节点,但是有一个分支没有覆盖,所以有一定问题。

    2.  分支覆盖准则

    分支覆盖要求在软件测试中,每个分支都至少获得一次真/假取值的经历。

    测试数据集T称为分支覆盖充分的,当且仅当LT覆盖了GP中的所有有向边。

    分支覆盖的同时,还满足了语句覆盖。分支覆盖比语句覆盖强一些,分支覆盖

    测试包含语句覆盖测试。

    3. 谓词测试

    (1)原子谓词覆盖准则

    要求在软件测试中,每个复合谓词所包含的每一个原子谓词都至少获得一次“真”值和一次“假”值。

    (2)分支-谓词覆盖准则

    要求在软件测试中,不仅每个复合谓词所包含的每个原子谓词都至少获得一次真/假。每个复合谓词本身也至少获得一次“真”/“假”

    分支条件覆盖可以满足原子谓词的真/假和分支的真/假至少出现一次的条件,但是有可能不能全覆盖

    (3)复合谓词覆盖准则

    测试数据集T称为复合谓词覆盖充分的,如果任意一个分支,对该分支所包含的原子谓词的任意一个可行的真/假值组合,T中都存在一个测试数据使该组合谓词运行时,原子谓词的取值恰好为该真/假值组合。即每个复合谓词内的原子谓词的各种可能的组合都至少出现一次。

    三者的关系:复合谓词覆盖 > 分支-谓词 〉原子谓词

    4.路径覆盖准则

    测试数据集T称为路径覆盖充分的,当且仅当LT覆盖了GP中的所有完整路径。

    数据流覆盖准则包括:定义覆盖测试准则;引用覆盖测试准则;定义-引用覆盖测试准则。

    (1)定义覆盖测试准则

    测试数据集T对测试程序P满足定义覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义性出现,若该定义性出现能够可行地传递到该变量的某一个引用性出现,那么LT中存在一条路径A,它包含一条子路径A’,使得A’将该定义出现传递到某一引用性出现。

    (2)引用覆盖测试准则:

    测试数据集T对测试程序P满足引用覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义n,以及该定义的每一个能够可行地传递到的引用n’,LT中都存在一条路径A,它包含一条子路径A’,使得A’将n传递到n’。

    (3)定义-引用覆盖测试准则:

    测试数据集T对测试程序P满足定义-引用覆盖准则,如果对具有数据流信息的控制流图GP中的任意一条从定义传递到其引用的路径A,若A是无回路的或A是简单回路,那么LT中存在一条路径B,使得A是B的子路径。

    目的是只测试无回路或只包含简单回路的路径。

    白盒测试的优点:

    ①    检测代码中的每条分支和路径,对代码的测试比较彻底

    ②    能够仔细思考软件的实现

    ③    能够准确的揭示代码中的错误

    白盒测试的缺点:

    (1)不能很好地查出程序中因遗漏路径而出错

    (2)穷举昂贵,耗费大量的时间

  • 相关阅读:
    思路决定出路
    php-异常处理机制
    Win10 IoT 10 中文显示乱码或报错的问题
    Win10 IoT 9 Windows IoT Core扩展开发包
    Win10 IoT 8 GPIO输入输出
    Win10 IoT 7 10586版本的异同
    Win10 IoT 6 设置系统时间
    Win10 IoT 5 修改IP地址
    Win10 IoT 4 远程启动计划任务
    Win10 IoT 3 部署应用
  • 原文地址:https://www.cnblogs.com/yangyang5/p/4438733.html
Copyright © 2011-2022 走看看