逻辑覆盖测试包括的方法有:语句覆盖、路径覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。

接下来通过对下面子程序进行各个方法的测试用例设计:

[cpp] view plain copy
  1. procedure example(y,z:real; var x:real)
  2. begin
  3. if(y > 1) and (z = 0) then x:= x / y;
  4. if(y = 2) or (x > 1) then x:= x + 1;
  5. end;
程序对应的流程图如下:
  • 语句覆盖:所有语句至少执行一次。即执行路径sabcde即可,测试用例如表所示。
   

测试数据

预期结果

x = 4, y= 2, z = 0

x = 3

  • 路径覆盖:所有可能被执行到的路径至少执行一次。本题需执行路径有:sabcde、sace、sabce、sacde,测试用例如表所示。

          

执行路径

测试数据

预期结果

sabcde

x = 4, y= 2, z = 0

x=3

sace

x=1,y=1,z=1

x=1

sabce

x=1,y=3,z=0

x=0

sacde

x=1,y=2,z=1

x=2

  • 判定覆盖:每个判定结果至少执行一次。本题需满足a=true且c=false,a=false且c=true两种情况即可,即执行路径sabce、sacde,测试用例如表所示。
       

判定

执行路径

测试用例

预期结果

a=t,c=f

sabce

x=1,y=3,z=0

x=0

a=f,c=t

sacde

x=1,y=2,z=1

x=2

  • 条件覆盖:每个判定中的每个条件可能出现的结果至少出现一次。本题判定a可能出现的结果:y>1,y<=1,z=0,z≠0,判定c可能出现的结果:y=2,y≠2,x>1,x<=1,可执行的路径为sabcde,sace,测试用例如表所示。
        

覆盖的条件

执行路径

测试数据

预期结果

y>1,y=2,z=0,x>1

sabcde

x=2,y=2,z=0

x=1

y<=1,y≠2,z≠0,x<=1

sace

x=1,y=1,z=1

x=2

  • 判定/条件覆盖:每个判定结果至少出现一次,每个判定中的条件可能出现的结果至少出现一次。可执行路径为sabcde,sace,测试用例如表所示。
       

判定

覆盖的条件

执行路径

测试数据

预期结果

a=t,c=t

y>1,y=2,z=0,x>1

sabcde

x=2,y=2,z=0

x=1

a=f,c=f

y<=1,y≠2,z≠0,x<=1

sace

x=1,y=1,z=1

x=2

  • 条件组合覆盖:每个判定的每个条件的可能出现的结果的所有可能的组合至少出现一次。本题中判定a可能出现的条件组合为:(1) y>1,z=0; (2) y<=1,z=0; (3)y>1,z≠0; (4) y<=1,z≠0 ; 判定才可能出现的条件组合为:(1) y=2,x >1; (2)y≠2,x >1; (3) y=2,x<=1; (4)y≠ 2,x<=1。测试用例如表所示。
      

条件组合

执行路径

测试用例

预期结果

y>1,z=0,y=2,x>1

sabcde

x=4,y=2,z=0

x=3

y<=1,z=0,y≠2,x<=1

sace

x=1,y=1,z=1

x=1

y>1,z≠0,y=2,x<=1

sace

x=1,y=2,z=1

x=1

y<=1,z≠0,y≠2,x>1

sacde

x=2,y=1,z=1

x=3

  总结:测试代码时所执行的路径占总路径数越高,则覆盖程度越大。所以覆盖率由高——低:路径覆盖-条件组合覆盖-判定/条件覆盖-条件覆盖-判定覆盖-语句覆盖。

软件工程逻辑覆盖测试相关推荐

  1. 逻辑覆盖测试(六)--路径测试

    路径覆盖:设计足够多的测试用例,使得程序中所有可能的路径都被至少被执行一次. 例子: 测试用例: 思路: 先是都经过a,到一个if分支,可以有a .b和 a.c,然后到第二个if分支,可以有a b d ...

  2. 逻辑覆盖测试(四)判定/条件覆盖

    判定/条件覆盖:测试用例的设计应满足判定节点的取真和取假分支至少执行一次,且每个简单判定条件的取真和取假情况也至少执行一次. 简单来说,就是判定覆盖和条件覆盖取交集. 例子: 流程图: 当判定覆盖和条 ...

  3. 逻辑覆盖测试(三)条件覆盖

    条件覆盖:设计测试用例时应保证程序中每个复合判定表达式中,每个简单判定条件的取真和取假情况至少执行一次. 例子: 流程图: 测试用例: 程序中一共两个if语句,都是复合判定条件,其中的简单判定条件分别 ...

  4. 逻辑覆盖测试(一)语句覆盖

    语句覆盖: 设计测试用例时保证程序的每条语句至少执行一次. 简单来说,就是每个语句都覆盖一遍. 例子: 流程图如下: 测试用例如下: x=4,z=9,第一个if语句执行到了: x=4,y=7,第二个i ...

  5. 软件测试之逻辑覆盖测试理论总结(白话文)

    1.语句覆盖 语句覆盖就是所有可执行的语句都可以得到一次执行.注意可执行那三个字就可以,因为可能有的判定条件比较狗,它下面的分支的语句无论如何都不会执行. 例如这随手就能写出一个: if(x>1 ...

  6. 软件工程:编码和测试

    软件的质量主要取决于需求分析的质量 程序的质量主要取决于软件设计的质量 程序代码的质量取决于详细设计的质量 1,编码 1.1,选择程序设计语言 程序设计语言是人和计算机通信的最基本的工具,会影响人的思 ...

  7. 大学软件工程总结,总结到位

    7. 喷泉模型在实现时,由于活动不同,可分为系统实现和对象实现,这既反映了全系统的开发过程,也反映了对象族的开发和重用过程 5)智能模型 智能模型也称为基于知识的软件开发模型,是知识工程与软件工程在开 ...

  8. 软件工程(第三版) 期末复习

    学习资料:软件工程(第三版)齐治昌等 学习计划:30h内 题型:选择题,填空题,判断题,简答题 update:2019/01/08补充了一些 update:2019/01/09国防科大的pdf版,在网 ...

  9. 软件工程北大慕课答案

    第一周:软件工程概论 软件的定义及特点 1单选(2分)软件产品与物质产品有很大的区别,软件产品是一种(C)产品. A.有形 B.消耗 C.逻辑 D.文档 2多选(2分)下列关于软件的说法正确的是(BC ...

最新文章

  1. XML的简单读取与写入
  2. 【重发】终于提交了项目第一个版本到git@osc了。兴奋ing
  3. 预测人民币在2006年最终的收盘价
  4. mysql myisam存储引擎_MySQL浅谈MyISAM存储引擎
  5. 26 行 ABAP 代码使用 HTTP_GET 函数下载百度网站的首页数据
  6. Django模型关系
  7. [Python] os.path.splitext(path):分离文件名与扩展名
  8. 关于java反射里的.class、.getClass()、Class.Forname()
  9. How to use neural network to realize logic 'and' and 'or'?
  10. 抓包软件 Fiddler 了解一下?
  11. 仿链家地图找房_iOS地图找房(类似链家、安居客等地图找房)
  12. activiti7对接springboot
  13. Windows7 内部版本7601 此Windows副本不是正版
  14. 水星无线路由启动dhcp服务器,水星无线路由器wds设置教程
  15. c语言怎么读取西门子plc数据,怎样读取西门子PLC中的程序
  16. 峡谷之巅显示服务器更新,峡谷之巅更新最新资讯
  17. 赵小楼《天道》深度解析(75)客观是对现有事实的认可,嘴上认可可不行,得心里认,否则就是自欺
  18. 国庆福利赠书,书籍全部包邮送!
  19. 网易云音乐API,的调用方法 ,vue项目中(在本地使用)
  20. 信息量、熵、交叉熵、KL散度、JS散度、Wasserstein距离

热门文章

  1. 大数据学习的有哪些相关书籍
  2. DOS批处理高级教程(一) 批处理基础
  3. word2计算机fx公式,Word的fx公式怎么使用说明
  4. 臧圩人:java面试题解惑系列(一)——类的初始化顺序学习笔记
  5. 【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)
  6. html背景边框特效代码,纯JS实现动态边框特效
  7. 2021网安保研---武汉大学网络安全学院
  8. android重力传感器横竖反,Android重力感应实现方式
  9. 跑了这么久,物流机器人怎么还没跑进千家万户?
  10. 逆袭:2012互联网盘点