用例设计方法及其覆盖率

---《软件测试:一个软件工艺师的方法》读书笔记

2018-01-27

1 基本概念

  • 错误(error):同义词过失(mistake),编程时的错误成为bug。
  • 故障(fault):故障是错误的后果。可分为过失故障和遗漏故障。
    在表象中添加了不正确的信息,是过失故障。未输入正确信息,是遗漏故障。遗漏故障更难发现。
  • 失效(failure):代码执行时发生故障导致失效。失效只和过失故障有关。
  • 事故(incident):是与失效相关联的症状。

绿色圈表明测试用例覆盖到的范围:

  • 区域1:是重合部分,即使期望行为,也是实现的行为
  • 区域7:是无效用例

2 黑盒测试vs白盒测试

2.1 基于规格说明的测试

基于规格说明的测试最初叫做功能测试的原因是:任何程序可视为将其输入定义域中的值映射到期输出值域的函数。工程领域普遍采用这种思想,因为工程系统被当做黑盒子来研究,这样就产生了一个词--黑盒测试。

基于规格说明测试的测试用例的优点:

  • 测试用例与具体实现方法无关,所以即使实现方法改变,测试用例仍然有效
  • 测试用例的开发可以同软件的实现并行开展,这样可以缩短整个项目的开发周期

缺点:

  • 测试用例之间会存在严重的冗余
  • 还可能有测不到的地方

如上图所示,基于规格说明用不5通方法生成的用例集1和用例集2,只能覆盖到规格说明所规定的行为,测不到部分程序的实现行为(程序实现了未规定的行为,如木马病毒)

2.2 基于代码的测试

优点:

  • 通过路径覆盖指标,解决功能测试漏洞与冗余的问题

缺点:

  • 不能测到规定行为未实现的区域,遗漏故障

3 黑盒测试设计方法[1]

3.1 边界值测试

  • 边界值分析
  • 健壮性分析
  • 最坏情况分析
  • 健壮最坏情况分析

边界值分析局限性

边界值分析法非常适用于多个变量相互独立又都代表实际物理量的情况。

  • 变量相互独立,如:NextDate函数中并没有针对2月和闰年的测试,实际上month、day和year这几个变量之间存在特殊的依赖关系。边界值分析假定各个变量之间应该是完全独立的。
  • 变量的物理指标同样重要。如果某个变量代表具体的物理量,比如温度、压力、速度等,这个量的物理边界就非常重要。

边界值测试的原则

适用于函数(程序)的

  • 输入域
  • 输出域,特别是错误消息的输出
  • 内部变量,如,分支、循环控制变量、下标、指针。

3.2 等价类测试

  • 弱一般等价类
  • 强一般等价类
  • 弱健壮等价类
  • 强健壮等价类

等价类测试的原则

  • 可以和边界类结合使用
  • 强类型程序设计语言无需健壮测试(强类型的无效值会抛出RuntimeException)
  • 若错误条件特别重要,适合采用健壮性测试

3.3 决策表测试

基于决策表测试是所有功能测试方法中最严格的,因为决策表能强化逻辑严密性。

决策表由左侧一列的条件桩和动作桩和右侧的条件项和动作项组成

决策表使用技巧

使用决策表构造测试用例,可以把条件看作程序输入,把动作看做程序输出。有时条件也可解释为输入的等价类,动作对应和程序的功能处理部分。

决策表测试的原则

决策表测试可用于变量之间存在重要的逻辑关系

4 白盒测试[2]

4.1 路径测试

程序图

程序图是一种有向图,图中的节点表示语句片段,边表示控制流

DD路径

DD路径(decision-to-decision path):是指从判断到判断的路径。DD路径这个名称指一个语句序列,用Miller的话说,是从一条判断语句的“出口”开始,到下一个判断语句的“入口”结束。

DD路径图,是一个有向图,其中节点表示其程序图的DD路径,变表示后续DD路径的控制流。

基路径测试

基:是数学上的定义。基是元素(称为向量)的一个集合,且这些元素相互独立,同时定义向量的乘法和加法运算等规则,通过运算后得到的空间,叫向量空间。

通过定义,我们可以得知:

  • 该向量空间中的,所有向量可以通过基向量来表示。
  • 一个向量空间,可以有多个不同的基。

基对于测试的意义在于:如果可以把程序看成一种向量空间,则这个空间的基就是需要测试的元素集合。如果基没有问题,则可认为基所表示的一切都没有问题。

基路径的可行性

对于基于规格说明的测试,输入数据域的依赖关系会给边界值测试造成困难,我们通过基于决策表的功能测试,解决了这个问题。

对于代码级的依赖关系,这种依赖关系对独立基路径隐含的假设相冲突(数学中的基中的向量是互相独立的)。

上图是通过三条判断是否是三角形的DD图,我们发现路径经过C,必须经过H;发现路径经过D,必须经过G。

那么基路径p1:A-B-C-E-F-G-O是不可行的

如果要求基路径必须是可行的,则逻辑依赖关系会压缩基路径集合。

4.2 数据流测试

数据流测试和数据流图并无任何关系。

数据流测试考察变量的接收值(点)和使用(或引用)值(点)的路径。

转载于:https://www.cnblogs.com/Ming8006/p/8358815.html

用例设计方法及其覆盖率相关推荐

  1. 编写有效用例电子版_剖析用例设计方法的使用

    今天给大家讲解的是用例设计方法的使用,在设计用例时该如何应用用例设计方法.设计出覆盖率高的测试用例呢? 场景 简介:普遍登录页面测试用例设计 分析 拿到需求,首先要做需求分析.我们看到登录界面有三个测 ...

  2. 软件测试--黑盒测试用例、测试步骤设计方法(正交实验法、功能图法、其他用例设计方法)

    黑盒测试用例设计(三) 正交实验法 正交表:一种特制的表,一般的正交表记为Ln(mk) m代表水平数,k代表因素数,n是需要进行实验的个数.这三个数没有任何数学关系. 仅适用于每个因素的水平数都相同的 ...

  3. 软件测试方法——黑盒测试九大用例设计方法

    笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章转载需注明,如果喜欢请点赞+关注,感谢支持! 导读:面试和工作必备的九大黑盒软件测试方法. 目 ...

  4. 黑盒测试用例设计方法三(正交实验法、功能图法、用例设计方法综合选择)

    测试步骤 一.正交实验法 1.1正交实验法介绍 1.2正交实验法实现步骤 1.3实际案例 二.功能图法 2.1功能图法原理介绍 2.2功能图法实现步骤 2.3实践案例 三.其他用例设计方法 3.1测试 ...

  5. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...

  6. 软件测试 | 等价类用例设计方法及演示

    常见的用例设计方法包括:等价类.边界值.因果图.判定表.状态迁移.场景分析法.正交实验法.下面是等价类用例设计方法. 1为什么需要使用等价类方法 如果我们输入的数据是一个很大范围数据时,我们测试时会出 ...

  7. 软件测试流程及主要用例设计方法

    软件测试流程及主要用例设计方法 测试新手人门,首先要掌握测试的流程和实际运作项目流程和基础的用例设计方法. 掌握测试和项目流程是了解研发过程中测试的主要工作:掌握最主要的用例设计方法就是掌握测试岗位最 ...

  8. 白盒测试的用例设计方法

    文章目录 1. 白盒测试方法的概念及应用场景 2. 白盒测试方法有哪些 3.使用6种逻辑覆盖法来设计白盒测试用例 3.1. 语句覆盖 3.2. 判定覆盖 3.3. 条件覆盖 3.4. 判定条件覆盖法 ...

  9. 黑盒测试概念简述,黑盒测试优缺点、黑盒用例设计方法简单介绍及黑盒测试方法使用总结

    黑色测试 黑盒测试概念: 黑盒的优缺点介绍: 黑盒测试用例设计方法简单介绍: 黑盒测试方法使用总结: 黑盒测试概念: 又称功能测试或数据驱动测试,是用来检测每个功能是否正常使用.黑盒测试主要意味着测试 ...

最新文章

  1. Loadrunner压测时,出现的问题汇总
  2. es java match_ES multi_match 和match查询
  3. 第2章 Python 数字图像处理(DIP) --数字图像基础1 - 视觉感知要素 - 亮度适应与辨别
  4. 怎么计算信息完整度_德阳冻货运镖怎么计算费用
  5. 刷排名优优软件_QQ群拉人了,排名后置了?申诉案例
  6. 仿芒果TV微信小程序
  7. 搭建Cacti监控系统(三)-- 监控Linux 主机
  8. iOS 数据解析之使用TFHpple解析html
  9. 条件语句和循环语句_总结一下条件语句和循环语句
  10. golang解决TCP粘包问题
  11. 一个机器人位于一个 m x n 网格的左上角,机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路?
  12. 最新发布!2018年区块链数字货币项目最赚钱方法排行榜
  13. 2019UNCTF-竞技赛 部分WP
  14. 使用UltraEdit删除重复的行
  15. [04]Web前端进阶—JS伪数组
  16. 一些Mac OS X技巧
  17. 人体捕捉:《SMPL-X》
  18. StringWriter介绍
  19. 使用Android Studio开发一个简易的音乐播放器
  20. 微信小程序滑动scroll-view

热门文章

  1. Sweeter Than Fiction - Taylor Swift
  2. 1,Composite UI Application Block (CAB) 介绍
  3. 博客堂也遇DotText经典Exception
  4. java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...
  5. 兵团教师计算机水平考试免考条件,兵团职称计算机考试政策.doc
  6. 16项不可抗拒的云创新
  7. 了解下RDF 都柏林核心元数据
  8. C++数据结构链表的基本操作
  9. C 关于使用异或运算操作概述
  10. mysql 释放错误连接_JSP连接MySQL后数据库链接释放的错误