zoukankan      html  css  js  c++  java
  • 《软件测试》课堂笔记04

    白盒测试:又称结构测试,它一般用来测试程序的内部结构(Control Flow , Data Flow)。并判定其  结果是否与预期的结果一致。

    百合测试的种类:静态分析测试(Static Analysis Test,Code Inspection)、语句分支覆盖测试  (Ctrl  Flow Test)等。

    一. 控制流测试:

    1. 基本概念:

    有向图与流程图:

    2. 控制流覆盖准则:

    (1) 语句覆盖准则:

      是最简单的结构性测试方法之一,它要求测试中,程序中的每条语句都得到运行。即,控制流图中的所有语句都被运行的充分必要条件是,覆盖图中的所有节点。
      测试数据集T称为语句覆盖充分的,当且仅当LT覆盖了GP中的所有节点。NODE(LT)为路径集合LT中所覆盖的GP中的节点的集合。 NG 是GP 中所有节点的集合。
      

    (2) 分支覆盖准则:  

      分支覆盖要求在软件测试中,每个分支都至少获得一次真/假取值的经历。
      测试数据集T称为分支覆盖充分的,当且仅当LT覆盖了GP中的所有有向边。EDGE(LT)为路径集合LT中所覆盖的GP中的有向边的集合, EG 是GP 中所有边的集合。
      

    (3) 谓词测试:

      一个分支的条件是由谓词组成。单个谓词称为原子谓词。

      例如前面的例子中的 a!=0、mid>0等。原子谓词通过逻辑运算符的连接构成复合谓词。

      1.原子谓词

      2.分支谓词

      3.复合谓词

    (4) 路径覆盖准则:

      测试数据集T称为路径覆盖充分的,当且仅当LT覆盖了GP中的所有完整路径。让EP(GP)为控制流图中的所有完整路径的集合。
      

    二. 数据流测试:

    1. 基本概念:

      变量的定义性出现:若一个变量在程序中的某处出现使数据与该变量相绑定,则称该出现是定义性出现。
    2. 数据流覆盖准则:
    (1)定义覆盖测试准则
      测试数据集T对测试程序P满足定义覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义性出现,若该定义性出现能够可行地传递到该变量的某一个引用性出现,那么LT中存在一条路径A,它包含一条子路径A’,使得A’将该定义出现传递到某一引用性出现。
    (2)引用覆盖测试准则
      测试数据集T对测试程序P满足引用覆盖准则,如果对具有数据流信息的控制流图GP中的每一个变量x的每一个定义n,以及该定义的每一个能够可行地传递到的引用n’,LT中都存在一条路径A,它包含一条子路径A’,使得A’将n传递到n’。
    (3)定义-引用覆盖测试准则
      定义-引用覆盖测试准则:测试数据集T对测试程序P满足定义-引用覆盖准则,如果对具有数据流信息的控制流图GP中的任意一条从定义传递到其引用的路径A,若A是无回路的或A是简单回路,那么LT中存在一条路径B,使得A是B的子路径。
    3. 程序插桩(VC里用于断言(ASSERTION)检测的程序插桩)
     
     
    三. 白盒测试工具:
      静态:

      1.代码审查     2.一致性检查

      3.错误检查     4.接口分析

      5.输入/输出规格说明分析检查  

      6.数据流分析    7.类型分析     

      8.单元分析     9.复杂度分析

      动态:

      1.功能确认与接口测试

      2.覆盖测试

    以上就是关于白盒测试的相关内容。在下一篇博客中将会给出一个在Win8环境下对商店应用的白盒测试,会向西的介绍如火如荼使用VS进行白盒测试。

  • 相关阅读:
    MySQL管理工具-SQLyog 9.63的使用详解
    通讯录管理系统
    Mavenx学习找对方法,快速上手!
    晚风花间寺中人
    PE重装系统,U盘重装系统,一步到位,重装无忧!
    进入博客园的第一篇随笔,贡献给我最喜欢的作家-大冰
    天地有情尽白发,人间无意了沧桑
    狼和羊的故事(安徒生新篇)
    .Net Core CLR GC的浅度分析
    .net core 的夸代扫描标记card_table的细节分析
  • 原文地址:https://www.cnblogs.com/HCS1995/p/4439983.html
Copyright © 2011-2022 走看看