解bug有哪些通用通道

转载自https://www.zhihu.com/question/61826619/answer/207406782?utm_source=qq&utm_medium=social


1 代码本身没有问题,但每次执行到那一行就是报错,最后跟踪出来是内存溢出的问题;

2 代码本身没有问题,但因为对API不熟悉,在使用的逻辑上有问题,导致了莫名其妙的现象,比如Android的AsyncTask;

3 测试定义为随机问题,只能通过走读日志和测试描述的步骤来推理解决;

4 因为打印导致耗时严重影响性能的问题;

5 单步调试无法定位到问题的原因(多数是因为多线程的原因),只能通过打印解决;

6 因为编码上的疏忽大意,跟踪很久结果发现是非常低级的错误;

7 正常使用没问题,但频繁调用某个方法导致代码重入的问题;

8 没有足够的日志,只能通过用户描述的现象和代码推理来分析程序的逻辑是否有问题;

9 其他同事找我协助解决问题,对他们的代码完全不熟悉,只能通过分析和排除法来解决;

因为遇到的多数问题不管解决过程多曲折,基本都能得到解决;再加上丰富的写bug和解bug经验,自然而然形成了一套属于自己的解决问题的套路,正好昨天晚上给公司大学生分享这方面的内容,将我自己的套路总结了下:

一 解决问题的流程:

了解问题→定位问题→分析问题→解决问题→验证问题

在解决问题之前一定要弄清楚具体的问题是什么,看到过太多纠结了很久但发现自己所解决的问题并不是测试描述的问题的情况了;

解决bug最耗时的地方在于定位问题和分析问题,这个可以借助“二”中介绍的几种方法。

这套流程不仅仅适用于解bug,同样适用于解决工作和生活中的各种问题。

二 解决问题的方法(排名分先后):

1 借助搜索引擎:

遇到有明显的异常信息,且自己并不熟悉为什么异常时,最高效的解决方法是借助搜索引擎,这里的搜索引擎一定是谷歌,不是百度;借助搜索引擎能解决工作中的大部分bug,你要相信,全世界这么多开发人员,你遇到过的大多数问题其他人也遇到过;

2 打印调试法:

这是最笨但最有效的办法,人会说谎、断点调试可能会说谎,但日志一定不会说谎;

3 二分排除法:

当你遇到随机问题、帮助他人解bug或者遇到自己不熟悉的代码时,通过屏蔽一部分代码,运行观察问题仍然存在,如果存在则进一步分析屏蔽一部分代码,直到定位到有问题的具体位置为止,这种方法能解决工作中的很大一部分疑难杂症;

4 小黄鸭调试法:

当你向某个对象陈述你的思路时,往往会有意想不到的结果,哪怕对方并不是一个生物;断点调试法:受限于效率不高以及在多线程环境下断点调试并不灵,有必要时才考虑用这种方法;通常可以使用打印调试法来代替;

5 线上求助:

包括论坛提问、RTX和微信群提问等;不到万不得已不要用这种办法,在有限的圈子里面,你遇到的一个具体技术问题很有可能其他人并没有遇到过,多数时候问了也是白问,但有时候也可能是一种有效的方法。

很多时候我在想一个合格的开发人员,工作两年和工作一年有什么区别;工作多年与工作一两年又有何区别。得到的结论无非就两个:

工作越久,应该越靠谱,不然你和刚入这行的小伙伴没有任何区别;有一套属于自己的解决问题的方法,遇到任何问题都能够通过自己的套路去解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 测试项目中可能出现的重大bug有以下几种情况: 1. 功能缺陷:在测试过程中发现系统功能无法正常工作或工作异常,无法满足用户需求和预期功能。 2. 安全漏洞:发现系统在设计或实现上存在严重的安全漏洞,导致用户的数据或者隐私受到威胁,有可能被未授权的人访问或修改。 3. 性能问题:测试中发现系统在处理大数据量、高并发或复杂业务场景下出现性能瓶颈,导致系统响应时间延长或者无法处理用户请求,影响用户的使用体验。 4. 兼容性问题:系统在不同操作系统、浏览器、设备等环境下出现问题,无法正常工作或者显示异常,使得用户无法在不同的平台上正常使用系统。 5. 数据完整性问题:发现系统在数据存储、传输、处理等过程中出现数据丢失、损坏或混乱的情况,导致数据的完整性受到破坏,给用户和业务带来重大影响。 6. 易用性问题:测试过程中发现系统在用户界面设计、交互流程、操作操作提示等方面出现问题,导致用户难以理和使用系统,影响用户体验和用户满意度。 以上是测试项目中可能出现的重大bug的一些情况,这些问题的存在会严重影响系统的正常运行和用户满意度,需要测试团队及时修复和改进。 ### 回答2: 测试项目中的重大bug可以包括以下几个方面: 1. 功能bug:即软件或系统无法正常执行所要实现的功能。例如,某个关键功能无法启动、无法实现预期操作或者无法正确输出结果。 2. 兼容性bug:出现在不同的操作系统、设备、浏览器或软件版本中,导致软件在部分或全部环境下无法正常工作。例如,软件在某特定操作系统或设备上无法运行或出现异常。 3. 性能bug:软件在处理大量数据、高并发场景或长时间运行时出现效率低下或其他性能问题。例如,某个关键功能执行时间过长,导致软件响应迟缓或崩溃。 4. 安全bug:软件存在漏洞或不安全的设计,容易遭受黑客攻击或数据泄漏。例如,未对用户输入进行有效的验证和过滤,导致注入攻击或信息泄露。 5. 可靠性bug:软件在长时间运行、异常情况或不稳定环境下出现崩溃、冻结、死锁或数据丢失等问题。例如,软件在特定的测试场景下频繁崩溃。 6. 用户界面bug:软件界面设计不符合用户习惯或者存在视觉缺陷,影响用户体验。例如,界面布局混乱、按钮无法点击或者字体颜色不易识别等问题。 以上是测试项目中可能出现的重大bug类型。及时发现并修复这些bug对于保障软件质量和用户满意度至关重要,因此在测试过程中应严格监控并记录bug,并及时与开发人员沟通合作决问题。 ### 回答3: 测试项目中可能出现的重大bug有以下几类: 1. 功能缺陷:测试项目中的重大bug可能是功能没有按照需求规格书或设计文档中的要求实现,导致系统无法正常运行或功能无法使用。例如,登录功能无效、系统崩溃等。 2. 性能问题:重大bug还可能涉及系统的性能问题,如响应时间过长、内存泄漏等。这些问题会影响系统的整体性能和用户体验。 3. 安全漏洞:在测试项目中,重大bug可能是由于系统的安全设计不当或者代码存在漏洞导致系统容易受到黑客攻击。例如,用户信息泄漏、非法访问等。 4. 兼容性问题:由于测试项目可能在不同的操作系统、浏览器或设备上运行,在不同平台上的兼容性问题可能导致功能无法正常运行,甚至导致系统崩溃。 5. 数据完整性问题:重大bug还可能涉及系统中数据的完整性问题,如数据丢失、数据重复等。这些问题会影响系统的数据准确性和一致性。 6. 用户界面问题:测试项目中的重大bug可能导致用户界面的显示问题,如界面错位、图标显示错误等。这些问题会影响用户对系统的使用体验。 对于测试项目中的重大bug,测试团队需要重点关注其优先级和严重程度,并及时报告给开发团队进行修复。同时,还需要进行详细的复现步骤和错误日志的记录,以方便开发团队查找和修复问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值