偶尔,尽管进行了所有测试,我还是收到了客户的错误报告,而我根本无法在办公室重现该错误报告。
(Apologies to Jeff http://www.codinghorror.com/blog/archives/000818.html for the 'borrowing' of the badge)
我有一些“工具”可以用来尝试定位和修复这些问题,但总感觉有点像我在刀叉:-
- 向客户询问越来越多的背景信息:(systeminfo)
- 我们的应用程序中的日志文件
- 与客户进行临时测试,尝试改变其行为
- 为客户提供具有附加诊断功能的新版本
- 洗澡的时候想着问题……
- 实地考察(假设客户在温暖且阳光明媚的地方)
是否有固定的程序或其他技术来解决此类问题?
我认为优秀调试器的属性之一是他们的工具包中总是有很多武器。他们似乎永远不会被“卡住”太久,而且总是有其他的事情可以尝试。我已知会做的一些事情:
- 请求内存转储
- 在客户端计算机上安装远程调试器
- 将跟踪代码添加到构建中
- 添加日志记录代码以进行调试
- 添加性能计数器
- 将配置参数添加到各种可疑代码中,以便我可以打开和关闭功能
- 重写和重构可疑代码
- 尝试在不同的操作系统或计算机上本地复制问题
- 使用应用程序验证器等调试工具
- 使用第三方负载生成工具
- 当上述方法失败时,在内部编写模拟工具来生成负载
- 使用 Glowcode 等工具来分析内存泄漏和性能问题
- 从头开始重新安装客户端计算机
- 获取注册表转储并在本地应用它们
- 使用注册表和文件监视工具
最终,我发现这个错误只是出于对我的坚持的某种敬畏而放弃了。或者客户端意识到这可能是机器或客户端安装或配置问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)