白盒测试
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种按照程序内部结构和编码结构设计测试数据并完成测试的测试方法。它是基于程序代码的内部逻辑知识,测试覆盖全部代码、分支、路径和条件。盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
白盒测试法常用方法有
1. 逻辑覆盖:包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次,即从开始到结束的多种到达路径。
满足条件组合覆盖,一定满足语句覆盖、判定覆盖、条件覆盖、判定条件覆盖
2. 基本路径测试。(白盒测试的测试方法中运用最为广泛的测试法)
基本路径测试法是
设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。
在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下4个步骤和一个工具方法:
符号O称为控制流图的一个节点,它表示一个或多个无分支的源程序语句。
流程图中的箭头,称为边或连接,代表控制流的方向,类似于流程图中的箭头。
2. 程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。
圈复杂度计算:
(1)强连同有向图:V(G)=m-n+p(m为G中弧的数,n为G中节点数,p是控制流图G中分离部分的数目,对于一个正常的程序来说,程序图总是连通的,即P=1)
(2)V(G)=判定节点数+1
程序圈复杂度是多少就有几条独立路径。
3. 导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。
4. 准备测试用例:确保基本路径集中的每一条路径的执行。
特点
1. 可以构成测试数据,使特定程序部分的到测试
2. 有一定的充分性度量手段
3. 可获得较多工具支持
4. 通常只用于单元测试啊啊
内容:
1.对程序模块的所有独立执行路径至少测试一次
2.对所有的逻辑判定,取“真”与取“假”的两种情况至少一次
3.在循环的边界和运行的边界限内执行循环体
4.测试内部数据结构的有效性
优缺点
1. 优点
·迫使测试人员去仔细思考软件的实现
·可以检测代码中的每条分支和路径
·揭示隐藏在代码中的错误
·对代码的测试比较彻底
·2. 缺点
··无法检测代码中遗漏的路径和数据敏感性错误
·不验证规格的正确性