• 13
  • 14
分享
  • 漫谈测试:从三大哲学定律看测试人生——软件测试圈
  • 曼倩诙谐 2021-08-27 10:11:24 字数 1444 阅读 2022 收藏 14

  谈及人生,我们可能听过不少具有哲理性且非常受用的定律,那么谈及测试,又有哪些值得我们思考的定律呢?

  墨菲定律

  墨菲定律的原话是这样的:Anything that can go wrong will go wrong。

  凡事只要有可能出错,那就一定会出错。在测试工作中,我们经常会遇到这样的场景。

  场景一

  在需求评审阶段,我们凭借着以往项目的测试经验预感到这个项目的某些功能点或者某些环节会有潜在问题。

  如果这个时候我们没有及时思考和评估并暴露出风险,等到开发人员完成项目编码并提交测试时,我们会发现,之前预感到可能发生的bug果然出现了。

  场景二

  在临近项目发布上线,项目依然还有严重等级比较高的bug需要修复,在开发人员的不懈努力下终于修复好了一个bug让我们去验证。

  如果我们只是验证这个bug并不展开验证的话,开发人员与测试人员的“互相伤害”也就到此为止了,但是,出于职业意识,我们还是会去验证下该bug关联且有被影响风险的模块,结果就是,我们又发现新的bug。

  关于墨菲定律,以上两个场景并不一定是完成成立的,但是在大多工作中,墨菲定律在测试工作得到了印证:当我们凭借经验预感到相关的风险时,如果我们没有及早暴露风险和问题,这些问题最后还是会发生。

  二八定律

  二八定律在软件测试领域是这样描述的:80% of all bugs can be found in 20% of program modules。

  80%的问题可以在20%的模块中发现,换句话来说,软件系统中的问题存在群集现象,大部分的问题会集中在少数的模块上。

  在软件项目开展过程中,如果我们没有对需求和研发方案进行必要且充分的评审,在测试过程中,我们就会发现并记录更多数量的缺陷。

  开发类bug的统计结果如图2-1所示,软件项目中的bug确实存在群集现象,在少数模块或者功能上,集中了大部分的缺陷,而这部分模块,通常情况下就是软件系统或者是本次迭代中比较核心的功能模块。

1-1.png

图2-1 二八定律

  木桶定律

  木桶定律阐述了这样一个道理:A bucket's capacity is determined by its shortest stave。

  一只水桶能装多少水取决于它最短的那块模板。如图3-1所示,软件系统的质量正如这个水桶的容量,其质量不是只取决于测试环节,而是同时取决于测试节点之前以及测试节点之后的所有环节。

  如果任何一个环节的质量把控不好,整个软件系统的质量也会受之影响。

  所以为了及早捕获系统缺陷,我们就要在更早的环节提前介入,尽可能地预防潜在的问题发生,将测试工作从测试环节向左移动。

  为了保障系统发布后在线上正确稳定运行,我们需要持续跟踪线上系统的运行情况。

1-2.png

图3-1 木桶定律

  本文分享的三大定律可能存在一定的片面性,但是想分享的思想是明确的:提高风险控制和质量保障意识,及早地发现和推动问题的解决。

  其中:

  ·墨菲定律告诉我们要有风险意识和风险控制能力。

  ·二八定律告诉我们要识别工作中的主要内容和次要内容,预防软件系统中最核心且高风险的部分。

  ·木桶定律告诉我们软件系统的质量不仅取决用软件生命周期的某一个环节的质量,而是依赖软件生命周期中的每个环节,正如一只水桶能装多少水取决于它最短的那块模板,软件系统的质量也取决于那个质量最差的环节。

  最后,欢迎大家对文章纠错指点,感谢。



作者:Frice   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、我们经常遇到的问题  在我们的测试日常中,不免会遇到网页性能感知测试的工作,比如:测试访问某个网页耗时。针对此类测试,笔者经历过两种简单的方法:测试网页使用的后端接口响应耗时等同为网页耗时;使用秒表计算网页响应耗时。  测试网页响应耗时,我们需要知道触发网页请求时,直至网页刷新、响应,整个过程到底包含了些什么。从大体来分,主要包含两部分耗时:后端接口请求响应耗时和前端页面资源加载耗时。而抛开前端页面资源加载时间,单纯将后端接口响应耗时等同为网页响应耗时是不准确的;而不清除浏览器本身资源配置和消耗,简单使用秒表计算网页响应耗时,结果是粗泛不准确的。  那么,我们应该怎么测试网页响应耗时呢...
            14 14 1223
            分享
          •   性能测试框架搭建+接口测试+渗透测试+测试开发+测试面试指南,点击下方链接填写测试行业调查问卷,任选两个带回家。链接:http://vote.51testing.com/  Jenkins作为目前持续集成中使用较为广泛的工具,在实际生产过程中通过结合众多的插件,从而实现工程的持续构建、持续部署。  而传统构建的应用场景大多数运行在虚拟机或者独立的服务器上,在资源开销和管理维护较为复杂。相比于独立的服务器/虚拟机而言,容器不仅部署方便,且占用资源较少。  Docker作为目前作为业内最火的一个容器解决方案之一,通过将两者结合,从而实现服务的轻量化,并通过Docker管理Jenkins的资源。...
            1 1 1932
            分享
          •   根据我的观察,优秀的测试人员可以做的事情可以包括如下3点:  ·由单纯的测试变成项目质量保证工作  · 持续集成探索和推动和自动化测试技术研究  · 测试相关工具的开发  1、我们先来讲第一点,由单纯的测试变成项目质量保证工作  测试,从狭义的角度来讲,包括如下这些环节:  测试计划和测试用例编写-测试执行-质量报告书写  测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试、性能测试、安全性测试。兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保证了产品在海量用...
            0 0 916
            分享
          •   1.简述ADCU(域控)有哪些基本组成单元?  MCU,SOC,加解串器,CAN收发器,网络交换机,电源管理模块芯片PMIC等。  2.MCU和SOC的区别是什么?主要应用场景分别有哪些?  MCU为主控芯片,底盘域以及车身域等对算力要求不高的域其主控芯片多使用传统的MCU芯片;  SOC为计算芯片,集成了CPU、图像处理GPU、音频处理DSP、深度学习加速单元NPU,内存与各种I/O接口;  考虑到智能座舱域及智能驾驶域等对算力和安全性的要求均极高,控制器主控芯片普遍选择SOC芯片与MCU芯片搭配使用。  3.简述ADAS域控软件部分的实现流程?  由底层操作系统与中间层软件及上层应用软...
            0 0 2408
            分享
          • 读者提问:研发质量差,怎么办 ?阿常回答:这个问题乍一看,咱们作为测试好像管不着,那我们可以做些什么呢。一、作为测试无法保证质量测试人员的职责是在软件产品发布前,尽可能多地 、快速暴露有价值的缺陷,加速可交付质量的达成。测试人员虽然无法保证研发质量,但可以控制测试质量和测试进度,并且在测试结束后对于研发质量做出评价。一)控制测试质量和测试进度1、做好测试计划,准备好测试需要的工具和软件,好的规划是成功的一半。2、编写测试用例,最好进行一次用例评审,避免漏测重要的 case。3、开发提测前进行冒烟测试,冒烟测试通过后方可正式移交测试。4、及时汇报测试进度,用例执行情况、BUG 修复情况...
            0 0 832
            分享
      • 51testing软件测试圈微信