3

编写一个高质量的软件应该是第一步。现在这是一个移动的目标。(我们有一些类似https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysis的东西。我们也具有类似于某些选定客户的回归测试套件和测试环境。)无论我们做什么,都存在只有客户才能看到并遇到崩溃/错误的情况。有时他们只是有性能问题。有时是崩溃,有时是应用程序对象模型错误。

一般来说,我怎样才能减轻疼痛?我怎样才能从这种情况中获得大部分(数据)?当问题第一次和第二次出现时,什么样的编码/架构步骤可以帮助获取更多信息?

以下是起点:

良好的日志记录: log4j 是起点。用户应该能够轻松更改文件。提供一个小的 gui 来编辑这样的文件会更好。(我们的日志配置位于 Windows 7 中的 c:/Program Files/ 区域;对于普通用户而言不容易进行编辑 - 需要神奇的“以管理员身份运行”选项。)。

堆转储:当内存不足时转储堆。

自动提交错误报告: Firefox、intellij 等就是很好的例子。不确定是否有现成的库。

JMX:对于服务器应用程序,这似乎非常有用。我从来没有用过它。

检测系统要求的工具: 我还没有做。

自动升级能力:

我们的主要是与服务器交互的java桌面应用程序。我想我们可以采取更多步骤,直到我们获得所需的质量:)

4

2 回答 2

1

对于服务器应用程序,请考虑使用像Dynatrace(非免费但很好)这样的工具来半实时地查看您的代码。

与您的问题不完全一致,但通常会尝试在错误到达 GA 之前通过FindBugsSonar等工具找到错误。

我不知道自动错误提交库,但一个快速的 RESTfull Web 服务很容易构建一个非常有价值的。

抱歉,这不是一个过于完整的答案,而是我多年来收集的一些内容。

于 2011-06-11T15:02:24.277 回答
1

几个建议:

  1. 在向客户推出产品之前进行良好的 QA,包括性能和负载测试。
  2. 足够/适当的客户端和服务器端日志记录,以便在问题发生时帮助诊断问题。
  3. 对(测试版)客户进行错误编写指南的培训。这可能包括从帮助 | 获取发布信息。关于,包括重现问题的精确步骤、屏幕截图和日志信息。当报告不完整时,诊断问题要困难得多。
  4. 许多问题是特定于数据的,需要客户数据的副本才能重现。如果可能,维护包含客户数据/配置的测试环境。
于 2011-06-11T15:07:30.077 回答