质量小议16 -- 白盒测试方法
Posted Rolei_zl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了质量小议16 -- 白盒测试方法相关的知识,希望对你有一定的参考价值。
前几日回顾白盒测试方法,竟想不起来,实例列举于此以备温习。
白盒测试是基于代码的单元测试,是软件测试金字塔的底层,是保证质量的重要方法,应重点加强。
白盒测试的 6 种方法
- 语句覆盖,每条语句至少执行一次
- 判定(分支)覆盖,每个判定(真、假)至少执行一次
- 条件覆盖,满足每个判定的每一类条件至少执行一次
- 路径覆盖,覆盖程序所有可能的路径组合
- 判定/条件覆盖,每个判定、每类条件至少执行一次
- 组合覆盖,每个判定条件产生结果的所有组合条件至少执行一次
如图,共有分支 5 条:1,2,3,4,5。其中5为隐含分支,未明确说明具体动作。可能的分支:
- 1-2-4
- 1-2-5
- 1-3-4
- 1-3-5
说明:
- 语句:顺序、分支、循环所构成的完整代码段代表一条语句 -> 1 +(2,3)任取1 +(4,5)任取1
- 判定:分支,真或假 -> 1 +(2,3)各取1次 +(4,5)各取1次
- 条件:构成判定的数据组合 -> 1 +(2,3)构成2/3的条件各取1次 +(4,5)构成4/5的条件各取1次各取1次
- 路径:所有语句、判定、条件构成的可能通路/分支
遗留问题:
- 如何选择白盒覆盖方法?-- 数据驱动也许是最佳选择,依据数据对各类组合结果进行系统行为响应,除了标准的顺序、分支、循环判断外,对数据与、或、非、异或等操作应最大化覆盖。当然要考虑人力和时间的投入产出比,以求最大化价值输出。
- 判断是否需要在代码中明确标记True 和 False结果的系统响应,而非采用默认? -- 想来应该是的,至少明确每种行动可能的操作
白盒覆盖 | 原则 | 用例 | x | y | a | ① | ② | 用例/分析 |
语句 | 执行每条语句 | 1-2-4 | 5 | 5 | 2 | 假真->假 | 真 | 优:每个语句块均被执行 劣:但输入条件和判定分支覆盖较少,弱覆盖 |
判定(分支) | 执行每个判定(真/假) | 1-2-4 | 5 | 5 | 2 | 假真->假 | 真 | 优:判定条件真、假值被执行 劣:判定语句的输入条件组合不全 不同判定真、假结果组合不全 |
1-3-5 | -5 | 5 | 5 | 真真->真 | 假 | |||
条件 | 执行每个判定条件 | 1-2-4 | 5 | 15 | 2 | 假假->假 | 真 | |
1-3-5 | -5 | 5 | 5 | 真真->真 | 假 | |||
判定/条件 | 执行判定+条件 | 1-2-4 | 5 | 15 | 2 | 假假->假 | 真 | |
1-3-5 | -5 | 5 | 5 | 真真->真 | 假 | |||
组合 | 执行判定、结果、组合 | 1-2-4 | 5 | 5 | 2 | 假真->假 | 真 | 优:判定条件所有组合被执行 判定语句结果组合被执行:真真、真假、假真、假假 劣:部分路径无覆盖 |
5 | 15 | 2 | 假假->假 | 真 | ||||
-5 | 15 | 2 | 真假->假 | 真 | ||||
1-3-5 | -5 | 5 | 5 | 真真->真 | 假 | |||
路径 | 执行所有可能路径组合 | 1-2-4 | 5 | 5 | 2 | 假真->假 | 真 | 优:考虑所有可能的路径(判定 or 条件 or 组合?) 劣:生成路径的可能条件组合未考虑 |
1-2-5 | 不可达 | |||||||
1-3-4 | ||||||||
1-3-5 | -5 | 5 | 5 | 真真->真 | 假 |
以上是关于质量小议16 -- 白盒测试方法的主要内容,如果未能解决你的问题,请参考以下文章