结构测试(白盒测试) 路径测试和数据流测试
结构测试(白盒测试) Structure Test
结构性测试的方法:路径测试、数据流测试
结构性测试力求提高测试覆盖率。
结构性测试主要用于软件验证:
are we creating a system correctly?
功能性测试是一种确认技术;
are we creating a correct system?
黑白盒测试的比较
黑盒:根据程序外部特征进行测试。 (按规格说明书设计测试用例)
白盒:根据程序内部逻辑结构进行测试
从完全不同,完全对立的的起点出发。
单元测试一般采用白盒测试。
集成或系统测试大都采用黑盒测试。
为什么需要白盒测试?
1、如果程序外部特性本身有问题或者规格说明书的规定有误,黑盒测试是发现不了的。
2、即使黑盒测试软件输入输出都是正确的,并不能说明软件就是正确的。
Three Part
路径测试、数据流测试、测试的效率
首先需要知道一个概念:程序图
程序图是一种有向图,图中的节点表示语句片段,边表示控制流(可以立即连续执行的两个节点)。
路径测试
一个概念:DD-路径图(决策到决策)
程序流图可以有多种,所有程序流图都可以简化为唯一的DD-路径图。
DD-路径定义:
即,DD-路径是程序图中的最小独立路径,它不能被包括在其他DD-路径之中。
注意,DD路径的节点是DD路径,因为上面五种情况的每一种都是一条DD-路径。
测试覆盖指标
评测方法:覆盖和质量
最常用的覆盖评测:基于需求的测试覆盖,基于代码的测试覆盖。
语句覆盖:所有语句(每一可执行语句至少执行一次)
分支覆盖:所有DD-路径(所有分支的整体判断的正误都cover)
条件覆盖:所有判断的每种分支(判断的每项的正误都cover)
多条件覆盖:每个判断表达式中条件的各种可能组合都至少出现一次,条件组合覆盖。
多条件覆盖并不能覆盖程序的每一条路径。
分支/条件覆盖:就是分支+条件覆盖。
路径测试:覆盖被测试对象中的所有可能路径。
数据流测试
DD-路径的依赖对偶??
循环测试:
单循环、嵌套循环、级联循环、不规则循环
这里的嵌套循环测试有个问题:
测试不是最内部循环某一层的时候,更里面的循环不也需要循环吗?其他循环次数为1是什么意思?
难道就是更内层循环进去一次就break吗,那很麻烦吗,要改很多代码,而且这种测试也不太合理。
还是说循环次数为1只是针对更外层循环的。
anyway,it is not a critical problem. but i doubt it.
一个概念:基路径
同向量空间中的 基向量。
基路径:程序图中相互独立的一组路径,使得该程序中的所有路径都可以用基路径表示。
圈复杂度:
计算程序的基本路径数目的一种度量。
基本路径:从起始点到终止点的路径,
而且包含一条其他基本路径不曾用到的边。或者至少引入一个新处理语句或者新判断。
对于循环而言,基本路径应包含不执行循环和执行一次循环的路径。
McCabe圈数:
V(G)=e-n+2p
e:边数,n:节点数,p:连接区域数。
连接区域数?? 不过好像一般取1.
我想起来了,大概是这个有向图 分成几块连通的区域。
不过这里连通上面有些trick,比如是单向就可以,还是必须双向(这好像涉及到强连通的问题,不想复习那个了)
总之,看到一个图,基本上连通区域数都是1
如何寻找McCabe路径?
BFS&DFS
基于路径的测试讨论
数据流测试
基于程序片的测试
这里要注意循环内部的语句,程序图后面的语句也可能有影响,不要漏掉了。
用于方法评估的指标:
结构测试(白盒测试) 路径测试和数据流测试相关推荐
- #9.白盒测试:数据流测试
数据流测试 1.数据流分析 从数据流视角:程序是一个程序元素对数据访问的过程: 数据流关系:数据的[定义--使用]对: 出发点:对数据的不正确处理: 使用程序图来描述数据[定义--使用]对. 数据流测 ...
- 白盒测试--数据流测试
文章目录 白盒测试--数据流测试 基础定义 最少测试用例数计算 白盒测试–数据流测试 基础定义 数据流测试主要用于优化代码,早期的数据流分析常常集中于定义/引用异常的缺陷. 变量被定义,但从来没有使用 ...
- 【软件测试】白盒测试の数据流测试
文章目录 数据流测试 数据流图 动态数据流测试 数据流测试 数据流测试方法根据程序中定义的位置和变量的使用来选择程序的测试路径. 数据流测试是一种强大的工具,用于检测由于编码错误而导致的数据值的不当使 ...
- 白盒测试有哪些方法_QA测试开发常考的面试题+答案汇总(持续更新)
最近很多朋友都在说今年的互联网行情不好,面试很难,不知道怎么复习,我最近总结了一份在测试开发面试中比较常见的面试题合集,希望对大家有帮助. 本文共 4800 字,预计阅读时间 13 分钟,建议点赞+收 ...
- 软件测试学习笔记(三)控制数据流测试
软件测试学习笔记(三)控制&数据流测试 视频链接:软件测试_中国大学MOOC 2.3 结构化覆盖 2.4 控制流测试 2.5 数据流测试 1.什么是顶点覆盖? 对每个测试需求,即可达顶点,都可 ...
- 软件质量保证常用测试方法---边界值测试,等价类测试,路径测试
本文内容整理自西安交通大学软件学院杜小智老师的mooc附件ppt mooc链接:软件质量保证_中国大学MOOC(慕课) 文章目录 测试方法 边界值分析技术 边界值选择的基本原则 边界值测试分类 边界值 ...
- 测试——白盒测试与黑盒测试
白盒测试 白盒测试又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的.&q ...
- 软件测试——2.5 数据流测试
数据流测试 关注点上的变量的操作是否正确 关于变量的操作: · 定义:赋值.初始化-- · 使用 def(n) def(e):节点n 边e上所有定义的变量 use(n) use(e ...
- 控制流测试 (语句覆盖、分支覆盖、判定覆盖、路径覆盖) 与条件测试
控制流测试 控制流测试 (Control Flow Testing):是一种在考虑测试对象的控制流情况下导出测试用例的测试方法,并且借助于控制流图能评估测试的完整性(覆盖率). 原则 控制流图是一个带 ...
最新文章
- 标准功能模块组件 -- 内部联络单组件,内部邮件组件,提高多人异地协同办公效率...
- boost::contract模块实现可选结果的测试程序
- 转自 David dai linux平台 oracle 数据库 安装文档
- 31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告
- P3723-[AH2017/HNOI2017]礼物【FFT】
- java 导入world数据_java读取world文件,把world文件中的内容,原样输出到页面上。...
- Active Diretory 全攻略(三)--建立域(5)
- php读取操作大文件
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句...
- bmp转YUV RGB转YUV HM学习
- C语言第12轮:指针
- 在Win7旗舰版安装并运行LoadRunner11
- eclipse安装选择清华镜像
- 4 读写文件_WEB安全之SQL注入(4)——读写文件
- 微星主板节能模式怎么关闭_技嘉小雕、微星迫击炮、华硕电竞特工三款主板对比...
- PHP8.0环境详细安装教程
- python 生成 exe
- 多少层楼听不见街边噪音_街边刮板
- 微信小程序头像上传(一)
- shell 语句出错自动退出
热门文章
- 【报告分享】2021三八节美妆行业营销报告-WEIQ(附下载)
- 【app测试】实战1:(华为真机)抖音自动化浏览
- 碳排放交易平台的建设方案分享
- 【POJ No. 2352】数星星 Stars
- 算法百花齐放:探索常见算法的精妙之道
- 计算机强制关机原理,电脑远程开机 ( 与开关按键作用一样可强制开关机 , 非网络唤醒(WOL) ) (ESP32 8266)...
- textmate常用快捷键备忘
- ElementUI分页功能
- 学习ZBrush到底需不需要用数位板?
- qt与python结合_pyqt5与matplotlib的完美结合实例