假设发现了一个难以复现的bug 你会如何启动调试和定位疑问

1. 记载环境信息

操作系统:记载出现疑问的操作系统版本。阅读器版本:记载用户经常使用的阅读器及其版本。网络环境:记载用户的网络状况,如带宽、提前等。配件性能:记载客户端的配件性能。系统性能:记载主机端的性能,包含操作系统、数据库、两边件等。

2. 记载操作步骤

详细步骤:记载造成 bug 出现的详细操作步骤,包含点击的按钮、输入的数据等。期间点:记载 bug 出现的期间点,以及之前的操作历史。用户角色:记载用户的权限和角色,由于不同角色或者有不同的操作权限。

3. 搜集意外信息

失误信息:记载完整的失误信息和堆栈跟踪。日志文件:搜集主机日志、运行程序日志、阅读器控制台日志等。屏幕截图:截取出现 bug 时的屏幕截图或录制视频。网络恳求:经常使用阅读器开发者工具记载关系的网络恳求和照应。

4. 其余高低文信息

用户行为:记载用户的操作习气和经常使用形式。其余运转的运行程序:记载同时运转的其余运行程序或服务。系统形态:记载系统在疑问出现时的形态,如内存经常使用状况、CPU 经常使用率等。

1. 依照记载的操作步骤

严厉依照记载的步骤:尝试在相反的环境中依照记载的操作步骤重现疑问。屡次尝试:多试几次,观察疑问能否稳固出现。

2. 尝试不同环境

不同阅读器:在不同的阅读器上尝试复现疑问。不同网络条件:在不同的网络条件下尝试复现疑问。不同用户角色:经常使用不同的用户角色和权限启动测试,看能否能复现疑问。

3. 经常使用智能化工具

录制和回放:经常使用智能化测试工具(如 Selenium、Cypress)录制用户的操作并回放,看能否能复现疑问。压力测试:经常使用压力测试工具(如 JMeter、LoadRunner)模拟高并发状况,看能否能复现疑问。

1. 检查系统日志

主机日志:检查主机的日志文件,特意是失误日志和调试日志。运行程序日志:检查运行程序的日志文件,寻觅或者的线索。数据库日志:审核数据库的日志文件,看能否有关系的 SQL 失误或性能疑问。

2. 剖析代码

主要门路:重点审核与 bug 关系的主要门路代码。边界条件:审核代码中的边界条件处置,确保没有遗漏。第三方库:审核经常使用的第三方库能否有已知的疑问或更新。

3. 经常使用调试工具

IDE 调试:经常使用 IDE 的调试性能(如 IntelliJ IDEA、Visual Studio Code),逐渐口头代码,观察变量和函数调用的状况。远程调试:假设疑问出当初消费环境,可以思考经常使用远程调试工具(如 Visual Studio 的远程调试性能)。性能剖析:经常使用性能剖析工具(如 New Relic、Datadog)来查找潜在的性能瓶颈或资源走漏。

1. 分段测试

模块隔离:将系统划分为多个模块,一一模块启动测试,确定哪个模块存在疑问。性能隔离:将系统划分为多特性能模块,一一性能启动测试,确定哪特性能存在疑问。

2. 二分法

代码宰割:将可疑的代码段分红两局部,区分测试,逐渐增加疑问范畴。数据宰割:假设疑问是由于特定的数据惹起的,可以将数据分红两局部,区分测试,逐渐增加疑问范畴。

3. 单元测试

编写单元测试:针对可疑的代码编写单元测试,逐渐验证每个函数的行为。笼罩率:确保单元测试笼罩了一切或者的门路和边界条件。

1. 与开发人员沟通

分享现象:详细形容疑问的现象和已知信息。探讨思绪:与开发人员探讨或者的要素和处置打算。独特调试:约请开发人员一同介入调试环节,独特处置疑问。

2. 与产品经理沟通

需求确认:确认成性能否合乎产品需求。优先级:探讨疑问的重大性和修复的优先级。

3. 与其余测试人员沟通

阅历分享:与其余测试人员分享疑问的现象和已知信息,看看他们能否有相似的阅历。单干测试:组织多人同时启动测试,参与复现疑问的时机。

4. 与现场实施人员沟通

失掉现场信息:与现场实施人员沟通,失掉更多对于疑问出现的背景信息和用户反应。远程允许:经过远程桌面工具(如 TeamViewer、AnyDesk)衔接到客户现场,间接观察疑问。日志搜集:指点实施人员如何搜集详细的日志文件,并提供必要的技术允许。

5. 与客户沟通

了解详细状况:与客户间接沟通,了解他们在经常使用环节中遇到的详细疑问和场景。搜集反应:搜集客户的反应和倡导,以便更好地理解疑问的背景和影响。

您可能还会对下面的文章感兴趣: