精华内容
下载资源
问答
  • 数据流测试

    千次阅读 2020-05-03 09:57:28
    回顾:路径测试将程序代码看做是一种有向图,根据有向图的拓扑结构结合某些覆盖指标...数据流测试用作路径测试的“真实性检查,像是一种路径测试覆盖,但关心的是数据变量而不是程序结构,数据流测试中常用的一种方...

    回顾:路径测试将程序代码看做是一种有向图,根据有向图的拓扑结构结合某些覆盖指标来设计测试用例。然而程序中不同语句之间往往会有依赖关系,使得拓扑结构上可行的路径,在逻辑上并不可行,数据流测试可以解决上述问题。

    数据流测试指关注变量接收值的点和使用(或引用)这些值的点的结构性测试形式;数据流测试用作路径测试的“真实性检查,像是一种路径测试覆盖,但关心的是数据变量而不是程序结构,数据流测试中常用的一种方法是定义/使用测试。”

    定义节点:指变量v在节点n处被定义,即变量v在语句片段n处可能被修改。
    使用节点:指变量v在节点n处被使用,即变量v在语句片段n处保持不变。

    一条赋值语句可能既是某些变量的定义节点、又是其他变量的使用节点;

    一条赋值语句可能既是某变量的定义节点、又是它的使用节点;

    谓词使用是指变量v在节点n处被当作谓词使用,即语句片段n处将v用作谓词。
    计算使用指变量v在节点n处被当作除谓词外的使用,即语句片段n处将会使用v的值,但不会作为谓词使用。

    定义使用路径是指PATH§中的一条路径,该路径的起始和最终节点分别是变量v的定义节点和使用节点。
    定义清除路径是指PATH§中的一条路径,该路径的起始和最终节点分别是变量v的定义节点和使用节点,并且该路径中没有其他节点是v的定义节点。

    定义-使用路径和定义-清除路径描述了变量被定义到被使用的源代码的数据流。不是定义-清除路径的定义-使用路径是潜在有问题的地方,需要更加关注。

    测试覆盖指标
    1. 全定义准则
    2. 全使用准则
    3. 全谓词使用/部分计算使用准则
    4. 全计算使用/部分谓词使用准则
    5. 全定义-使用准则
    全使用与全定义-使用比较
    1. 覆盖的路径数量不同
    2. 对循环的处理不同
    展开全文
  • 白盒测试--数据流测试

    千次阅读 2019-06-11 11:43:05
    文章目录白盒测试--数据流测试基础定义最少测试用例数计算 白盒测试–数据流测试 基础定义 数据流测试主要用于优化代码,早期的数据流分析常常集中于定义/引用异常的缺陷。 变量被定义,但从来没有使用(未使用) ...

    白盒测试–数据流测试

    基础定义

    • 数据流测试主要用于优化代码,早期的数据流分析常常集中于定义/引用异常的缺陷。
      • 变量被定义,但从来没有使用(未使用)
      • 所使用的变量没有被定义(未定义)
      • 变量在使用之前被定义了两次(重复定义)
    • 数据流测试按照程序中的变量定义和使用的位置来选择程序的测试路径。
    • 数据流测试关注
      • 变量接收值的点和使用这些值的点。
    • 一种简单的数据流测试策略
      • 要求覆盖每个变量定义到变量使用路径一次。
    • 定义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图中除谓词之外的操作框的个数。
      • 举例
        在这里插入图片描述
    展开全文
  • 结构测试(白盒测试) Structure Test结构性测试的方法:路径测试、数据流测试结构性测试力求提高测试覆盖率。结构性测试主要用于软件验证: are we creating a system correctly?功能性测试是一种确认技术; are ...

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


    基于路径的测试讨论


    数据流测试







    基于程序片的测试


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


    用于方法评估的指标:




    展开全文
  • 软件测试——2.5 数据流测试

    千次阅读 2019-04-22 13:47:32
    数据流测试 ​ 关注点上的变量的操作是否正确 关于变量的操作: ​ · 定义:赋值、初始化…… ​ · 使用 ​ def(n) def(e):节点n 边e上所有定义的变量 ​ use(n) use(e):节点n 边e上所有使用的变量 定义引用对...

    数据流测试

    ​ 关注点上的变量的操作是否正确

    关于变量的操作:

    ​ · 定义:赋值、初始化……

    ​ · 使用

    ​ def(n) def(e):节点n 边e上所有定义的变量

    ​ use(n) use(e):节点n 边e上所有使用的变量

    定义引用对(DU pair):

    ​ 控制流(li,lj)构成的DU对是指,在li定义,在lj使用的变量

    定义清晰(Def-clear):

    ​ 从li到lj的路径上变量v是定义清晰的是指从li定到lj使用的中间,变量v没有被重新定义过

    数据流的可达:

    ​ 有一条定义清晰的路径,可以从li到lj

    定义引用路径(DU Path):

    ​ 定义清晰并且是简单的一个子路径

    ​ du(ni, nj, v):the set of du-paths from ni to nj

    ​ du(ni, v):the set of du-paths that start at ni

    3种数据流覆盖准则:

    1. 定义覆盖(All-defs coverage, ADC)

      ​ 关于某个变量v,它所有定义的地方都至少覆盖过一次

    2. 引用覆盖(All-uses coverage, AUC)

      ​ 关于某个变量v,所有引用的地方都至少覆盖一次

    3. 所有的定义引用路径覆盖(All-du-paths coverage, ADUPC)

      ​ 覆盖变量v的所有定义引用路径

    展开全文
  • 有关软件测试的几种测试的比较,包括数据流和控制流,
  • 基于结构测试的方案还有一种测试方法,就是数据流分析测试数据流分析测试是指变量 定义(赋值)与使用位置的 一种基于程序结构性的测试方法。该分析方法重点关注变量的定义与使用。在选定的一组代码中搜索某个变量...
  • 【软件测试】神马是数据流覆盖

    千次阅读 2014-04-05 01:14:34
    数据流覆盖就是可能的对数据的定义和使用的所有可能组合都要走一遍。 以上是按自己的理解写的,不一定准确,求各路大神zhizheng
  • 控制流和数据流

    万次阅读 2018-03-06 00:04:48
    数据流 数据流——描述程序运行过程中数据的流转方式及其行为状态 在MVC模型中,Model层的本质就是“数据”,数据在MVC的各个构成要素中流转并且在不同的层次扮演着不同的角色。当程序运行起来之后,我们会发现...
  • 数据流图——从软考真题中学画数据流图DFD

    千次阅读 多人点赞 2019-03-28 16:27:45
    每门课程都有3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。  2. 学生的平时成绩和考试成绩均由每门课程的主讲教师上传...
  • c++用标准输入输出流测试数据

    千次阅读 2017-04-17 09:45:33
    在测试很多数据时候往往要重新输入很多数据,如果用标准输入输出流测试数据往往会非常的方便。在这里写一个小的demo方便理解记忆。#include #include using namespace std; int main() { int a, b; freopen("in....
  • Java输入输出数据流

    千次阅读 2017-12-15 08:48:51
    目录(?...1 数据流2 输入流Input Stream 3 输出流数据流分类3 标准IO 命令行参数标准输入输出数据流4javaIO层次体系结构 5 非流式文件类–File类 6 JavaIO流类库 io流的四个基本类io流的具体分类
  • Nifi 数据流整合工具

    千次阅读 2018-01-05 09:52:18
    NIFI支持强大的可扩展的数据路由,转换和系统中介逻辑的有向图。...容错和保证交付低延迟以及高吞吐支持动态分区数据流可以在运行时修改背压设计 数据源 跟踪数据从头到尾 为扩展而设计 构建
  • 【C】C语言数据流及输入输出函数

    千次阅读 2015-05-08 09:08:01
    数据流有两种通用类型,文本流与二进制流,文本流由分成行的字符序列组成,二进制流是char类型的数据值序列。基于数据流的概念,C语言有丰富而有用途的输入输出函数,这些函数多在stdio.h、wchar.h中定义,数据类型...
  • 初窥Linux 之 数据流重定向

    万次阅读 多人点赞 2013-07-07 12:15:55
    一、什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。 简单来说,标准输出指的是命令执行所回传的正确...
  • JDK8 Stream 数据流效率分析

    万次阅读 多人点赞 2018-09-03 23:26:57
    JDK8 Stream 数据流效率分析   Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> 代表对象引用流,此外还有一系列特化流,如 IntStream...
  • 线性规划与网络24题 题目-测试数据-解题报告。读者应具备图论、最短路径、网络的基础知识,并掌握至少一种网络最大和最小费用最大的算法。
  • OBD 数据流

    千次阅读 2018-04-26 10:47:39
    读取详细OBD数据流见下面二。 三、数据读取(以ISO15765-4的CAN总线协议为例) 1、硬件接线 硬件上接线: CAN_H-----接OBD接口第6引脚 CAN_L-----接OBD接口第14引脚 电源正端---接OBD接口第16引脚...
  • Java实现 LeetCode 352 将数据流变为多个不相交区间

    万次阅读 多人点赞 2020-03-09 21:54:51
    352. 将数据流变为多个不相交区间 给定一个非负整数的数据流输入 a1,a2,…,an,…,将到目前为止看到的数字总结为不相交的区间列表。 例如,假设数据流中的整数为 1,3,7,2,6,…,每次的总结为: [1, 1] [1, ...
  • 数据测试和业务测试

    千次阅读 2018-07-26 11:05:05
    提高对业务逻辑和数据逻辑的熟悉程度。...数据测试 1、数据来源: 来源于哪张表、哪个字段,数据库中的数值与界面数据的对应 例如:数据库中性别存储的是0/1,页面展示的应该是男/女,页面展示是否正确...
  • kettle 数据流合并,新增方法

    万次阅读 2018-03-21 17:04:16
    里面这么配置这儿要注意,标致字段可以用默认,等会要用到2,添加过滤记录其中一定要配置上面的标准字段然后数据数据流就可以了这儿为什么要这么过滤呢,原因是我再debug时发现的合并标识这儿会将...
  • 数据驱动 相同的测试脚本使用不同的测试数据来执行,测试数据测试行为进行了完全的分离,这样的测试脚本设计模式叫做数据驱动。 实行数据驱动测试的步骤如下: (1)、编写测试脚本,脚本需要支持程序对象、...
  • 数据流图和数据字典的关系

    万次阅读 2007-05-09 20:57:00
    数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形...
  • BT.1120数据流解释

    万次阅读 2018-08-14 09:44:04
    现在来解释下BT.1120接口数据流,在本文最后一张图是数据流的整体图,前面是分部分介绍。   考虑到每一行都存在300mV的行同步信号,不管在活动图像或标准测试信号中都是冗余部分,所以没必要每次取样和量化,可仅...
  • 用JS解析file数据流的问题

    千次阅读 2016-08-11 10:43:46
    在调用采集接口的时候返回的图片数据是以数据流的方式返回的,然后我就各种查询怎么把数据流转化成本地文件或者是直接转化成可以让img.src直接赋值的对象,尝试了很多也问了下项目经理,都没有得到很好的解决办法,...
  • 从二进制数据流中构造GDAL可以读取的图像数据

    千次阅读 热门讨论 2014-10-18 11:18:34
    在很多时候,我们的图像数据往往都不是文件方式存储在磁盘上,而是可能从网络或者数据
  • Java中的高级I/O流-缓冲流、数据流以及对象流 前言:通过前面的学习,已经学完了Java中的基本流;Java中的流有字节流和字符流两大类,而每一种流都有对应的输入和输出流; 1、字节流 1.1字节输入流-主要是:...
  • react中store与数据流

    千次阅读 2019-05-31 22:55:19
    react中store与数据流 store 对于store在官网给的定义中,它是一个对象,包含了action与reducer等的一个组合。对于store,其有以下的职责: 1.保存当前的state 2.允许通过getState()去访问...
  • 代码转换成图 graph:通常是控制流图(CFG) 节点覆盖:执行每个语句 边覆盖:执行每个分支 ...数据流覆盖:增加CFG defs是为变量赋值的语句 uses是使用变量的语句 控制流图 if Statement Loops ...
  • 打开Spirent TestCenter Application测试软件,从菜单栏...Create Traffic打开创建数据流的向导模式。 首先是Port端口选择页面,选择想要在测试中使用的端口。至少要选择一个端口才能继续进行下一步的配置; 单击“...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 633,428
精华内容 253,371
关键字:

数据流测试