• 0
  • 0
分享
  • 我们该如何进行bug总结?——软件测试圈
  • TIMI 2022-10-09 15:29:43 字数 4189 阅读 3926 收藏 0

一、什么样的bug需要进行总结?

1、线上遗漏的bug

没有被测试发现而遗漏到线上的bug。其影响不言而喻,会直接影响用户的体验,影响产品的口碑,势必需要进行总结。

2、非线上遗漏的bug。

没有在规定的测试阶段发现,从而导致发现晚的bug,例如XX模块已经测试完毕,结果后来又发现该模块的新bug。这类bug会导致增加bug修改和验证的时间,从而有可能影响项目的整体进度,甚至导致项目delay。

俗话说”人非圣贤,孰能无过“,软件是由人编写的,所以再所难免都会有问题,而我们所要做就是尽量避免出现问题,或者是避免出现重复的问题。

对于软件测试人员来说分析BUG是非常好的一个措施,这样可以检测到测试人员在测试过程中哪些地方考虑不周,或没有考虑到,从而可以提醒测试人员下次思考的范围扩大,尽可能地完全覆盖测试范围。

从分析结果的角度出发,bug大多都是开发人员和测试人员麻痹大意所导致的,并不是不可避免的。

二、什么时机进行bug总结?

  1. 项目上线后,应尽快进行bug总结,否则时间一长会出现遗忘的情况,包括测试和开发两方面,给总结操作带来不便。

  2. 遇到严重的或非常重要的遗漏bug,可随时进行单独总结,比如线上发现的严重问题。

三、总结什么内容?

总结bug的核心,是为了后续减少遗漏bug,提高测试覆盖度,提升项目质量。想要达到这个目的,首先需要分析bug的原因,尤其是遗漏原因;其次是确定后续的改进方案,避免类似的问题再次发生。

四、怎么分析bug原因?

bug遗漏的原因一般分为几大类:

1、 非遗漏问题

bug总结时,出现概率最高的可能就是非遗漏问题,这类问题并不需要进行具体的总结,其中主要包含三类:

  • 不是问题:例如用户反馈的问题,但符合产品的需求要求,这种就属于不是问题。

  • 开发引入:例如我们测试完成的模块,开发修改bug,或在测试不知情的情况下修改了代码,引入的新bug。

  • 需变引入:例如我们测试完成的模块,发生了需变,导致新的bug产生。

2、用例设计遗漏

bug是用例设计时没有覆盖到的场景,又可以细分为几类:

  • 基础用例设计不足:例如需求中详细说明的内容,没有在用例中提现。

  • 需求理解错误:例如需求理解错误,导致测试用例的预期结果不正确,而开发实现正好符合错误预期。

  • 模块间影响考虑不足:例如没有A模块与B模块有关联,会对B模块产生影响,但B模块的用例中未涉及到相应的场景。

  • 复杂路径无法覆盖:路径过于复杂,或者涉及较多层级的操作,例如经过10步操作后才会出现的bug。

  • 复杂场景考虑不足:例如两个或多个看似完全没有关系的场景,结合起来产生的bug。

  • 适配问题考虑不足:例如在某些特定的机型上出现的bug。

3、用例执行遗漏

bug是执行用例过程中出现过,但没有被发现,可细分为2类:

  • 纯执行遗漏:测试用例中涵盖,但没有执行;或者执行了用例,也出现了问题,发现了问题但没有提交bug。

  • 敏感度不足:测试用例中涵盖,但没有明确说明,遇到了问题,但没有意识到是bug。例如同样都是头像,在A页面是个圆的,在B页面是个方的。

4、重现率低的问题

  • 重现率低:重现几率较低的bug,无稳定复现的步骤。

5、体验性或性能问题未关注到

  • 需求不明:需求中没有明确说明,也未在用例中涉及,但对用户体验有影响,后经其他方指出的bug。例如产品logo不够明确、使用过程中设备发热等。

五、如何进行方案改进?

针对bug遗漏的不同原因,也有不同的改进方案。

1、非遗漏问题

  • 这种类型,与测试无关,无需改进。

2、用例设计遗漏

  • 用例补充:补充对应模块的测试用例,这个是基础。

  • 用例通用:补充后的case是否具有通用性,如果有,那么需要应用到所有相关的模块中,并作为后续用例设计的经验积累。例如:锁屏后再解锁会导致某个页面控件的功能失效,那么各个页面都应该添加“锁屏后再解锁,检查控件可用”的case。

3、用例执行遗漏

  • 执行遗漏:纯执行遗漏不可饶恕,除了自己做好备忘外,没什么更好的改进办法,这个层面出现问题,更多的应该是自我反思。

  • 敏感性遗漏:如果是敏感度不足导致的遗漏,那么可以持续进行经验积累,提升自己对bug的认知。

4、重现率低的问题

  • 有原因:如果是能够找到具体原因的bug,那么应该深入挖掘,找到问题的本质原因以及重现步骤,然后再进行分析,对遗漏原因进行归类,然后再进行针对性的改进。

  • 无原因:如果是无法找到具体原因的bug,这块暂无有效的改进方法。

5、体验性或性能问题未关注到

持续积累:这类问题的改进方案跟敏感度不足的改进方案类似,需要持续的进行积累,提升自己的产品感觉。

六、推行RCA会议

作为软件开发工程师或者管理者的你有没有经常遇到这样的问题:为什么自己的产品不断涌现regression bug?为什么改了一个bug以后,引发出N个其他的bug?甚至很多bug是在客户使用的过程中爆出来的,给公司造成了经济和名誉的损失。如果我们在开发的早期,能够及时地找到产生这些bug的原因并加以修复,就可以最大程度地挽回这些损失了。

1、RCA介绍

根本原因分析法Root Cause Analysis(后面简称RCA)。通过RCA的分析,不仅可以在研发的早期探测到bug,而且还能为管理者提供批判性思维和组织内可持续提高的方向,以进一步地提高产品的质量,形成一个正反馈。

这是一项结构化的问题处理法,用以逐步找出问题的根本原因并加以解决, 而不是仅仅关注问题的表征。根本原因分析是一个系统化的问题处理过程,包括确定和分析问题原因,找出问题解决办法,并制定问题预防措施。在组织管理领域内,根本原因分析能够帮助利益相关者发现组织问题的症结,并找出根本性的解决方案。

2、RCA的分析工具

RCA的分析工具有因果图,头脑风暴法,因果分析-鱼骨图 和因果分析-5why法,每个组织可以根据自己的实际情况,选择对应的方法。MSTR常用的RCA分析工具有两种,一种是5Why分析法,还有一种是鱼骨图(Ishikawa diagram)。 它们都可以帮助我们,有效地找到问题的根本原因,并且提供了清晰的记录方式,以免我们在分析过程中被各种信息淹没。

3、RCA具体操作流程

下面我们来看一下具体的RCA操作流程。如下图所见,整个流程分为5个步骤:

1. 选择合适的问题进行分析

比如,有代表性的,引发严重问题和影响的bug。RCA属于深度分析,所以通常会比较耗时,如果每个问题都要分析,会占用较多的组织资源。

2. 选择合适的人参加分析

通常一场分析会需要以下人员参加:

  • 项目经理:熟悉RCA流程,把控会议节奏和讨论方向,做好会议记录和后续改进措施的跟踪和汇报。可以是scrum master,或者product owner。

  • 开发工程师:引入这个问题的工程师。在会议中讲述整个事件发生的起因经过。提供第一手的分析资料。

  • 架构师:从代码架构等角度考虑,帮助开发工程师挖掘根本原因,提出今后改进的方法。

  • 测试工程师:从测试的角度出发,去考量是否可以通过测试覆盖率,在测试的早期发现问题。

3. 召开正式的RCA分析会议

下面RCA分析会议四部曲会详细介绍。

4. 定期回顾和跟踪

在RCA会议产生的改进方法和行动需要定期回顾和跟踪。

5. RCA会议结束

对于已经完成所有行动计划的RCA分析进行批准和结案。通常可以选择product owner作为批准者。

4、RCA分析会议四部曲

正式的RCA分析会议包括以下四部曲:

1. 获取问题

获取问题所有相关的消息和事实,比如由开发工程师讲述整个时间的原委:

从测试人员或者客户的角度出发,这是一个什么样的问题?在遇到这个问题前,他们是想要做什么?

这个问题是在什么情况下,怎么被发现的?

从技术分析的角度,这个问题的本质原因是什么?

在问题被发现以后,我们是怎么去修复这个问题的?

还有其他相关的事实和信息我们需要注意的?

2.5Why分析

用5Why分析工具开始做具体的分析,项目经理可以从第一步已经收集到的事实和现象开始提问,根据大家给出的答案,来判断这是另外一个现象还是根本原因。如果还是现象,再问下一个问题,以此重复,从而推进分析的不断深入,直到找到问题的根本原因。给大家一个最简单的例子帮助大家理解。

  • 第一个why: 为什么手机不亮了?

答:手机电池没电了

  • 第二个why: 为什么手机电池没电了?

答:昨晚没充电。

  • 第三个why:为什么昨晚没充电?

答:家里停电了。

  • 第四个why:为什么家里停电了?

答:自己没缴电费。

  • 第五个why:为什么没有缴电费?

答:没钱了,自己没有合理的理财,月光族。

3. 答案反推

根据上面5个why问完以后得到的答案反推回去,检查逻辑是否正确。注意顺着逻辑向下问,不要跳跃,实际工作中的情况比上述的例子要复杂多,容易跑题。

4. 制定行动计划

以上检查无误以后,开始针对每一个root cause制定行动计划。比如针对上面的例子,行动计划可以下面两个选项。除了做什么,每个行动计划还需要制定行动的执行者和完成期限,以备后面的跟踪。

  • 选项一:跟朋友或者亲戚借钱,缴电费。

  • 选项二:下回提前每月留出基本生活费,比如电费,通信费等。

5、RCA的核心意义

  • RCA的过程是去挖掘问题的根本问题,不是开批斗大会,所以主持人和参会人员不要给引入问题的软件工程师太大的压力,要营造轻松的头脑风暴的氛围。

  • 分析过程中,不能着急做出判断和解决方案,因为它们不是真正的root cause,自然我们会制定错误的解决方案。通常4小时的分析也属于正常范畴。

  • 所有制定出来的行动计划都是要可以执行的,清晰的,可以衡量的。

七、总结

  • 多数bug都是人为的,避免这些情况就需要开发人员在开发过程中多注意,培养良好的编程习惯,而测试人员在测试过程中需要将测试范围考虑完全,尽量避免遗漏测试点,对于不清楚的点,不管是开发还是测试人员,都应该拿出来讨论,切忌闭门造车,不懂装懂。

  • 对于bug总结,应该正面认识,并不是一味的追讨责任,而是更好的改进测试方法、提升测试是能力。认真做好bug总结,对测试团队、测试个人的能力提升,都有很大的帮助。

  • 对于线上bug我们一定要整理并分析形成缺陷报告,通过统计分析,找出可以避免的生产故障,使生产故障率有效降低,并形成统一分析模板。

1.png


作者:好好先生&Mr.Li

原文链接:https://blog.csdn.net/weixin_44275820/article/details/120869160

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • app测试中,随着功能的不断增多,每次发版本的时候需要回归内容就越来越多,回归需要花费的时间从1小时扩大到4小时,8小时甚至多天。为了减少投入回归的时间成本,人力成本,无数的测试人员开始尝试UI自动化。其实无论是web UI还是app UI 自动化都是存在一定的共性内容。就是通过控件的位置、名称、属性等获取控件对象,并且通过操作控件对象或者坐标来模拟用户的操作。它包括三个核心部分:1、动作执行动作执行需要先有动作,然后再进行执行,动作的获取有两种方式,一种是通过录制脚本,主要是记录空间的位置坐标和发生的事件,通过回放脚本完成测试事件,像airtest框架就提供比较方便的录制回放功能。...
            0 0 757
            分享
          • 心里有数,也要留一手,和盘托出,不是一场好戏。底牌哪能随便乱漏?我们做人做事啊,千万要记得留有余地,留有余粮,以备不时之需。留有情面,两人之间就有了润滑的空间。留有神秘,两人之间就有了空间想象。留有距离,两人之间就有了美。留有底牌,两人之间就有了互相学习的机会。看透了,就没意思了。戏曲,歌剧,一出好戏,总是分好几出,好几场,好几段。有生旦净末丑,有咏叹调,有慢板,有快板……没有了这样的曲折蜿蜒,起伏跌宕,哪有那么美妙的歌曲?印象深刻的歌剧?适度,是人生智慧之一,积少成多,是客观现实之一,人们对自清醒地认识,就是知道自己不是无所不能,知道自己不是啥都能干,就是知道自己的局限性和渺小,狂妄份子貌似...
            1 1 995
            分享
          • 随着软件开发过程复杂性的不断增加,客户希望得到新软件的期望周期也越来越短,所以软件测试方法需要不断的发展快速适应新的开发模式,敏捷测试的呼声越来越高,以下是CC先生对敏捷测试的一些思考。敏捷测试的定义在CC先生初次遇到敏捷的时候,认为敏捷只是有关于流程和工具,学习了一系列有关于敏捷的流程和自动化测试的工具,随着对敏捷理解的深入,越发能体会到敏捷不仅仅是关于流程和工具,它是关于人和文化的! 受到这种认识的启发,CC先生开始深入了解敏捷的历史 - 事实证明,人和文化一直是敏捷的核心。敏捷测试也是如此,它不仅是流程和工具的更改,它更倾向于一种新的测试模式,高投入产出比的同时也提供高质量的产品。如果把...
            0 1 3305
            分享
          • 根据去年的大数据报告显示互联网行业的薪酬已经超过金融行业夺取了冠军席位,互联网行业的高薪酬成为其他很多行业羡慕的对象,因此很多人转行从事IT工作,其中软件测试工作尤其受欢迎,特别是在一线城市,因为软件测试如门槛低,创业公司多,需求大,容易找工作,提升很快,成为很多入门互联网行业选择的职业。作为一名刚入门的软件测试工程师,了解清楚软件测试的方向是必须的,因为只有清楚了测试方向才能确定自己的发展方向,软件测试方向大致分为以下五种:第一种Web测试:在几年之前,移动端互联网没有爆发之前,Web测试是测试的主流方向,虽然现在被移动互联网分了一杯羹,但是需求仍然很大,Web测试包括测试,Web服务器测试...
            0 0 1266
            分享
      • 51testing软件测试圈微信