当前位置: 首页 > news >正文

16.12 - 基于数据流设计用例

目录

一、数据流

二、定义--使用

1、定义

2、使用

(1)概念

(2)分类

3、举例说明

二、特征集

三、测试条件

四、测试覆盖项

五、测试用例

1、测试用例的覆盖率

2、全定义测试

(1)概念

(2)测试覆盖项

3、全计算使用测试

(1)概念

(2)测试覆盖项

4、全谓词使用测试

(1)概念

(2)测试覆盖项

5、全使用测试

(1)概念

(2)测试覆盖项

6、全定义--使用路径测试

(1)概念

(2)测试覆盖项

7、全使用测试和全定义--使用路径测试的区别

六、案例

测试程序示例

1、定义、使用分析

2、 全定义测试:定义-使用对

3、全定义测试:测试覆盖项

4、全定义测试:测试用例

5、全计算使用测试:定义-使用对

6、全计算使用测试:测试覆盖项

7、全计算使用测试:测试用例

8、全谓词使用测试:定义-使用对

9、全谓词使用测试:测试覆盖项

10、全谓词使用测试:测试用例

11、全使用测试:定义-使用对

12、全使用测试:测试覆盖项

13、全使用测试:测试用例

14、全定义-使用测试:定义-使用对

15、全定义-使用测试:测试覆盖项

16、全定义-使用测试:测试用例


一、数据流

  • 基于结构的动态测试用例设计方式可分为基于控制流和数据流两大类。
  • 基于数据流设计用例是通过选择的定义-使用的覆盖率来导出测试用例集,以覆盖测试项中变量定义和使用间的路径(就是对变量从定义到使用的相关子路径的覆盖进行测试)。

二、定义--使用

1、定义

  • 给变量赋值的过程叫做定义;
  • 给变量赋一次值,叫做定义一次,也就是说在程序的运行过程中对一个变量可能会进行多次定义,定义可能是给了变量一个新的值,也有可能等于原来的值;

2、使用

(1)概念

  • 是指在程序中用到了这个变量,但并没有给这个变量赋值的过程叫做使用。

(2)分类

  • 计算使用
    • 是指一个变量作为其他变量定义、或者输出的计算输入。
  • 谓词使用
    • 是指用变量作为判定条件(谓词)的结果

3、举例说明

二、特征集

  • 在基于数据流的测试中,测试特征集都是被测的代码段。

三、测试条件

  • 测试条件是代码中的定义-使用对。

四、测试覆盖项

1、全定义测试
2、全计算使用测试
3、全谓词使用测试
4、全使用测试
5、全定义--使用路径测试

五、测试用例

1、测试用例的覆盖率

  • 执行对应的测试用例所覆盖到的测试项占整个待测试项的百分比

2、全定义测试

(1)概念

  • 从变量定义到使用(计算使用或谓词使用)的控制流子路径

(2)测试覆盖项

  • 要求变量所有的定义都覆盖,从定义到其谓词使用或计算使用的至少一个子路径要覆盖

3、全计算使用测试

(1)概念

  • 从变量定义到该定义 所有计算使用的控制流子路径

(2)测试覆盖项

  • 要求变量从定义到其计算使用的自由子路径至少覆盖一次

4、全谓词使用测试

(1)概念

  • 从变量定义到该定义 所有谓词使用的控制流子路径

(2)测试覆盖项

  • 要求变量从定义到其谓词使用的自由子路径至少覆盖一次

5、全使用测试

(1)概念

  • 从变量定义到该定义的 所有 使用(包括谓词使用和计算使用)的控制流子路径

(2)测试覆盖项

  • 要求覆盖变量从每个定义到它的每个使用的所有子路径

6、全定义--使用路径测试

(1)概念

  • 从每个变量定义到该定义的每次 使用(包括谓词使用和计算使用)的所有控制流子路径

(2)测试覆盖项

  • 要求从每个变量定义到它的每次使用的所有无环子路径都覆盖到,如果从定义到同种使用类型有多条路径的话,每条路径都要被覆盖到
  • 无环子路径:从定义到使用的过程中,对这个变量不再做第二次定义

7、全使用测试和全定义--使用路径测试的区别

  • 例如当定义到计算使用有两条路径时,全使用只需要测试其中一条路径即可,但是全定义--使用必须把这两条路径都测试了

六、案例

测试程序示例

1、定义、使用分析

2、 全定义测试:定义-使用对

  • 变量定义到使用(计算使用或谓词使用)的子路径

3、全定义测试:测试覆盖项

  • 变量所有的定义都要被覆盖到,变量定义到使用(计算使用或谓词使用)的至少一条子路径要被覆盖,例如对于变量a,选择0->2或0->3作为测试覆盖项都可以。

4、全定义测试:测试用例

5、全计算使用测试:定义-使用对

  • 变量定义到使用(计算使用)的子路径

6、全计算使用测试:测试覆盖项

  • 要求所有变量的定义都覆盖,从定义到其使用使用的自由子路径至少覆盖一次

7、全计算使用测试:测试用例

8、全谓词使用测试:定义-使用对

  • 变量定义到使用(谓词使用)的子路径

9、全谓词使用测试:测试覆盖项

  • 要求所有变量的定义都覆盖,从定义到其谓词使用的自由子路径至少覆盖一次

10、全谓词使用测试:测试用例

11、全使用测试:定义-使用对

  • 变量定义到使用(计算使用和谓词使用)的所有子路径

12、全使用测试:测试覆盖项

  • 要求覆盖变量从每个定义到它的每个使用的所有子路径(例如当定义到计算使用有两条路径时,全使用只需要测试其中一条路径即可)
  • 定义到一种类型的使用有多条子路径时,只需要挑选其中的一条

13、全使用测试:测试用例

14、全定义-使用测试:定义-使用对

  • 变量定义到使用(计算使用和谓词使用)的所有子路径

15、全定义-使用测试:测试覆盖项

  • 从每个变量定义到该定义使用(包括谓词使用和计算使用)的所有控制流子路径,因为要覆盖所有子路径,一个变量的使用路径有多条,所以针对一个测试条件要设计多个测试覆盖项。
  • 要求从每个变量定义到它的每次使用的所有无环子路径都覆盖到
  • 定义到一种类型的使用有多条子路径时,多条子路径都需要覆盖到

16、全定义-使用测试:测试用例

相关文章:

  • 大数据工程师、数据挖掘师和数据分析师有啥区别
  • 面试让我手写红黑树?!
  • C/C++学习笔记 资源获取是初始化 (RAII) 理解
  • 高项 16 战略管理
  • Vue框架背后的故事
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • 计算摄影——妆造迁移
  • 【物理应用】基于Zernike多项式的大气湍流相位屏的数值模拟附matlab代码
  • 【工具网站推荐】文字转语音
  • 自定义类型:结构体详解
  • 两万字:讲述微信小程序之组件
  • 网际协议IP(计算机网络)
  • 树莓派buster安装ROS完整记录
  • Linux进程状态、进程优先级、环境变量、进程地址空间
  • 面试官:ArrayList扩容机制,你了解吗?
  • 2017 前端面试准备 - 收藏集 - 掘金
  • gcc介绍及安装
  • input实现文字超出省略号功能
  • java小心机(3)| 浅析finalize()
  • Logstash 参考指南(目录)
  • Meteor的表单提交:Form
  • php的插入排序,通过双层for循环
  • vue-router的history模式发布配置
  • 关于使用markdown的方法(引自CSDN教程)
  • 京东美团研发面经
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 数组的操作
  • 思维导图—你不知道的JavaScript中卷
  • 微服务入门【系列视频课程】
  • 学习笔记TF060:图像语音结合,看图说话
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #include<初见C语言之指针(5)>
  • #大学#套接字
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (1)(1.13) SiK无线电高级配置(六)
  • (11)MSP430F5529 定时器B
  • (52)只出现一次的数字III
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (二)JAVA使用POI操作excel
  • (二十三)Flask之高频面试点
  • (三)终结任务
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • *Django中的Ajax 纯js的书写样式1
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Project Open Day(2011.11.13)
  • .net web项目 调用webService
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET中的十进制浮点类型,徐汇区网站设计
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @ComponentScan比较
  • @Mapper作用
  • @private @protected @public
  • @RequestMapping 的作用是什么?