语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖

语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖最近在复习软件测试的考试 每次到白盒测试这里都要为这几种逻辑覆盖方法感到头疼 这次终于决定好好整理出来 逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖 它是一系列测试过程的总称 这组测试过程逐渐进行越来越完整的通路测试 根据覆盖目标的不同和覆盖源程序语句的详尽程度 逻辑覆盖又可分为 语句覆盖 判定覆盖 条件覆盖 条件 判定覆盖 条件组合覆盖 路径覆盖这里以一个题目引入 if a gt

最近在复习软件测试的考试,每次到白盒测试这里都要为这几种逻辑覆盖方法感到头疼,这次终于决定好好整理出来。

这里以一个题目引入:

if (a>1) and (b = 0) then x = x / a if (a = 2) or (x > 1) then x = x+ 1 
  1. 根据以上程序段画出程序流程图
  2. 按照要求给出六种逻辑覆盖的测试用例

注:[可执行语句:流程图中的矩形;判定:流程图中的菱形]

(一) 语句覆盖:选择足够多的测试用例,使程序中每一可执行语句至少执行一次

分析:需要覆盖的可执行语句为x = x / ax = x + 1

测试用例如下:

a = 2, b = 0, x = 3 覆盖路径:a-c-e 

(二) 判定(分支)覆盖:选择足够多的测试用例,使程序中每个判定的”真”和”假”至少执行一次

分析:需要覆盖的路径为:a-c-e和a-b-da-b-e和a-c-d

测试用例如下:

答案1 a = 2, b = 0, x = 3 覆盖路径:a-c-e a = 1, b = 0, x = 1 覆盖路径:a-b-d 答案2 a = 2, b = 1, x = 1 覆盖路径:a-b-e a = 3, b = 0, x = 3 覆盖路径:a-c-d 

(三) 条件覆盖:选择足够多的测试用例,使程序中每个判定的每个条件取得各种可能的结果

分析:需要满足的判定为:判定一(a > 1, a <= 1, b = 0, b != 0) ; 判定二(a = 2, a != 2, x > 1, x <= 2)

测试用例如下:

答案1 a = 2, b = 0, x = 3 取到a>1(同时满足a=2), b = 0, x>1 a = 1, b = 1, x = 1 取到a <= 1(同时满足a!=2), b != 0, x <= 2 答案2 a = 1, b = 0, x = 3 取到a <= 1(同时满足a!=2), b = 0, x >1 a = 2, b = 1, x = 1 取到a>1(同时满足a=2), b != 0, x<=2 

(四) 判定/条件覆盖:选择足够多的测试用例,使程序中每个判定的"真"和"假"至少执行一次,并且每个判定的每个条件取得各种可能的结果。

分析:

  1. 需要覆盖的路径为:a-c-e和a-b-da-b-e和a-c-d
  2. 需要满足的判定为:判定一(a > 1, a <= 1, b = 0, b != 0) ; 判定二(a = 2, a != 2, x > 1, x <= 2)

测试用例如下:

a = 2, b = 0, x = 3 覆盖路径a-c-e 取到a>1(同时满足a=2), b = 0, x>1 a = 1, b = 1, x = 1 覆盖路径a-b-d 取到a <= 1(同时满足a!=2), b != 0, x <= 2 

(五) 条件组合覆盖:选择足够多的测试用例,使程序中所有判定的条件组合至少执行一次

分析:需要覆盖的条件组合为:

a > 1, b = 0 a>1, b != 0 a <= 1, b = 0 a <= 1, b != 0 a = 2, x > 1 a = 2, x< = 1 a != 2, x > 1 a != 2, x <= 1 

测试用例如下

a = 2, b = 0, x = 3 覆盖组合1,5 a = 2, b = 1, x = 1 覆盖组合2,6 a = 1, b = 0, x = 3 覆盖组合3,7 a = 1, b = 1, x = 1 覆盖组合4,8 

(六) 路径覆盖:选择足够多的测试用例,使程序中每条路径至少执行一次

分析:需要覆盖的路径为:a-c-e、 a-b-d、 a-b-e、 a-c-d

a = 2, b = 0, x = 3 覆盖路径:a-c-e a = 1, b = 0, x = 1 覆盖路径:a-b-d a = 2, b = 1, x = 1 覆盖路径:a-b-e a = 3, b = 0, x = 4 覆盖路径:a-c-d 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206043.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:36
下一篇 2026年3月19日 下午4:37


相关推荐

  • OpenClaw 智能部署:让 AI 落地更简单的三步路径

    OpenClaw 智能部署:让 AI 落地更简单的三步路径

    2026年3月14日
    3
  • CAN协议通信「建议收藏」

    CAN协议通信「建议收藏」CAN协议广泛应用于车辆诊断通信中,学习它的过程,就像学习一种与车辆沟通的语言,让我更深入的了解汽车的世界。感受汽车的精彩

    2022年6月28日
    65
  • BindingNavigator 类

    BindingNavigator 类v/:*{behavior:url(#default#VML);}o/:*{behavior:url(#default#VML);}w/:*{behavior:url(#default#VML);}.shape{behavior:url(#default#VML);}Normal002

    2022年7月12日
    19
  • linux mail发邮件_python邮件发送

    linux mail发邮件_python邮件发送linux安装mailx发邮件文章目录linux安装mailx发邮件原理安装配置qq的smtps服务器配置Peer的证书发布者为信任​ mail命令是Linux终端发送邮件用的最多的命令。mailx是mail命令的更新版本,基于BerkeleyMail8.1,意在提供POSIXmailx命令的功能,并支持MIME、IMAP、POP3、SMTP和S/MIME扩展。mailx在某些交互特性上更加强大,如缓冲邮件消息、垃圾邮件评分和过滤等。在Linux发行版上,mail

    2022年10月20日
    4
  • Java事务详解[通俗易懂]

    Java事务详解[通俗易懂]1.什么是JAVA事务?通常的观念认为,事务仅与数据库相关。事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性:表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。事务的一致性:表示当事务执行失败时,所有被该事务影响的数据…

    2026年3月11日
    5
  • Hive安装详细步骤

    Hive安装详细步骤一 下载 hive 下载 hive 地址 http mirror bit edu cn apache hive 二 安装 mysql 执行以下几个命令安装 mysqlsu rootyum yinstallmysq servermysql develwgethtt dev mysql com get mysql community release el7 5 noarch rpmrpm ivhmysql community release el7 5

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号