1

我将创建一个可供数百名顾问使用的典型业务应用程序。通常,顾问会收到带有标准文本的错误消息。由于该应用程序将是一个复杂的应用程序,并且不断对其进行大量更改,因此我想要以下内容:

当出现错误消息时,用户可以选择将错误消息“发送”给开发人员。开发人员应该能够在ie Eclipse 中打开传入的文件,并逐步调试最后10 分钟的工作步骤(如果他们愿意,可以一次一行)。一切都应该是透明的,这意味着他们应该能够看到调用数据库的返回值。

今天有没有提供这种功能的解决方案,我的首选语言是 Python 或 Java。我知道这样的功能会对性能造成巨大的影响,但这是可以接受的,因为这种软件对性能不敏感。

如果数据库也有一个 cronology 会非常好,这样人们就可以在数据库中查询在应用程序中运行特定代码行的确切时间存在的值,从而导致错误。

4

1 回答 1

2

您应该尝试使用日志记录,例如从数据库提交日志并记录用户与应用程序的交互,如果它是一个 Web 应用程序,您可以从 Web 服务器的日志文件开始。确保日志文件包含所有提交的数据,例如带有参数的完整 GET url 和带有实体主体的 POST。您可以将 Web 服务器配置为在必要时生成此类日志。

然后您构建一个可以解析日志文件并重新创建导致问题出现的所有用户交互的测试客户端。如果您怀疑竞争条件,您应该以高精度(毫秒分辨率)记录并确保测试客户端可以一遍又一遍地运行相同的序列以强调那些关键部分。

重播(正如您的标题所暗示的)是重现错误的最佳方式,只需收集重新创建生成特定状态/情况的输入所需的所有数据。不要专注于内部结构和返回值,当涉及到寻找错误或错误时,你不应该在取证模式下工作,例如试图通过分析残骸来分析坠机原因,你应该让飞机坠毁并且再次添加越来越多的日志记录/或使用调试器,直到您知道出错为止。

于 2010-03-24T12:03:18.950 回答