• 0
  • 1
分享
  • 缺陷分析如何帮助质量内建
  • 恬恬圈 2019-11-01 10:28:44 字数 1284 阅读 3485 收藏 1

质量内建的关键是缺陷预防

近几年,软件开发过程中的质量内建正在逐渐被大家所重视。越早发现的软件缺陷,修复成本越低。质量内建要求在软件开发生命周期的每个阶段做好质量保障工作,预防缺陷的产生。

1.png

缺陷预防

说到缺陷预防,通常能够想到的就是测试前移(QA从需求阶段开始介入、TDD/ATDD等)、Code Review等实践,正向的来预防缺陷的产生。

但是,软件系统的生态环境越来越复杂,不确定性增加,缺陷预防的难度也在增加。如果缺陷已经产生,是否还能被利用来帮助质量内建呢?

在《软件缺陷的有效管理》一文中介绍了基本的缺陷分析方法,接下来我们一起探讨一下如何利用缺陷分析来帮助质量内建。

缺陷分析与质量内建

缺陷分析最为关键的是根因分析,找到根因,能够减少缺陷重复出现的可能性,在后续阶段做到缺陷预防,帮助质量内建。

分析根因

引起缺陷的原因主要有下面这几个方面:

  • 需求缺失或者需求不清晰

  • 设计问题

  • 编码错误

  • 测试不够

  • 环境相关(硬件、软件、配置等)


1.png缺陷根因

利用5 Why分析法[1]根据缺陷的表象,多问几个为什么,找出根因。下面是一个真实生产环境缺陷的根因分析过程:

1.png

5 Whys - reminder issue

上图的根因还可以继续细分,比如为什么这么设计,可能还会有更深层次的问题;同样的,进度紧张导致的需求没有实现,也可能还有更详细的内情可以分析的。最好能一直分析,直到找出真正的根本原因。

定位阶段

找出根本原因之后,同样利用5 Why分析法,基于软件开发生命周期由外往内的问为什么,从而定位引发问题的薄弱环节,找出是哪个环节做的不好导致的问题。拿生产环境的缺陷为例,下面是可能(不限于)的问题列表:

1. 为什么在预生产环境没有发现这个问题?
2. 为什么测试环境没有测出这个问题?
3. 为什么Desk Check没有发现这个问题?
4. 为什么Code review没有发现这个问题?
5. 为什么单元测试没有覆盖到这个问题?
6. 为什么在需求评审的时候没有发现这个问题?
7. ……

1.png

Identify Phase

定义改进action

找出了根因,并且定位了引发缺陷的最可能阶段,接下来就是通过“What”问题来确定对应的action,预防类似缺陷再次发生,从而帮助质量内建。

不同的根因对应的可能actions有:

1.png

Root cause-actions

总结

质量内建的关键是缺陷预防。

除了正向的考虑加强每个环节的质量保障工作可以预防缺陷,通过分析缺陷的根因、定位问题出现的薄弱环节、制定可行的对应改进措施,可以帮助我们更有的放矢的做好缺陷预防工作,更有效的做好质量内建。

1.png

缺陷分析帮助质量内建

注1:5 Why分析法
所谓5 Why分析法,又称“5问法”,也就是对一个问题点连续以5个“为什么”来提问,以找出其根本原因。根据实际情况,问题的数量不一定要限制在五个,可多可少,适当调整。


本文为51Testing经授权转载,转载文章所包含的文字来源于作者:BY林子。原文链接:https://www.jianshu.com/p/a4a24f272dab,如因内容或版权等问题,请联系51Testing进行删除。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • DevOps 方法继续加强其在软件开发中的地位。所谓的连续工具是该领域最常用的工具之一。持续集成和持续交付等实践能够在进行任何更改后立即将代码交付到生产环境中。当使用更小改动的代码块时,将会让新功能发布和修复BUG并行成为可能。软件开发的 CI/CD 方法为产品迭代带来了更高的可靠性和更快的更新速度。CI 是 CI/CD 技术的第一阶段。在项目中实施持续集成有很多好处。它是软件更新的一个基本过程,其主要功能是将来自不同开发人员的代码更改集成到一个仓库中。今天我们将重点介绍 CI/CD 的第二阶段,持续交付。它有助于确保代码已准备好交付。它的主要特点是代码构建、测试和交付等过程的自动化,有助于及...
            1 0 914
            分享
          • JMeter分布式执行原理如下图所示:前提:在调度机上安装JDK(我们这里使用1.8版本的)+Jmeter(3.3)一、windows下负载机的配置(执行机)1、在执行机上安装相同版本的JDk和Jmeter(参考调度机的安装)注意:JDK和Jmeter都要配置环境变量Jmeter环境变量的配置:在系统环境变量中添加:JMETER_HOMEC:\jmeter\apache-jmeter-3.3\bin在path系统变量中添加如下配置:%JMETER_HOME%\bin;2、在执行机上自定义端口号1、进入Jmeter的bin目录,找到Jmeter.properties文件,打开该文件修改如下两个配...
            12 12 2138
            分享
          •   自动化测试流程图:  第一步:制定好测试计划  我们在准备展开自动化测试之前,最好是先制定好测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的人力、硬件、数据等资源都准备充分。制定好测试计划后,下发给用例设计者。  第二步:分析好测试需求  测试用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,以便用例设计时能够覆盖所有的需求点。一般来讲,基于Web功能测试需要覆盖一下几个方面:  ·页面链接测试,确保各个链接正常;  · 页面控件测试,确保各个控件可靠;  · 页面功能测试,确保各项操作正常;  · ...
            0 0 1500
            分享
          • 首先,确保你所发现的问题是确实是一个bug,不要出现因为测试人员操作错误或配置错误所引起的“bug”,这样会降低你在开发人员心中的可信度。在测试的时候,如果发现测试的实际结果与预期测试结果不符时,不要着急马上报bug,先想想为什么会出现错误。作为专业的测试人员,应该能够对出现的问题进行跟踪,确认了在配置、操作没有错误的前提下,通过追踪分析确认所测试的业务流程确实是存在bug,并能大概对bug的产生原因进行定位。测试人员,需要做到专业,尽量少给开发找麻烦,不要制造实际上并不存在的bug。确认了所发现的问题是一个bug之后,按照测试步骤再执行一次,确保bug是可重现的而不是随机的。如果bug不能重...
            0 0 1277
            分享
          •   应用场景:设想要集中测试一个Web服务器的性能表现, 我们用一台机器模拟上千个用户不断地访问被测试的服务器,可能会遇到一些瓶颈,模拟的用户不够,服务器设置了安全措施、拒绝接收(当有超量的数据来自同一台机器在短时间内,服务器就会认为这是外来的攻击行为),测试机的配置过低、不能完成上千个用户的请求。  解决方案:利用JMeter的分布式测试配置,就可以很轻松的解决上述问题。如下图所示,我们选择一台主机(Master),然后配置一些节点服务器(Slaves),主机发送测试运行指令,节点服务器在同一时间模拟用户对终端服器发送请求。这样总模拟的用户数量 = 单个节点用户数 * 节点服务器个数  学习...
            5 4 5256
            分享
      • 51testing软件测试圈微信