结构测试(白盒测试)  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

基于路径的测试讨论

数据流测试

基于程序片的测试

这里要注意循环内部的语句,程序图后面的语句也可能有影响,不要漏掉了。

用于方法评估的指标:

结构测试(白盒测试) 路径测试和数据流测试相关推荐

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

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

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

    文章目录 白盒测试--数据流测试 基础定义 最少测试用例数计算 白盒测试–数据流测试 基础定义 数据流测试主要用于优化代码,早期的数据流分析常常集中于定义/引用异常的缺陷. 变量被定义,但从来没有使用 ...

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

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

  4. 白盒测试有哪些方法_QA测试开发常考的面试题+答案汇总(持续更新)

    最近很多朋友都在说今年的互联网行情不好,面试很难,不知道怎么复习,我最近总结了一份在测试开发面试中比较常见的面试题合集,希望对大家有帮助. 本文共 4800 字,预计阅读时间 13 分钟,建议点赞+收 ...

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

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

  6. 软件质量保证常用测试方法---边界值测试,等价类测试,路径测试

    本文内容整理自西安交通大学软件学院杜小智老师的mooc附件ppt mooc链接:软件质量保证_中国大学MOOC(慕课) 文章目录 测试方法 边界值分析技术 边界值选择的基本原则 边界值测试分类 边界值 ...

  7. 测试——白盒测试与黑盒测试

    白盒测试 白盒测试又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的.&q ...

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

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

  9. 控制流测试 (语句覆盖、分支覆盖、判定覆盖、路径覆盖) 与条件测试

    控制流测试 控制流测试 (Control Flow Testing):是一种在考虑测试对象的控制流情况下导出测试用例的测试方法,并且借助于控制流图能评估测试的完整性(覆盖率). 原则 控制流图是一个带 ...

最新文章

  1. Fiddler抓取手机(app)https包
  2. java学习(108):StringBuilder连接字符串和删除操作
  3. 厂商 push 不通排查指南
  4. centos开机自动挂载磁盘_CentOS 6.5开机自动挂载硬盘
  5. springboot如何使用外部tomcat容器
  6. 省钱兄淘宝客APP源码商城抖客电商源码uniapp前端模版源码
  7. java版本的在线OJ项目
  8. 浅谈Java中的单例模式及四种懒汉模式
  9. STC51单片机中断介绍
  10. mlir toy 教程(1)
  11. python爬虫爬取音乐_利用python爬虫实现爬取网易云音乐热歌榜
  12. postman导出,断言,批量执行
  13. 1080驱动此图形驱动程序_如何更新图形驱动程序以获得最佳游戏性能
  14. opencv图像仿射变换,cv2.warpAffine
  15. 图像分割之常用损失函数-Dice Loss
  16. 湘大校内好项目,现诚寻可靠的创业合伙人
  17. Windows10 WSL2 安装 Ubuntu20.04LTS
  18. 酷狗软件测试自学,酷狗音乐检测网络的简单教程
  19. 计算机单招模拟试题,高职单招计算机模拟试卷模拟试题
  20. php将字母大写转小写,php中字母大小写转换函数_PHP教程 - strtolower

热门文章

  1. 在腾讯会议中如何让别人看不到演讲者视图,只有自己能看到?
  2. 计算机不支持win10 1809更新,win10更新版本1809后,完全关闭系统自动更新方法,亲测可行...
  3. js入门·动态的时钟,显示完整的一些方法,新年倒计时
  4. MUSBMHDRC USB 2.0 编程指南解读4
  5. android手机联系人怎么备份软件,安卓手机怎么导入手机通讯录(转移通讯录的3种方法)...
  6. 汉字转拼音软件 1.3 中文免费版|给汉字自动加汉语拼音的软件
  7. 计算机学的数学知识竞赛题及答案,数学知识竞赛题
  8. SVM学习:松弛变量与惩罚因子
  9. 【点云处理技术之PCL】PCL中的基本数据类型——PointCloud与PointT
  10. 人工神经网络的拓扑结构,三层神经网络结构图