码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 白盒测试的各种方法


    文章目录

    • 一、逻辑测试法设计测试用例
      • 1.1语句覆盖
      • 1.2判定覆盖
      • 1.3条件覆盖
      • 1.4判断、条件覆盖(CDC)
      • 1.5条件组合覆盖(MCC)
    • 二、基本路径测试法
      • 2.1定义:
      • 2.2程序控制流图

    白盒测试又叫架构测试
    语句覆盖<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖

    一、逻辑测试法设计测试用例

    此方法主要是测试覆盖率,以内在逻辑结构为基础进行测试

    1.1语句覆盖

    使程序中的每个可执行语句至少执行一次。
    在这里插入图片描述
    如图所示,覆盖的路径依次为1->2->3->4

    特点:
    (1)程序中每个语句至少执行一次
    (2)对程序执行逻辑的覆盖率低,属于最弱的覆盖方式

    1.2判定覆盖

    含义:在这里插入图片描述
    在这里插入图片描述
    可以设计的测试用例为:
    第一个条件为真,第二个条件为假
    第一个条件为假,第二个条件为真
    在这里插入图片描述
    也可以设计:
    第一个条件为真,第二个条件为真
    第一个条件为假,第二个条件为假

    特点:
    优点:不仅满足了判定覆盖还满足了语句覆盖,因此比语句覆盖稍强。
    缺点:但仍然无法发现程序段中的逻辑判定错误。

    1.3条件覆盖

    定义:设计用例,使每个判断中的每个条件的可能取值至少满足一次
    在这里插入图片描述
    第一个判定框: 第二个判定框:
    a>1为真     T1           a=2为真  T3
    a>1为假     -T1          a=2为假  -T3
    b==0为真       T2           x>1为真   T4
    b==0    为假   -T2          x>1为假  -T4
    设计:
    T1,-T2,T3,-T4
    -T1,T2,-T3,T4
    其他满足的也可以
    特点:
    (1)增加了对条件判断情况的判断,增加了测试路径
    (2)※条件覆盖不一定满足判断覆盖

    1.4判断、条件覆盖(CDC)

    定义:设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且判定本身的判定结果(真/假)也至少出现一次。
    设计满足的测试用例:
    T1,T2,T3,T4
    -T1,-T2,-T3,-T4

    1.5条件组合覆盖(MCC)

    定义:设计足够多的测试用例,使得每个判定中的各种可能的组合都至少出现一次。
    所有条件的组合
    满足“条件组合覆盖”的测试用例是一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”的
    在这里插入图片描述
    测试用例:
    全T写一组:
    全F写一组:
    T和F组合写:
    TFTF
    FTFT

    特点:
    组合覆盖一定满足判定覆盖、条件覆盖、判定/条件覆盖

    在这里插入图片描述

    二、基本路径测试法

    2.1定义:

    基本路径测试是在程序控制流图的基础上,通过分析控制流图的环形复杂度,导出基本可执行的独立路径的集合。
    可以保证被测程序的每一条可执行语句至少执行一次。

    2.2程序控制流图

    只有结点和边
    在这里插入图片描述
    复合条件分解为控制流图:
    在这里插入图片描述
    环形复杂度V(G):
    (1)流图中的区域数
    (2)V(G) = E-N+2;(边的条数-结点数+2;)
    (3)V(G) = P+1;(判定结点数目+ 1)
    注意:判定结点个数=分支个数-1;

  • 相关阅读:
    PyTorch深度学习实战(5)——计算机视觉基础
    可视化 | python可视化相关库梳理(自用)| pandas | Matplotlib | Seaborn | Pyecharts | Plotly
    VPP DPDK,不是翻墙!!
    学生用什么光的灯最好?适合学生光源的护眼台灯推荐
    old version wakelock.h
    Java GUI实现贪吃蛇游戏
    Vue中组件化编码使用(实战练习一)
    Django之csrf与auth模块操作
    UC3843电流模式PWM控制器,不起振的原因?
    【苹果家庭推送】这是iPhone上SMS功能的严重安全漏洞
  • 原文地址:https://blog.csdn.net/qq_52986400/article/details/127628199
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号