专栏首页用户6517667的专栏用例设计方法及其覆盖率

用例设计方法及其覆盖率

来源:http://www.51testing.com

 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://wap.ztestin.com/site/register?usercode=FAAAQwMQGAAXAwQBA3QhExcDHAQDPjVaABMIQg%3D%3D

本文分享自微信公众号 - 软件测试培训(iTestTrain),作者:软件测试培训

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大型全球化电商的测试基础架构设计

      大型全球化电商网站全局测试基础架构的设计思路,可以总结为“测试服务化”。也就是说,测试过程中需要用的任何功能都通过服务的形式提供,每类服务完成一类特定功能,...

    小老鼠
  • 回归测试VS重新测试

    你不是唯一一个为区分回归测试和重新测试绞尽脑汁的人。它俩都是用于开发之后,很多人因为这两种软件测试类型之间有很多的相同点而陷入疑惑。然而在一些大的方面他们是不一...

    小老鼠
  • Robot Framework测试框架用例脚本设计方法

    Robot Framework是一个通用的关键字驱动自动化测试框架。测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储。通过测试库中实现的关键字...

    小老鼠
  • 移动测试避坑指南(第一篇):从流程到技术的知识概要

    京东技术
  • 测试框架原理,构建成功的基石

    使用良好的测试框架,可以提升测试的效率,使得测试覆盖率得到进一步的提升,但我们清晰的知道,开始是一个痛苦的过程,通过本文你可以得到测试框架的基本...

    苦叶子
  • 腾讯文档EP之路 —CI x 自动化测试

    ? 点击上方蓝字关注我们! | 导语  持续集成强调开发人员提交了新代码之后,立刻进行构建、测试。根据测试结果,确定新代码和原有代码能否正确地集成在一起。本文...

    腾讯移动品质中心TMQ
  • 敏捷交付中的自动化测试

    在提及自动化测试的时候,很多人会把工具的使用等同于自动化测试。自动化测试应该是一个策略性的系统化工程,不只有自动化工具。自动化测试要发挥其频繁快速的质量反馈作用...

    ThoughtWorks
  • YIYA语义测试方面总结探讨

    1 产品介绍 YIYA是一个语音助手,根据用户输入语音内容,进行对应的操作或返回对应的结果,比如询问天气,返回所在地的天气结果。目前使用在微桌面及TOS手表中。...

    腾讯移动品质中心TMQ
  • 聚焦测试,驱动卓越 | 洞见

    在经历了“七年之痒”后,蓝鲸项目进入第八个年头,项目的一切趋于稳定。团队倡导持续改进,这时大家的感觉是已经尽力做到最好,似乎没有什么可以改进的了。为了突破这个局...

    ThoughtWorks
  • 图形化开放式生信分析系统开发 - 8 软件稳定性测试

    前面文章讲述了更多的来自用户的需求分析,如何用技术方案解决用户需求、以及最终实现的效果,解决的是软件功能与特性的问题。

    SliverWorkspace

扫码关注云+社区

领取腾讯云代金券