文章目录

  • 白盒测试--数据流测试
    • 基础定义
    • 最少测试用例数计算

白盒测试–数据流测试

基础定义

  • 数据流测试主要用于优化代码,早期的数据流分析常常集中于定义/引用异常的缺陷。

    • 变量被定义,但从来没有使用(未使用)
    • 所使用的变量没有被定义(未定义)
    • 变量在使用之前被定义了两次(重复定义)
  • 数据流测试按照程序中的变量定义和使用的位置来选择程序的测试路径。
  • 数据流测试关注
    • 变量接收值的点和使用这些值的点。
  • 一种简单的数据流测试策略
    • 要求覆盖每个变量定义到变量使用路径一次。
  • 定义1:定义节点
    • 节点n∈G(P)是变量v ∈V的定义节点,记做DEF(v,n),当且仅当变量的值由对应节点n的语句片断处定义。
    • 定义节点语句
      • 输入语句
      • 赋值语句
      • 循环语句和过程调用
  • 定义2: 使用节点
    • 节点n∈G(P)是变量v ∈V的使用节点,记做USE(v,n),当且仅当变量v的值在对应节点n的语句片断处使用。
    • 使用节点语句
      • 输出语句
      • 赋值语句
      • 条件语句
      • 循环控制语句
      • 过程调用
  • 定义3: 谓词使用、计算使用
    • 使用节点USE(v,n)是一个谓词使用(记做P-use),当且仅当语句n是谓词语句;否则,USE(v,n)是计算使用(记做C-use)
    • 对应于谓词使用的节点,其外度≥2
    • 对应于计算使用的节点,其外度≤1
  • 定义4: 定义-引用对
    • 如果某个变量v ∈V在语句n中被定义DEF(v,n),在语句m中被引用USE(v, m ),那么就称语句n和m为变量v的一个定义—引用对,简称du。
  • 定义5: 定义-使用路径
    • 定义-使用路径(记做du-path):是Path(P)中的路径,使得对某个v ∈V,存在定义和使用节点DEF(v,m)和USE(v,n),使得m和n是该路径的最初和最终节点。
  • 定义6: 定义 - 清除路径
    • 定义清除路径(记做dc-path):是具有最初和最终节点DEF(v,m)和USE(v,n)的Path(P)中的路径,使得该路径中没有其他节点是v的定义节点。
  • 定义7
    • 如果定义-引用路径中存在一条定义-清除路径,那么定义-引用路径是可测试的,否则就不可测试。
  • 产生测试用例
    在实践中,除了前面给出的各种方法外,通常还可以采用以下三种方法来补充设计测试用例

    • 通过非路径分析得到测试用例

      • 这种方法得到的测试用例是在应用系统本身的实践中提供的,基本上是测试人员凭工作经验的得到,甚至是猜测得到的。
    • 寻找尚未测试过的路径并生成相应的测试用例
      • 这种方法需要穷举被测程序的所有路径,并与前面已测试路径进行对比。
    • 通过指定特定路径并生成相应的测试用例。

最少测试用例数计算

  • 对于某个具体的程序来说,至少需要设计多少个测试用例才能实现逻辑覆盖。这里提供一种估算最少测试用例数的方法。
  • 结构化程序是由 3 种基本控制结构组成:顺序型(构成串行操作)、选择型(构成分支操作)和重复型(构成循环操作)。
  • 为了把问题化简,避免出现测试用例极多的组合爆炸,把构成循环操作的重复型结构用选择结构代替。这样,任一循环便改造成进入循环体或不进入循环体的分支操作了。
    • 用N-S图表示程序的3种基本控制结构
    • 例子
  • 对于一般的、更为复杂的问题,估算最少测试用例个数的原则也是同样的
    • 如果在N-S图中存在有并列的层次A1、A2,A1和A2的最少测试用例个数分别为a1、a2,则由 A1、A2 两层所组合的 N-S图对应的最少测试用例数为a1×a2。
    • 如果在N-S图中不存在有并列的层次,则对应的最少测试用例数由并列的操作数决定,即N-S图中除谓词之外的操作框的个数。
    • 举例

白盒测试--数据流测试相关推荐

  1. 【软件测试】白盒测试の数据流测试

    文章目录 数据流测试 数据流图 动态数据流测试 数据流测试 数据流测试方法根据程序中定义的位置和变量的使用来选择程序的测试路径. 数据流测试是一种强大的工具,用于检测由于编码错误而导致的数据值的不当使 ...

  2. 白盒测试——数据流测试

    数据流测试方法是按照程序中变量定义和使用位置来选择程序的测试路径. 一.基本概念 1.def(S)={x} 定义节点:表示在语句S中定义了变量x(此处定义表示对x进行了赋值). 2.use(S)={x ...

  3. #9.白盒测试:数据流测试

    数据流测试 1.数据流分析 从数据流视角:程序是一个程序元素对数据访问的过程: 数据流关系:数据的[定义--使用]对: 出发点:对数据的不正确处理: 使用程序图来描述数据[定义--使用]对. 数据流测 ...

  4. 结构测试(白盒测试) 路径测试和数据流测试

    结构测试(白盒测试)  Structure Test 结构性测试的方法:路径测试.数据流测试 结构性测试力求提高测试覆盖率. 结构性测试主要用于软件验证: are we creating a syst ...

  5. 简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

    简述什么是静态测试.动态测试.黑盒测试.白盒测试.α测试 β测试 静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程. 动态测试是实际运行被测程序,输入相应的测试实例,检查运行 ...

  6. 软件工程——软件测试(黑盒测试、白盒测试、测试分析报告)

    经过前面软件测编码阶段,是不是我们就可以把软件发布出去供用户使用了呢?不是的,为了确保软件不会出现不必要的差错,还需要经过重重测试的. 目录 软件测试的目的 软件测试的原则 软件测试的方法有哪些? 测 ...

  7. 软件测试——2.5 数据流测试

    数据流测试 ​ 关注点上的变量的操作是否正确 关于变量的操作: ​ · 定义:赋值.初始化-- ​ · 使用 ​ def(n) def(e):节点n 边e上所有定义的变量 ​ use(n) use(e ...

  8. 软件测试学习笔记(三)控制数据流测试

    软件测试学习笔记(三)控制&数据流测试 视频链接:软件测试_中国大学MOOC 2.3 结构化覆盖 2.4 控制流测试 2.5 数据流测试 1.什么是顶点覆盖? 对每个测试需求,即可达顶点,都可 ...

  9. 测试基础之一——静态测试,动态测试,黑盒测试,白盒测试,α测试,β测试的定义

    1.静态测试 定义: 静态测试是指不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程. 包括对代码测试.界面测试和文档测试三个方面: 对于代码测试,主要测试代码是否符合相应的标准和规范: ...

最新文章

  1. loj6070【山东集训第一轮Day4】基因
  2. MM模块常用T-code
  3. HDOJ(1115)多边形重心
  4. QT的QDeadlineTimer类的使用
  5. 【文件处理】——字典写入json文件或TXT文件,读取文件中的字典TypeError: Object of type ‘ndarray‘ is not JSON serializable错误解决方法
  6. 谷歌Chrome浏览器欲推门户网站聚合 正测试新“探索”页面
  7. 3D溜溜网站用的是php吗_三大免费开源的php语言cms系统 用好它们让你一天建好一个网站...
  8. PHP在线小说txt生成器源码
  9. 【干货】2021年中国主要经济指标预测-中国科学院.pdf(附下载链接)
  10. linux内核有那三部分组成,Linux内核的构成
  11. 读取寄存器值_温湿度传感器与S7-1200 PLC通讯读取温湿度案例
  12. 【原创】微信最新表情js代码
  13. ERROR:STATUS_BROM_CMD_SEND_DA_FALL(0xC0060003)
  14. 《统计学》第八版贾俊平第十一章一元线性回归知识点总结及课后习题答案
  15. Gazbo下的无人车集群导航仿真
  16. Windows平台下使用ffmpeg和segmenter实现m3u8直播点播
  17. kolla快速集成openstack-ocata和opencontrail-4.0.1.0单节点
  18. 互联网发展的成功经验,以及面临的挑战
  19. linux下dbf是什么文件,DBF文件怎么打开?DBF文件的打开方法教程
  20. WinEdit如何修改字体大小

热门文章

  1. 2017年6月大学英语六级真题(第一套)阅读理解(一)(每日一摸)
  2. SQL中将查询结果赋值给变量
  3. 链接服务器“(null)“的 OLE DB 访问接口 “SQLNCLI10“ 返回了消息 “客户端无法建立
  4. 如何在Java中将字符串转换为日期
  5. linux tts 中文,基于linux的中文TTS 简单实现
  6. 百度移动营销页常见问题汇总,99%的人不知道
  7. 揽月摘星 | 第 13 届金鼠标数字营销大赛得奖名单出炉,知家斩获 5 项大奖
  8. PhpSpreadsheet常用操作
  9. 基于ROCKCHIP的ubuntu-base根文件系统构建
  10. Rockchip HDMI 软件开发指南