质量小议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结果的系统响应,而非采用默认? -- 想来应该是的,至少明确每种行动可能的操作
白盒覆盖原则用例xya用例/分析
语句执行每条语句1-2-4552假真->假优:每个语句块均被执行
劣:但输入条件和判定分支覆盖较少,弱覆盖
判定(分支)执行每个判定(真/假)1-2-4552假真->假优:判定条件真、假值被执行
劣:判定语句的输入条件组合不全
    不同判定真、假结果组合不全
1-3-5 -555真真->真
条件执行每个判定条件1-2-45152假假->假
1-3-5-555真真->真
判定/条件执行判定+条件1-2-45152假假->假
1-3-5-555真真->真
组合执行判定、结果、组合1-2-4552假真->假优:判定条件所有组合被执行
    判定语句结果组合被执行:真真、真假、假真、假假
劣:部分路径无覆盖
5152假假->假
-5152真假->假
1-3-5-555真真->真
路径执行所有可能路径组合 1-2-4552假真->假优:考虑所有可能的路径(判定 or 条件 or 组合?)
劣:生成路径的可能条件组合未考虑
1-2-5不可达
1-3-4
1-3-5-555真真->真

以上是关于质量小议16 -- 白盒测试方法的主要内容,如果未能解决你的问题,请参考以下文章

质量小议11 -- 测试驱动

质量小议17 -- 自组织

质量小议17 -- 自组织

软件质量保证与测试03

质量小议13 -- 侥幸

质量小议13 -- 侥幸