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


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


    在《软件测试中的『树莓酱定律』》一文中借用杰拉尔德·温伯格的『树莓酱定律』解释软件测试中的一些典型场景。其实,温伯格还有一个对应的『草莓酱定律』:

    “只要有果肉块,就不会抹得太薄。”

    把一点树莓酱抹到几片面包上,你会发现它越抹越薄。可要是你换成草莓酱再来试试,你会发现不管怎么抹,果肉块还在那里!草莓酱里面的果肉块是草莓。在你传达的“伟大信息”中,果肉块就是你自己!只要你的沟通渠道还实实在在地用到你的身体——说话、写作、拥抱,你的信息就不会被无限冲淡。

    本文聊聊上一篇文章提到的软件测试中的现象,如果用『草莓酱定律』解释会是怎样的。

    01 测试全流程介入:离不开全面的测试策略

    测试全流程介入不会导致测试工作的增加,用树莓酱定律解释是因为测试工作分摊到全流程的各个环节了。但是这里有一个重要的前提,需要将测试工作真正地分摊,确保每个环节做的测试工作都是有效的,并且对整个团队和整个流程都是可见的,也就是没有“果肉块”,这样才能有机组合起来实现软件整体的质量保障。

    如果存在“果肉块”,测试工作量是有可能增加的。“果肉块”是什么呢?比如下面的情境:

    • 测试对有哪些单元测试未知,在端到端测试的时候还需要所有场景,即使已经在单元测试测过的那些。

    破解这个情境中的“果肉块”,需要有全盘规划的测试策略,才能将测试工作实现有效分摊,而不会增加过多的重复工作。

    02 全员负责质量:信息透明和有效沟通是关键

    全员负责质量跟前的测试全程介入类似,只是这里变成了多角色的合作。类似地,这里的“果肉块”可能存在(不限)于以下情境中:

    • 测试对某个需求功能点有疑问,跟业务人员确认了之后没有告诉开发,结果开发出来的功能有出入,这也形成了“果肉块”,会导致返工等工作量的增加。

    因此,全员负责质量非常关键的是需要在协作过程中及时充分地沟通,将信息透明于整个团队所有角色,以防重复冗余工作的产生,减少“果肉块”,实现全员对质量职责的分担。

    03 回归测试:精准回归更高效

    回归测试是不提倡全量覆盖式回归的,而是要有重点的精准回归,需要在关键受影响的业务、功能方面重点回归,以提高回归测试的有效性和效率。

    因此,回归测试不要依据『树莓酱定律』将回归工作分摊到各个场景,而是应该依据『草莓酱定律』人为制造“果肉块”,重点对关键场景进行精准回归,让测试价值最大化。

    04 质量内建:每个环节缺一不可

    缺陷预防是质量内建的关键方向,需要在每个环节尽可能做到缺陷的预防,将质量内建到软件开发过程中。如果产生“果肉块”,缺陷预防的效果就会大打折扣。

    比如:

    • 在某个环节漏掉了相应的质量工作,就会在该环节埋下缺陷的种子,这就形成了缺陷“果肉块”,导致暴露出来的缺陷会增加,最终因需要修复的缺陷增加而增加开发和测试的整体工作量。

    小结

    『草莓酱定律』告诉我们在软件测试中,如果想要分摊得更薄,就要人为控制“果肉块”,趋向于『树莓酱定律』;如果需要有重点、要阻止分摊,那就要人为制作“果肉块”,以实现测试工作价值最大化。

    您有哪些『草莓酱定律』适用场景?欢迎跟我分享。

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

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

  • 相关阅读:
    Jenkins 安装以及初始化
    Maven依赖引入的优先机制
    CocosCreator-精灵动态加载图片资源,实例化精灵
    基于文化算法优化的神经网络预测研究(Matlab代码实现)
    内存取证——ABC包
    《程序员考公指南》:零基础到上岸的完整攻略 | 开源日报 No.82
    测开要做的开发工作到底是做什么
    基于复合粒子群优化的模糊神经预测控制的研究(Matlab代码实现)
    CSRF 漏洞学习笔记
    为什么IN操作符一般比OR操作符清单执行更快
  • 原文地址:https://blog.csdn.net/bingyulin/article/details/126836996
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号