【CSDN 编者按】这篇文章探讨了软件开发中常见的问题:无法在开发者的机器上复现用户报告的 bug。文章强调了开发者应该承担起责任,努力追踪问题,而不是强迫用户证明 bug 的存在。文章提出了解决 bug 的双管齐下的方法,强调了用户行为和沟通在 bug 解决中的作用,介绍了解决 bug 的工具和技术,讨论了并发问题,并分享了一些实际的调试案例。
原文链接:https://dev.to/codenameone/cant-reproduce-a-bug-3l56
未经允许,禁止转载!
作者 | Shai Almog 译者 | 明明如月
责编 | 夏萌
出品 | CSDN(ID:CSDNnews)
“在我的机器上可以运行”这一说法虽然听起来有趣,但实际上反映了开发领域中一种普遍存在的态度,也就是只有当用户证明了 bug 的存在,我们才会对其给予关注。实际上,我们必须主动承担责任,深入调查问题,不论它会引导我们走向何方。
双管齐下解决 bug解决 bug 需要采用双管齐下的方法。首先,我们要设法在与用户相同的环境中复现出可能只在用户电脑上才出现的问题。此外,我们还可能需要远程调试或利用用户计算机的日志,甚至可能请求他们替我们执行某些操作。
几年前,我曾尝试复现用户报告的一个 bug ,但即便我采用了相同的 JVM 版本、操作系统、网络连接等,仍未能找到该 bug。最终,用户发来一段展示缺陷的视频,我这才注意到了他在用户界面中特殊的点击方式。这揭示了一点:出现 bug 的过程不仅与计算机硬件有关,有可能会涉及到用户的具体操作。
用户行为与沟通在解决 bug 中的作用我们需要尽可能地还原用户的操作行为,才能重现 bug 。通过视频来记录操作可以有助于我们实现这个目标。此外,理解复现环境中的细微差异及与能够重现问题的人进行开放、明确沟通都是不可或缺的部分。
然而,沟通的过程可能会遇到障碍。有时候,报告问题的人可能是支持部门的员工,而我们却是研发部门的。有时候,客户的不满情绪可能会导致沟通中断。因此,我认为将研发部门与支持部门整合是确保问题顺利解决的关键所在。