程序的bug排查流程总结

只要是人写的程序,不可能没有bug,那么解决bug,将伴随程序员的一生:

Ø 只会写代码,但不会排查bug的程序员,只能算是业余程序员

Ø 能解决一般bug的,只能算是初级程序员

Ø 代码写的质量较好,还能查找较难bug的,中级程序员

Ø 代码写的质量好,注重性能,不但能排查疑难bug的,还能解决疑难bug的,高级程序员

Ø 代码写的质量好,注重性能,稳定性,可靠性,架构设计合理,能解决绝大部分疑难问题,属于资深程序员

以上的话引自某个论坛网站,不一定说的绝对正确,但基本是有道理的。

 

面对出现的bug,每个人心态都不一样:

1. 积极主动,从容应对

自己负责的模块出现bug,不管是自己发现的还是别人发现的,都主动的去查找,搭环境,想办法去解决。

2. 消极被动

对出现的bug,消极应对,你催我动,不催不动。

排查流程:



总结:

解决bug过程可能痛苦,累人,难受,压力大,甚至暂时还解决不了,关键看是不是尽力了。要想自己得到提高,达到更高层次,这个坎必须跨过,否则只能是平庸的程序员,只能承担一些简单的任务。

解决bug的过程也能学到很多东西,也有很多乐趣,自己也能得到很大的提升,解决bug是属于自己职责范围内的事情,是种乐趣还是种包袱,关键看个人的心态。

最后,给大家分享一句很有名的话叫”峰高无坦途“,意思是:要想登上最高峰欣赏美景,没有平坦的道路可走,都是悬崖峭壁,想登上高峰欣赏美景,必须跨过这些坎。

欢迎大家关注我的博客!如有疑问,请加QQ群:454796847共同学习!

时间: 2024-12-05 17:29:05

程序的bug排查流程总结的相关文章

一起空指针引发的程序问题的排查过程

      [文章摘要]        在C程序中,指针操作是难点和精华所在.指针一旦使用不当,极有可能造成程序的崩溃.        本文对一空指针引发的程序问题的排查过程进行了详细的介绍,为相关软件问题的分析及解决提供了有益的参考.           一.问题描述        最近,某程序在测试过程中突然崩溃.日志中出现如下内容:        #0  0xf64f2b3a in FunctionA(event=666,dlgindex=0, ucErrNo=1 '\001') at s

Android GUI系统之SurfaceFlinger(7) 应用程序的典型绘图流程

1.1.1 应用程序的典型绘图流程 我们知道,BufferQueue有最多达32个BufferSlot,这样设计的目的是什么?一个可能的原因就是提高图形渲染速度.因为假如只有两个buffer,可以想象一下,当应用程序这个生产者的产出效率大于消费者的处理速度时,很快它就会dequeue完所有缓冲区而处于等待状态,从而导致不必要的麻烦.当然,实际上32只是最大的容量,具体值是可以设置的,大家可以结合后面的ProjectButter小节来理解一下. 前面小节我们已经学习了BufferQueue的内部原

Apache Jmeter3.0压测数据库OOM的Bug排查

一.引言 Apache Jmeter 2.13(以下简称Jmeter2)版本后,2.X系列就作古了.前些日子,Apache Jmeter 3.0(以下简称Jmeter3)版本正式发布,新生的事物,功能肯定强大了很多,但作为开源产品,稳定性自然要打些折扣,一位同学前几天在使用Jmeter3时不幸中招. 二.问题描述 原本好用的JDBC请求脚本,压测数据库,使用Jmeter3版本时直接OOM,回退至Jmeter2,一切正常,啥也别说,肯定是又出Bug了,本着求实的精神,咱来看看Jmeter3为毛OO

GitHub 新特性,使用新的 Marketplace 应用程序来升级工作流程

使用这些新的Marketplace应用程序来升级您的工作流程 GitHub Marketplace推出四款新应用,以帮助您查看,保护和监控您的代码. 代码审查 AccessLint 将自动化 Web 访问测试带入开发流程.当打开拉动请求时,AccessLint 会在您的代码生效之前,随着任何新的辅助功能问题审核更改和评论,从而为您提供快速,及时和有针对性的反馈. 依赖管理 Dependabot 可帮助您保持最新的 Ruby,JavaScript,Python 和 PHP 依赖关系. Depend

断网故障时Mtop触发tomcat高并发场景下的BUG排查和修复(已被apache采纳)

该文章来自阿里巴巴技术协会(ATA)精选集 目录 现象 NIO模式背景介绍 排查过程 结合业务场景解释问题产生的原因 进一步的发现 解决办法 向Apache社区的反馈 总结 现象 mtop的机器,环境为Ali-Tomcat 7.0.54.2,连接器采用的是NIO模式,在高流量(约1000 qps)的情况下,在Tomcat的启动后一段时间内,抛出ConcurrentModificationException,然后再过一段时间后,Tomcat无法再接受新的请求. 异常堆栈如下: Exception

解决一bug的流程复盘

听同事说有一个功能不好使了,当时有事,过了一段时间来看看这个bug 解决问题时,看的是老的日志,根据老日志看来看去没有发现问题,觉得很困惑 然后手动执行了一下,发现问题没有重现.与另一个团队的同事沟通下,说是他们那边把代码回退了. 总结:解决问题时,要重现bug,并取最新的日志.从引发问题的最接近的原因开始一步步分析,一层层的排查故障  

软件测试的Bug缺陷管理流程

流程说明 1.测试人员填写bug并提交给开发组长,Bug的状态为New: 2.开发组长次日工作前对bug确认是否有效.有效的bug,状态变化为open,并分配给开发人员:bug无效或者延期修改的,将bug状态变化为Rejected,同时也在comment中注明原因. 3.开发人员上班的第一件事情是查看自己有几个bug需要修改. 4.开发人员修改bug,修改完成并进行单元测试后,将bug的状态变为fixed,在comment中说明修改方法: 5.测试人员每天查看自己提交的bug的状态变化,应该成为

MOTO 手机使用J2ME程序的Bug

这几天写了J2ME程序,在SUN公司提供的模拟器上运行一切正常,满心欢喜.拷贝到手机上一试.晕啊.有个Form竟然不报错,但是也打不开.经过一天的一个一个添加的测试(狂心疼手机的USB插口,MOTO的设计师估计试左撇子)一个一个的问题浮出水面 不能又超过3层的类的继承关系,否则很容易此类创建的时候异常,但是不报错,不过就是无法打开. TextField不能使用 TextField.UNEDITABLE类型,否则只要焦点移动到该对象上,内存就会一路狂跑,最终溢出.这个错误,可以通过sun公司的Su

在C++程序中添加逻辑流程控制

问题的引出 在计算机程序中,除了常见的执行流程控制,还有逻辑流程控制:有时,执行流程即为逻辑流程,但在大多数情况下还是有所区别的,例如,假定有一个Web服务器使用同步套接字读取HTTP请求,那么会编写如下的代码: void read(HTTP_REQUEST& http_request) { read(http_request.header); read(http_request.body, http_request.header); } void read(HTTP_REQUEST_HEADE