本文首发于「BY林子」,转载请参考版权声明。


温伯格经典著作《咨询的奥秘》中提到「树莓酱定律」:

(将一定量的树莓酱抹在面包片上)铺得越广,摊得越薄。

意思是不管多伟大的信息,传播的越广,信息量就会越淡,即信息在传播的过程中不会增加,信息的总量是一定的。

这是一个看似非常简单的定律。本文不聊信息传播的问题,而是想借用该定律来聊聊软件质量与测试中可以用树莓酱定律解释的常见场景。

01 测试全流程介入:测试本来就忙,这就更忙不过来了?

提倡全生命周期的测试活动的开展,其中就要求测试人员在全生命周期各个环节有更多的介入,这对于传统独立测试阶段忙得不可开交的测试人员来说,是难以接受和理解的一件事情,觉得那样会更忙不过来。

其实不然。

根据树莓酱定律,在测试工作量一定的情况下,全生命周期开展测试,是将测试工作分散到各个阶段,每个阶段的工作量会有所减轻。而且我们知道越早开展的测试工作,能够做到更快速地反馈,其有效性越高,价值越大。

因此,测试全流程介入,不会增加测试的工作量,只是将测试工作的开展时间进行重新安排。

另外值得提醒的是,全生命周期的测试不仅是测试人员全流程介入,也需要团队不同角色全流程介入,实现测试活动的全流程开展。

02 全员负责质量:质量是团队的职责,而不仅是测试人员的事情。

一个软件产品的质量保障工作可以认为是一定的,根据树莓酱定律,团队全员对质量负责,将全生命周期的测试工作进行分担,每个角色所要做的质量相关的工作就不会太多。

质量需要全员负责还有一个很重要的原因就是不同角色各有所长,而质量并不是简单通过测试来保障的,正是需要每个角色发挥各自的优势来协作实现,做自己擅长的事情也会使得工作效率进一步提高,即投入产出比更高,同样可以实现降本增效。

03 回归测试:追求全量回归还是精准回归?

根据树莓酱定律,在测试资源一定的前提下,测试的范围越广,测试的深度越浅。在时间和人力一定的情况下,追求全量回归会导致所有场景都测得有限,而精准回归会深度覆盖重点需要关注的场景,测试效果必然会更好。

类似地,对于自动化测试覆盖率和测试有效性也是一样的。如果一味追求测试覆盖率,必然会丧失一些测试的有效性。显然,有效的自动化测试比宽泛覆盖但效果不好的自动化测试更有价值。

这其实就是追求质量还是数量的问题。

04 质量内建:缺陷预防 over 缺陷集中暴露。

质量内建的意思是要把软件质量构建到开发过程中,实现尽早对缺陷的预防。在我之前的文章中用下面这个图解释过缺陷预防:

树莓酱定律同样可以解释:我们认为一个软件系统的所有可能出现的缺陷数量是一定的,在开发过程多个环节进行预防,就必然使得在测试或者生产环境用户使用过程中暴露的缺陷数量减少,也就是预防的缺陷越多,集中暴露的缺陷就会越少。

同时,根据缺陷修复成本和缺陷发现阶段关系曲线图,越早发现的缺陷修复成本越低。因此,需要尽早对缺陷进行预防,做的质量内建。

小结

前面提到的四个场景,正好对应到敏捷测试宣言里的四条价值观:

由简单的树莓酱定律你还想到了哪些测试相关场景?欢迎一起交流。

推荐阅读

  • 敏捷测试宣言与原则解读
  • 敏捷测试的核心
  • 业务价值驱动的测试
  • 敏捷测试如何优化业务价值
  • 敏捷测试的指导性原则
  • 说好的团队为质量负责呢?
  • 团队对质量负责,“我”可以不负责?
  • 精益测试
  • 测试右移——生产环境下的QA
  • 测试右移:QA与Ops通力合作打造反脆弱的软件系统
  • 测试右移之日志收集与监控
  • 测试右移:缺陷分析如何帮助质量内建

本文首发于「BY林子」,转载请参考版权声明。

软件测试中的树莓酱定律相关推荐

  1. 软件测试中7个看透不说透的真理

    希望这篇文章会对大家有所启示. 软件测试中7个看透不说透的真理 真相1:测试并不能找出所有的bug 真相2:测试覆盖率与测试的效果几乎没有相关性 真相3:测试工作量呈指数增加 真相4:开发者偏差 真相 ...

  2. 软件测试中排错的基本方法

    软件测试中,排错(即调试)与成功的测试形影相随.测试成功的标志是发现了错误.根据错误迹象确定错误的原因和准确位置,并加以改正的主要依靠排错技术. 1.排错过程 如下图所示,排错过程开始于一个测试用例的 ...

  3. 阿里研究员:软件测试中的18个难题

    简介:对于软件测试来说,怎么样才算测够了?如何评价测试的有效性?那么多测试用例,以后怎么删?在软件测试中会遇到非常多的问题,阿里研究员郑子颖分享了18个他总结出的难题以及相关看法,希望对同学们有所启发 ...

  4. 软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别

    转:软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别 举个例子吧     if   A   and   B   then   Action1     if   C   or   D   then ...

  5. 无法定位程序输入点 except_软件测试中的功能测试点(三)

    testkuaibao|软件测试自学公众号 26.输入法半角全角检查 再输入信息中,输入一个或连串空格,查看系统如何处理,如对于要求输入符点型数据的项中,输入全角的小数点("."或 ...

  6. 软件测试除了边界值还有什么,在软件测试中,假定 X 为整数,10≤X≤100,用边界值分析法,那么 X 在测试 中应该取( )边界值...

    北方猎人(cnitpm.com) 10:58:42 在软件测试中,假定 X 为整数,10≤X≤100,用边界值分析法,那么 X 在测试 中应该取( )边界值. A.X=9,X=10,X=100,X=1 ...

  7. 心理软件测试自学,软件测试中的心理学

    能做一名软件测试人员不容易,要做一个名合格的软件测试人员更是不容易,因为软件测试人员要运用的知识很广,当然心理学也不例外. 测试执行得差,其中一个主要的原因在于大多数的程序员一开始就把这个术语的定义搞 ...

  8. 什么是软件测试中的黑天鹅

    1,黑天鹅以及软件测试中的黑天鹅 在发现澳大利亚的黑天鹅之前,欧洲人认为天鹅都是白色的.所以说"黑天鹅"代表了一个小概率事件,它罕有发生,但一旦出现,就具有很大的影响力." ...

  9. 软件测试mysql存储过程的用处实例_软件测试中实际应用:MySQL5存储过程编写

    软件测试中实际应用:MySQL5存储过程编写 MySql5.0以后均支持存储过程,最近有空,研究了一把这个. 格式: CREATE PROCEDURE 过程名 ([过程参数[,...]]) [特性 . ...

最新文章

  1. [转]【Git】rebase 用法小结
  2. linux qt 5移植,Qt 5.13支持处理Lottie文件,可以方便地进行移植
  3. IO流文件的相对路径及获取系统路径方法
  4. c语言抓取机器硬件阐述,c语言如何控制硬件
  5. java_函数的重载
  6. 同步方法 调用异步防范_Spring一个注解实现方法的异步调用,再也不用单开线程了...
  7. 用java做一个截图工具_Java制作屏幕截图软件(还可以保存到剪切板内)
  8. seclists各种字典工具
  9. Keil uVision4 for ARM 下增加支持C51,C5x
  10. asp代理商源代码_广告代理商的源代码是什么样的?
  11. android获取进程名,android – 按包名查找正在运行的进程ID
  12. 计算机桌面无法新建文件夹,Win7桌面不能新建文件夹和修改文件名怎么办?
  13. STM32串口通信发送Hello Windows!
  14. python学英语库_交流学英语的经验-js焦点图怎么写-WinFrom控件库|.net开源控件库|HZHControls官网...
  15. 单模连接器损耗与影响因素
  16. 结对项目——可循环的最大子数组
  17. 量化研究 | CTA择时出场策略指南大全
  18. 会声会影2022视频编辑软件专业版
  19. FoxyProxy插件在浏览器的配置
  20. 值得收藏!国外最佳互联网安全博客TOP 30

热门文章

  1. Friborg NG8280 粉红噪声发生器测试方法
  2. 字符串显示(第三方触摸屏)
  3. 360驱动大师v2.0官方版
  4. 使用pdfFactory为PDF文件设定查看选项
  5. 阿里云服务器配置(四)
  6. 蓝桥杯 神犇一生 C语言
  7. 树莓派+blinker物联网平台+阿里云服务器实现app远程摄像头监控
  8. 使用Python爬取安居客二手房房价数据
  9. 袪除疾病的心法(七)
  10. ad域控服务器如何允许软件安装,AD域服务器实现软件安装部署