• 质量小议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真真->真
  • 相关阅读:
    100天精通Python(可视化篇)——第106天:Pyecharts绘制多种炫酷桑基图参数说明+代码实战
    第三十八章 构建数据库应用程序 - 处理表单提交请求
    Colocate Join :ClickHouse的一种高性能分布式join查询模型
    云原生时代,让软件架构设计行云流水的奥秘
    淘宝/天猫电商API接口详情
    deepin(深度)系统下qt5.12.0的程序打包发布到linux云服务器上
    C++ 中explicit的作用及用法
    day08 微服务保护
    读书笔记之C Primer Plus 5
    JavaScript面向对象学习(一)
  • 原文地址:https://blog.csdn.net/u012841352/article/details/118682916