您如何解决不可重现,随机且无法立即测试的问题?

时间:2010-12-16 15:55:43

标签: testing diagnostics

以为我会把这个扔出去看看其他人的经历是什么样的。

我遇到了一个系统问题,它停止处理队列中的作业,可以说是“堵塞”。重新启动服务后,软件会处理队列,一切都恢复正常。

根据我的经验,到目前为止,我不能为我的生活找出导致这些停工的原因。那,我自己无法重现停工。队列在所有不同的时间间隔失败,有时连续运行一个月,其他时间在1天内两次失败。我已经涉及到两个不同的供应商和部门内的各个同事,每个人都很难过,已经有几个月了。

自从我开始以来,我们已将处理隔离到单个服务器并启动了我们发送给供应商的日志记录。都不知道问题是什么。

我们已经更新了一些设置,升级了客户端和服务器部分,但我们不知道我们正在做的事情是否有助于整体解决方案。

所以我有一个问题,似乎是不可复制的,随机的和不可测试的。

有没有人参与任何类似的情况? 有什么方法可以解决这种情况?

任何共享输入或体验都会很棒。

干杯,

编辑::开始记录日志,将所有组件更新到最新版本,并确保已经完成了正确的防病毒排除,并且到目前为止它已经超过一个月没有堵塞!

2 个答案:

答案 0 :(得分:2)

使用可在生产中启用的日志记录框架。您最初可能必须进行太多日志记录,但它应该有助于缩小问题范围,并且当您靠近时,您可以缩小日志记录的范围,同时增加剩余日志语句的详细程度(就是一个单词)。

答案 1 :(得分:0)

除了Kelly所指出的日志记录外,还有可能发生僵局,因为事情似乎停止了。如果这是一个Java应用程序,则一个选项是使用jconsole并连接到JVM实例。 jconsole有一个检测死锁选项,可以在发生挂断时提供非常有价值的信息。

如果这不是Java应用程序,也许是.NET应用程序,您可以使用此technique