软件工程师在工作过程中,难免要解决软件中的各种bug,但是经常由于各种问题导致一个bug反反复复修改,甚至引出更多的bug。纠其原因,更多的是处理bug过程不规范导致的。笔者总结了工作中遇到bug的处理流程,如下:

一、bug确认

分配到一个bug后,要根据bug单号到bug管理系统查看该bug的详细信息。

1. 查看问题现象,了解问题
2. 查看软件版本和操作流程,检查当前版本和操作流程(步骤)是否有问题

此流程是为了确认是不是伪bug, 所谓伪bug,产生情况有两种,一是由于测试人员对操作流程或测试环境配置不正确产生的,比如未联网、口令输入错误等。
二是当前软件版本问题,如尚未支持该项功能

3. 检查是否是外部bug

根据日志分析,如果是其它模块问题引起的,转到其它模块负责人

4. 根据问题现象、日志确认是不是重复(已经提过的)bug

测试开的bug有可能是重复的,单从问题现象不一定看的出来,此时需要查看日志进行分析获得真正的原因所在,并与相似的bug作对比

5. 此时可以确认bug了,并在评论中增加问题的原因

二、bug修改方案确定

1. 确认修改范围

确定是否涉及协同修改(如模块(组间)接口修改)

2. 确定修改方案

如果需要协同修改,需要与其它模块(或组)相关人员讨论确定修改方案,讨论后,以邮件(附文档)发送给相关人员;否则自己(或与组内人员讨论)确定修改方案

3. 确定合入版本时间

确定修改方案后,需要与相关人员确定联调和进入版本时间,以免出现不同组合入版本时间不一致,产生其它功能问题,此处最好也以邮件形式通知确认

三、代码修改

根据确定的解决方案修改代码,修改过程中要时常关注以下关键点:

1. 是否影响函数接口的扩展性

2. 函数是否太大,是否需要拆分

3. 函数名称和实际功能是否有偏差,是否需要抽象成新的接口

4. 有无动态分配内存,内存使用后是否回收(包括goto和return场景)

5. 解决层面是否合适,是否有更好的修改点,比如更底层或更上层的修改

6. 是否会影响其它模块

7. 检查是否有死循环(循环条件是否正确)

8. 循环等算法是否有优化的必要

四、自测试

1. 先用修改前版本复现问题
2. 使用修改后的版本进行测试,确认解决问题
3. 对可能影响的功能进行回归测试

五、联调

如有必要,同其它组进行联调,确认正确修改问题

六、检查代码规范

根据代码规范检查生成的patch,修改使其符合制定的代码规范,参考如下:

1. 如空格/table问题
2. 未使用变量等
3. 是否有未初始化变量
4. 是否需要添加必要的注释
.........

七、代码提交

提交代码时,要注意以下几点:

1. 不要提交多余的文件
2. 不要遗漏新增加文件
3. 写上必要的提交信息,关联bug号

八、关闭bug

关闭bug, 关联相应的修改版本号,写上必要的修改说明

软件工程师解决测试人员测试出的bug流程相关推荐

  1. java好的代码_做java软件工程师,怎样才能写出好的代码?

    原标题:做java软件工程师,怎样才能写出好的代码? Java代码之于java程序员而言就是左膀右臂,java代码写的好的java程序员明显更是企业的欢迎,一个优秀的java程序员的考核标准之一也是看 ...

  2. android 测试人员测试时使用release版本还是debug版本_为什么做软件测试

    软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 软件测试包括:发现软件程序中的错误.是否符合设计要求,是否符合技术 ...

  3. 第一次当招聘者-----如何考察一个测试人员测试思维和测试基础功

    最近帮一个朋友公司招聘测试人员(该朋友不懂测试,他自己开的猎头公司),平时感觉自己测试技术还可以,不管自动化还是性能,还是java或python的代码能力都还OK,但是第一次当面试官却有点没底,不知道 ...

  4. 小程序开发版只能自己微信真机调试,别人微信步行,小程序开发版如何提供给测试人员测试

    今天项目基本上完结了,接口也都调完了.自测的时候想用不统计机型多个微信号登录同时测试观察机型表现.结果发现为什么我的账号可以访问到小程序,别人的不可以.然后就按照标题类似的方式百度,发现并没有多少帖子 ...

  5. Nifi 怀疑出个bug 流程中的实时数据结果痕迹没有不是实时的,是之前的。以及相应解决办法。

    1 在 Nifi 中做数据处理,有一个半小时之前执行过的流程,因为没设置好执行的时间,结果把读的数据库的表持续读成数据流 流到文件里,结果生成大量文件,一个文件就存着一张表的结果. 2 然后过了三十分 ...

  6. 测试人员如何区分前端和后台BUG方法流程

    测试工程师不只是负责发现问题,除了发现问题这种基本功外,定位问题,提出解决方案,提出预防方案也是要掌握的技能.这里先说定位问题的要求,定位问题要向深入,前提当然是对功能.产品的流程.开发方案.开发人员 ...

  7. 遇到bug的解决办法,测试再也不背锅了

    为什么定位问题如此重要? 可以明确一个问题是不是真的"bug" 很多时候,我们找到了问题的原因,结果发现这根本不是bug.原因明确,误报就会降低 多个系统交互,可以明确指出是哪个系 ...

  8. 二舅也救不好的是测试人员的精神内耗~

    二舅前段时间火了,<回村三天,二舅治好了我的精神内耗>在朋友圈疯狂转发,看很多测试同事发圈感慨二舅治好了自己的精神内耗,让自己不再纠结那些得不到的东西. 想必你也经历过一刷激动.二刷感动. ...

  9. 测试管理007:测试文档 - 让测试人员纠结与无奈的测试工作

    [概述] 测试文档是测试过程中输出的测试工作产品,类似于软件工作产品.然而实践中经常面临有很多的测试文档需要撰写,而使用文档的效果却是非常有限.本文阐述了测试文档深度与广度选择需要考虑的一些因素. [ ...

最新文章

  1. 调用训练好的模型(tensorflow)
  2. Java开发中业务层入参校验详细解析
  3. Unix时间戳转换(python)
  4. Acwing 第 1 场热身赛 【完结】
  5. repeate 绑定展开的第三只小板凳
  6. mysql 表 地图_报表中的地图怎么做?
  7. 霍尔电流传感器ACS712的性能参数和用法
  8. linux修改grub权限,linux下肿么修改grub.cfg
  9. 由浅到深理解ROS(3)-命名空间
  10. 没有bug队——加贝——Python 练习实例 31,32
  11. JavaScript基础(ECMAScript)
  12. 卷积神经网络(CNN)之MNIST手写数字数据集的实现
  13. 剑指Offer值数字在排序数组中出现的次数
  14. 制备石墨烯流程图_科研人员制备出小扭转角度双层石墨烯
  15. 网站备案其实是服务器备案,网站备案指的是备案域名还是备案主机空间
  16. B站又被搞了,这次全部下载它
  17. linux开关机啪啪响(pop noise)的解决方案
  18. 学生护眼台灯aa和a的区别?分享适合学生的护眼台灯
  19. 数据预处理之scaling
  20. 关于left / right / stereo / mono

热门文章

  1. 《编写有效用例》读书笔记(6)——前置条件、触发事件和保证
  2. 用苹果手机计算机程序二,两台iPhone怎么互传软件 苹果手机互传应用的3个小技巧...
  3. express框架实现文件上传、下载及推送(使用Websocket)
  4. ZOJ 3426 HDU 3719 Snooker Referee
  5. godot mysql_go godotenv配置环境变量
  6. 被误解的明朝——中国的文艺复兴(转)
  7. android环信删除会话列表,关于环信删除会话之后,从好友列表进入无法显示聊天消息...
  8. Antv踩坑—导入画布数据监听画布渲染完成事件
  9. 2021年危险化学品经营单位主要负责人报名考试及危险化学品经营单位主要负责人新版试题
  10. 淘宝吱口令效果实现,获取系统剪贴板内容