zoukankan      html  css  js  c++  java
  • 搞懂逻辑覆盖

    逻辑覆盖

    逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖

    分为以下几种

    • 语句覆盖 Statement coverage

    • 判定覆盖 Decision coverage

    • 条件覆盖 Condition coverage

    • 条件/判定覆盖 Condition/decision coverage

    • 条件组合覆盖 Condition combination coverage

    • 路径覆盖 Path coverage

    例子

    avatar

    Path:

    • L1(a → c → e)

    • L2(a → b → d)

    • L3(a → b → e)

    • L4(a → c → d)

    语句覆盖 Statement coverage

    语句覆盖的要求是使所有可执行语句至少执行一次

    以上图为例,所有的可执行语句都在L1上,只要选取一个用例A=2,B=0,x=3即可满足语句覆盖

    判定覆盖 Decision coverage

    使每个判定获得一种可能的结果至少一次。

    选取用例

    1. A=2,B=0,x=3 覆盖了L1

    2. A=1,B=1,x=1 覆盖了L2

    使每个判定的结果都获得了一次

    条件覆盖 Condition coverage

    使每个条件都要完成一次

    • 对于第一个判定

    • 条件A>1 True为T1,False为!T1

    • 条件B=0 True为T2,False为!T2

    • 对于第二个判定

    • 条件A=2 True为T3,False为!T3

    • 条件X>1 True为T4,False为!T4

    可以选出以下用例

    Test case Path Condition value Coverage branch
    (2,0,3) ace(L1) T1 T2 T3 T4 c,e
    (1,1,1) abd(L2) !T1 !T2 !T3 !T4 b,d

    或者以下这种

    Test case Path Condition value Coverage branch
    (1,0,3) ace(L1) !T1 T2 !T3 T4 b,e
    (2,1,1) abd(L2) T1 !T2 T3 !T4 b,e

    条件判定覆盖 Condition/decision coverage

    设计测试用例,使得每个判定的结果都获得一次,同时每个条件也要完成一次

    可以选出以下用例

    Test case Path Condition value Coverage branch
    (2,0,3) ace(L1) T1 T2 T3 T4 c,e
    (1,1,1) abd(L2) !T1 !T2 !T3 !T4 b,d

    条件组合覆盖 Condition combination coverage

    设计测试用例,使得每个判定中的所有条件组合都至少实现一次

    如果测试用例实现了条件组合覆盖,那么它一定也实现了条件覆盖、判定覆盖和条件判定覆盖

    本例子中每个判定的条件组合如下

    • 第一个判定

    ① A>1, B=0 as T1T2

    ② A>1, B≠0 as T1!T2

    ③ A<=1, B=0 as !T1T2

    ④ A<=1, B≠0 as !T1!T2

    • 第二个判定

    ⑤ A=2, X>1 as T3T4

    ⑥ A=2, X>=1 as T3!T4

    ⑦ A≠2, X>1 as !T3T4

    ⑧ A≠2, X>=1 as !T3!T4

    可以选出以下测试用例

    Test case Path Condition value Coverage condition no.
    (2,0,3) ace(L1) T1 T2 T3 T4 ①⑤
    (2,1,1) abe(L3) T1 !T2 T3 !T4 ②⑥
    (1,0,3) abe(L3) !T1 T2 !T3 T4 ③⑦
    (1,1,1) abd(L2) !T1 !T2 !T3 !T4 ④⑧

    尽管这四个测试用例覆盖了所有的条件组合和4条分支,但是只有3条路径被覆盖了,路径“acd”没有被经过

    路径覆盖

    设计测试用例覆盖所有可能的路径

    以上的例子可以选出如下测试用例

    Test case Path Condition value
    (2,0,3) ace(L1) T1 T2 T3 T4
    (1,0,1) abd(L2) !T1 !T2 !T3 !T4
    (2,1,1) abe(L3) T1 !T2 T3 !T4
    (3,0,3) acd(L4) T1 T2 !T3 !T4
  • 相关阅读:
    dedecms织梦自定义表单发送到邮箱-用163邮箱发送邮件
    DedeCMS实现自定义表单提交后发送指定QQ邮箱法
    什么是授权码,它又是如何设置?
    telnet配置和telnet用法
    linux利用sendmail发送邮件的方法
    SSH会话连接超时问题
    dede 提交表单 发送邮件
    a 标签中 写页面刷新代码
    织梦dede在首页调用留言本
    PHP通过Thrift操作Hbase
  • 原文地址:https://www.cnblogs.com/aopstudio/p/10446910.html
Copyright © 2011-2022 走看看