码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 软件测试中的树莓酱定律


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


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

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

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

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

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

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

    其实不然。

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

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

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

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

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

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

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

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

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

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

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

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

    缺陷预防

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

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

    小结

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

    敏捷测试宣言

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

    推荐阅读

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

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

  • 相关阅读:
    【深度学习】实验11 使用Keras预训练模型完成猫狗识别
    python 学习笔记(5)——SMTP 使用QQ邮箱发送邮件
    PostgreSQL修炼之道笔记之准备篇(一)
    React基础汇总
    微服务中「组件」集成
    爬虫之re数据清洗
    高性能网络SIG月度动态:virtio技术委员会通过flow director提案,netdim调节特性正式合入上游社区
    前端面试及答案:css 选择器有哪些?权重是什么样的?
    GeoPandas和Matplotlib地图高亮显示——与中国建交的国家(不全)
    JavaWeb基础学习(5)
  • 原文地址:https://blog.csdn.net/bingyulin/article/details/126459984
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号