• 0
  • 0
分享
  • 行之有效又自我提高的Bug跟踪方法了解一下——软件测试圈
  • 曼倩诙谐 2021-07-13 09:29:34 字数 1806 阅读 735 收藏 0

  对于Bug跟踪分析这块,从我个人这几年的工作经验来看,大部分测试人员一般关注的都是从新建到关闭的这条工作流程。

  至于跟踪过程中和开发人员沟通过程中会遇到各种各样的问题,至于这些问题有没有一个可通用的模板。

  亦或者Bug关闭后有没有进行有效的分析,是什么原因导致的,对于后续测试过程有没有什么参考价值?

  后面我提到的问题,工作2-3年的测试人好像极少有考虑到的,如果每次对Bug都进行及时有效的分析,我相信对于个人成长会有很大的帮助。

  Bug跟踪的一般流程

  这里叙述一下正常我们Bug跟踪的流程都有哪些步骤:新建->修改/非Bug->验证->关闭/打回。

  新建:提交问题,分配给负责人

  一般给pm,由pm下发,也有直接分配给开发人员。

  修改:开发解决问题

  确认是问题,进行修改。如果不是问题,由一些其他因素导致,如数据之类的会非问题;有时还会让测试帮忙验证问题。

  验证:测试人员对修改好的Bug进行验证

  如果验证通过关闭,如果验证失败将Bug打回,一般再打回的过程需要和开发人员确认一下什么原因导致没有改好,有可能代码未更新等原因。

  跟踪过程中遇到常见问题

  通过上面的描述,可以看到沟通基本贯穿着整个环节,说几个常见的场景:

  ·开发人员提出问题下期修复

  ·开发人员提出问题不好修改,目前是最好的解决方案

  ·开发人员说明这个不是问题,但经过你的分析还是问题

  以上几个问题等等之类,我有一套自己的解决方案。

  先同开发个人自己沟通,尽量修改,如果实在解决不了的情况下,有个词叫向上管理,这个方法非常管用。

  直接和pm沟通,最好是一类问题一起沟通,基本上90%以上的问题都能解决掉。比如在有个项目中就有这样一个问题:报表查看字段多出一列空行。

  开发以之前讨论过的结果建议类问题本期不改、这个功能后续会优化,客户提出来我们再改等等。当时我就是抽空找了时间和pm对了一下,不一会儿问题就改完了,省时省力。

  但是也有一个问题,开发联系人可能会对你不满意。这里怎么说呢,个人理解,作为测试人员,本着对工作负责任的态度,就要有专业的职业素养。

  Bug原因分析

  之前发生的一个Bug,大概跟踪了一个星期左右最终找到原因。这期间开发人员配合非常积极,测试也是一直在复现,最后发现解决方案比较乌龙,竟不用改一行代码......

  测试过程

  为了模拟出真实的测试场景,通过调用接口修改状态。在接口调用成功后,物品状态显示不正确(有时正确,有时不正确,非必现),和开发沟通~

  1.0解决方案

  接口调用有前提条件,注意调用时间保持比当前操作时间延后一些,好,继续测试。

  还是复现问题,现象:

  接口调用成功,数据库值未发生变化。

  2.0解决方案

  调试,更改数据库里面的值,更改不了。Sql语句查询,编辑修改不成功,发现表发生死锁,开发认为查询慢,造成的死锁,加了一下索引。继续测试发现问题又出现了。

  开发继续调查

  这时候问题就不好复现了,操作了很多次才复现。突然有一天,下班所有的开发把电脑关机后,数据库锁死的数据突然释放。

  我们发现,因为有很多开发环境,很有可能程序进入其他人的代码里,造成数据库锁住。

  这里普及一下死锁的定义:死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

  回顾过程

  发现问题->避免问题的前置条件(屏蔽掉)->判定死锁(关键步骤)->加索引(事实证明跑偏了)->负载均衡->问题解决。

  我仅仅描述了大概的过程,其中经过多少轮的验证已经没有明确的数字了。

  假如和开发没有及时的沟通,单单从Bug验证次数的结果来看,很容易对这个开发做出能力上的评判,但事实上这个开发能力挺强。

  在这个过程中,我理解了负载均衡基本的原理及怎么去判定数据库是否死锁的办法,这些都是测试的经验积累。

  总结

  所以说,怎么才能丰富自己的知识储备,最好的办法是实践

  在实践过程中,发现一个问题,像挖野菜一样,一个个挖,在挖的同时不断拓展思路。

  以上就是对于怎么进行Bug跟踪分析的见解,总结一下最重要的两点:

  ·向上管理及跟踪分析

  ·当然也少不了良好的沟通技巧



作者:桃子   

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   问题描述  前后端分离体系中,后端接口变动时,前端需要相应调整,但是往往没有提供详细的接口调整说明,无法开展测试。  拟通过编写代码并在构建后端程序时自动执行,自动生成接口文档并可查看变动情况。  解决方案  通过Junit自动执行Swagger的API获取工程后台接口信息,并将接口信息写入ShowDoc,通过ShowDoc可直观查看接口变动情况,解决接口变化感知的问题。  适用技术栈  适用于服务端,Java技术栈。  应用价值点和创新点  通过Junit自动执行Swagger的API获取工程后台接口信息,然后将获取的接口信息写入ShowDoc,每次后端程序构建时自动写入接口信息,通过S...
            0 0 889
            分享
          • 本文所用到的案例:图一为登录首页,当输入用户名和密码后,点击【登录】按钮,如果用户名密码正确进入图三登录成功页面,否则弹出错误消息;点击【进行注册】按钮进入图二进行注册;点击【清除】按钮,清除数据库中的所有数据,这个按钮是为测试而临时设置的,正式产品中将会取消。图二为注册页,当输入用户名和密码后,点击【注册】按钮,当输入的用户名在数据库中不存在,注册成功,返回图一的登录页面,否则弹出错误消息。图三为登录成功页,当在图一中输入正确的用户名和密码后,进入这个页面,这里的"Hello world"将变为"Welcome "+用户名。正文部分谈起软件自动化测试,...
            0 1 2218
            分享
          • 之前写Kafka Client Go实践的时候,跟一位粉丝交流,Go语言的channel实现和Java的多线程实现的性能问题。就想做一次两者的性能测试进行对比。可惜Go语言用得少,还没形成快速进行性能测试的基础能力。所以得建设一些基础设施之后才行,今天分享一下,基于Go语言的动态QPS压测模型实现,算是基础能力建设的一部分了。本文基于上期提到的Go语言的协程池,查到很多资料,有的不建议复用协程。原因主要两点:1. 协程本身创建开销非常小,可以忽略。频繁创建和销毁协程并不会导致明显的性能瓶颈。2. 协程设计本来基于简单化,使用协程池破坏了使用便捷性对于第一个观点,以我现在知识和实践经验来说,不是...
            0 0 592
            分享
          • 读者提问:阿常你好,请问测试如何给开发提每年或每个季度的产品/项目质量目标,由测试提出,作为开发部门的目标,从而控制开发的质量 ?阿常回答:你们之前应该没有做过这类工作,所以你想参考下其他公司的做法对吗?阿常之前也没有给开发定过质量相关的指标,但可以给你一些建议,你看看是否能够参考一二:每个开发负责不同的产品/项目,项目本身复杂程度的不同,以及所处阶段的不同都会影响最终产生bug的数量多少和严重等级高低。所以参与不同项目的开发不能制定同一个质量标准。你可以记录一段时间每个项目的实际质量情况,再据此对每一个项目做质量目标的制定。比如说对产品A的版本1~版本10进行质量情况的统计,看看目...
            0 0 889
            分享
          •   介绍  在不断发展的软件开发领域中,确保应用程序的可靠性和功能性至关重要。随着软件系统复杂性的增加,有效测试方法的需求也在上升。传统的测试用例生成方法通常无法满足快速开发周期和复杂代码库的需求。随着进入人工智能(AI)时代,创新的解决方案正在重新定义软件测试的方式。本文探讨了基于需求和代码分析的AI测试用例生成,引领软件测试进入效率和准确性的新时代。  理解挑战  传统的测试用例生成通常是手动的过程,依赖于人工测试人员的专业知识来根据需求和代码识别测试场景。然而,这种方法存在一些局限性,如可能的疏漏、人为错误以及难以处理大型和复杂代码库的问题。随着软件变得更加复杂和动态,需要更智能和自动化...
            0 0 833
            分享
      • 51testing软件测试圈微信