《微软的软件测试之道》读书笔记 之 结构测试技术

2014-07-18

我们需要结构测试吗?

微软的一项试验说明了结构测试的在代码覆盖中起到的效果:

超过3000名测试员参与了这项实验,每25人一组,实验结果在所有组中都是一致的。在这项研究中,

  • 脚本化测试:根据样式书设计的脚本化测试在被测程序上达到了标称83%的代码覆盖率。
  • 探索性测试:然后,实验参与者允许进行每人15分钟,累计5小时的探索性测试。令人惊讶的是,代码覆盖率平均只增加了3个百分点。
  • 结构测试:但是,当实验参与者能够分析探测过的(Instrumented)代码的运行结果并使用白盒技术设计测试以后,不到20分钟的时间代码覆盖率就提高到了 91%(这是不使用代码突变或故障注入所能达到的最大实际代码覆盖率)。同时,测试员们也能够更好的从代价和收益的角度解释为什么剩下的9%未覆盖代码是不可测试的。

下图显示了不同测试技术的代码覆盖效果。

图1 不同测试技术的代码覆盖效果

块测试


此书把块测试、决策测试、条件测试、基础路径测试都归入结构测试技术。这里主要讲一下块测试。

块覆盖和语句覆盖

  • 语句覆盖测量一个程序在测试过程中被执行过的语句的数量。
  • 块覆盖测量无分支的连续语句组的数量。导致控制流程转向分支的条件语句可以包含若干块。

这个看起来似乎只是一个极小的区别,然而,语句测试和块测试的区分是相当重要的。因为相较于语句测试,块测试对控制流程提供了更好的敏感度。

?代码块的计算

块测试小结

块测试是用于单元测试的一种普遍方法:

优势:它非常适合于迅速地评估某函数的基本功能。对于设计用于执行switch/case语句和异常处理程序控制流程的测试来说,它也是一个很有价值的技术。

劣势:然而,块测试是健壮的结构测试中相对较弱的标准,它还可能漏掉控制流程的一些重要的分支。此外,块测试还容易忽略一些潜在的问题,特别是在我们测试的目的只是要提高代码覆盖率而不是要仔细分析被测试代码的情况下。

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

《微软的软件测试之道》读书笔记 之 结构测试技术相关推荐

  1. 《微软的软件测试之道》读书笔记

    <微软的软件测试之道>读书笔记 第一部分  关于微软     第1章  微软的软件工程         偏重于产品独立发布的模式通常称为PUM(Product Unit Manager)即 ...

  2. 学习笔记——微软的软件测试之道

    一  关于微软 测试工程师的能力:有坚实的工程技术基础的人,他们有和初级软件开发工程师一样的编程能力,并具备一个优秀测试人员所需的其他属性,成为被测产品领域的专家. 测试管理者的能力:测试经理较少亲自 ...

  3. 谷歌测试之道—读书笔记

    谷歌软件测试之道 "Google 的 SWE 就是功能开发人员,负责客户使用的功能模块开发.他们编写功能代码及这些功能的单元测试代码. Google的SET就是测试开发人员,部分职责是在单元 ...

  4. 微软的软件测试工程师——《微软的软件测试之道》

    在这个世界顶级的企业里,软件测试工程是的测试是怎样的. ------------------------------------------------------------------------ ...

  5. 支点软件测试工资,微软的软件测试之道(10)

    非功能测试 非功能的测试领域包括了性能.负载.安全.可靠性和其他很多方面.非功能测试有时也被称作行为测试或质量测试.非功能测试的众多属性的一个普遍特征是一般不能直接测量.这些属性是被间接地测量,例如用 ...

  6. 《微软的软件测试之道》(How We Test Software at Microsoft)

    好早就下了英文电子版,一直没有看,如今中文版已经出来并且已经可以买到了,准备入手一本. 转载于:https://www.cnblogs.com/coderzh/archive/2009/10/02/1 ...

  7. 读《Google软件测试之道》笔记---SWE,SET,TE职责

    1.SWE的主要职责 编写设计文档 数据结构选择 架构选择 代码实现和审查 参与测试,单元测试,驱动测试,其他测试 2.SET的主要职责 参与测试评审 通用测试框架(单元测试框架,自动化测试框架) 可 ...

  8. 《Google软件测试之道》目录—导读

    内容提要 Google软件测试之道 每天,Google都要测试和发布数百万个源文件.亿万行的代码.数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行.面对这些看似不可能完成的 ...

  9. 《Google软件测试之道》读书笔记

    Google软件测试之道 像google一样进行软件测试 软件测试介绍 少则清晰,测试人员的稀缺导致测试资源很昂贵.(不要招聘太多的测试人员) 质量不等于测试 开发对质量负责(预防行为,不是检测) 卫 ...

最新文章

  1. 安装 Ruby 和 Rails 开发环境
  2. GoLand 2019.1 发布 RC 候选版
  3. linux查看无线网卡频率,查看无线网卡工作模式
  4. Console.js:彩蛋和作弊码
  5. vba 不等于_EXCEL中VBA基础语句(1)
  6. go int 转切片_「快学 Go 语言」第 4 课——低调的数组
  7. “ORA-01034 - Oracle not available”和“ORA-27101 - shared memory realm does not exist”
  8. python快速编程入门课本中的名片管理器_python优雅操作-实现名片管理系统
  9. java后台保存base64图片数据
  10. C#继承(初始化基类,重写,重载)
  11. 安装photoshop2022mac遇到安装失败错误代码182解决方法
  12. [09]表单元素(下)
  13. ArcGIS10从入门到精通系列实验视频教程合集(持续更新)
  14. INVEST模型生境质量评价之威胁源数据处理
  15. 为了让智能手机厂商早日推出 5G 手机,高通真是操碎了心
  16. 怎么识别伪装IP的网络攻击
  17. 批量删除QQ空间说说和日志的js脚本
  18. 舞象云出席泰华商城智慧营销系统上线发布会,问道传统百货新未来
  19. 知识点滴 - 项目阶段的定义
  20. VSTO 部署安装的两种方法

热门文章

  1. C/C++面试题—序列化二叉树
  2. 智能指针:-和*运算符重载 + 模板技术 实现智能指针(C++)
  3. python中的参数
  4. 【转发活动】Hey, 是你吗? | 寻粉启示
  5. 一次SSIS Package的调试经历
  6. 优雅的避免空指针的示例
  7. hibernate 封装 2008-11-12 17:21 (分类:默认分类)
  8. 对虚拟目录的操作(转)
  9. 近日的思绪(外三首)
  10. 他用科技复活传统艺术:发现甲骨文的终极浪漫