如何使用“在我的机器上工作”方案进行故障排除

时间:2009-05-08 08:20:48

标签: debugging remote-debugging

很多时候,当您向开发人员报告错误时,他回来说“它在我的系统上运行”,尽管它是一个浏览器应用程序。你如何解决这个问题呢?

8 个答案:

答案 0 :(得分:11)

从培训/流程的角度来看:

训练你的团队知道“在我的机器上工作”并不是一个免于监禁的回复。

拥有automated build server

进行自动化测试部署。

您的开发人员必须知道“工作”被定义为“在测试服务器上工作”,而不仅仅是他们的计算机。

从测试/调试的角度来看:

需要向开发人员显示导致错误发生的一系列操作。

您可能希望捕获显示错误或可能是视频捕获的屏幕截图(使用Camtasia等工具)。人们在描述他们在导致自身出现错误的系统上执行的操作顺序时可能非常糟糕,因此您可以获取有关错误的更多信息以及如何更好地复制自己。

从开发/环境的角度来看:

如果真的有一个错误表现在一个环境而不是开发人员的环境中,那么就会发现它是在没有开发环境的情况下展示自己,还是只展示给你的开发人员。

从中可以看出,尝试减少两种环境之间的差异,以便开发人员可以在他的机器上看到问题。

或者您可以采用其他方式尝试在生产(非开发)环境中调试问题。

这些实施细节因平台而异。

答案 1 :(得分:5)

您需要尽可能多地向开发人员提供信息。甚至你认为不合适的东西也是相关的。

我无法计算报告问题并且无法重复的次数,只是为了稍后找出用户最初未包含的信息,但却是解锁问题的关键难题。

你也不需要接受这个答案,并说“你的设置和我的设置之间必须有所不同,我们做什么来解决它”。

答案 2 :(得分:2)

我们通过在本地开发之上建立一个开发环境来处理这个问题,该开发环境在设置,硬件等方面尽可能接近生产系统。因此,生产环境中几乎所有问题都会发生即使它们无法在本地开发者机器上复制,也可在该开发系统上重现。

答案 3 :(得分:2)

这是我从团队中遇到的一种常见的逃避现实的反驳。我的回答通常是:“你知道,你的系统不是生产服务器,而是它需要工作的地方”。换句话说,这个借口是不可接受的。

我还向他们表明了可能性:

一个。本地系统和服务器之间存在配置差异。

湾服务器上未更新某些功能的依赖项。

℃。他们还没有清除浏览器缓存。

d。我在Staging服务器上复制问题并向他们演示。

即......依此类推。

答案 4 :(得分:0)

尝试尽可能重新创建发现bug系统的用户:从服务器配置到机器配置,包括浏览器和操作系统等。在发布之前,您可能应该有几种不同的设置来测试您的应用程序。

答案 5 :(得分:0)

IE Tester是进行此类故障排除的好工具。如果您需要测试大量浏览器,那么Virtual PC等虚拟机是最好的选择,因此您可以在测试服务器上安装许多客户端。

答案 6 :(得分:0)

是啊......这本书中最古老的借口。

假设开发人员和测试人员都在同一台服务器上进行测试,我会尝试通过识别开发人员机器和测试人员机器之间的区别来隔离错误。可能是像Flash版本,浏览器差异或忘记清除浏览器缓存的次要内容

我还建议在专用测试服务器上使用自动化测试框架和测试应用程序。

答案 7 :(得分:0)

作为最终用户,您可以做的不多,但作为开发人员,您可以通过在系统中包含大量日志记录来避免很多这些问题 - 用户会想到的差异只是您拥有的简单内容已经测试过,但良好的日志记录可以让您准确了解系统出现故障时发生的情况。我发现了一些不可能以这种方式发生的错误。