5

我们编写了一个 Windows 桌面应用程序,它安装在我们无法访问的几千台计算机上。当其中一个用户报告错误时,即使描述非常详尽,也有其他信息可能会有所帮助。

我们目前正在开发一个自动反馈代理,这意味着我们将可以访问非常详细的信息。但就像糖果店里的孩子一样,我们不知道从哪里开始。 在同一案例中,您会在反馈包中包含哪些信息? 有什么帮助我们重现那里的错误?

到目前为止,我们得到的是:

  • 我们应用的版本号,
  • 操作系统和操作系统版本号
  • 代理信息
  • .NET 版本和更新号
  • 特定于我们应用程序的信息(例如数据版本)
  • 访问和错误日​​志

请注意,这与此问题类似,但是我们对在程序崩溃时获取信息的兴趣不如在用户遇到错误时获取信息的兴趣。

编辑:澄清:不是询问用户在出现错误时应该提供哪些信息,而是我们应该以编程方式收集哪些信息?

4

3 回答 3

4

即使您拥有所有这些信息,重现问题也可能很困难。当用户描述他们如何创建 bug 时,他们经常会误认为关键步骤——当他们不了解应用程序的内部工作时,他们很难知道哪些区域是关键的。您可能希望实现一种跟踪用户操作的方法,例如根级事件处理或其他一些方法 - 如果您具有撤消/重做功能,那么我相信这已经足够了。然后,您可以在错误报告中包含操作链的最后 (x) 步骤。

于 2010-03-01T17:46:24.180 回答
2

编辑:我想我误读了你的问题。我以为您是在谈论从报告错误的客户那里获得什么信息,而不是已经计划了我在这里描述的内容。无论如何,我会留下它以供参考。

在类似的情况下,尽管用户较少,但我们的应用程序有一个“Package logs for support”按钮,它将创建一个包含所有日志文件的 zip 文件,以及当前打开的项目文件(如果有)。您描述的所有其他信息已经是其中一个日志文件的一部分。这样,客户可以方便地将 ZIP 文件发送给我们,这可以从主应用程序窗口完成,而无需打开项目文件或连接到网络接口,这是可能出现问题的两个主要点。这比依靠用户“手动”提供反馈要容易得多。

除此之外,必须提供重现问题的确切步骤。其中大部分通常在项目文件本身中(在我们获得的 ZIP 文件中),只缺少几个步骤。

除了您已经列出的内容之外,似乎对此很重要的事情:

  • 用户/帐户信息。这可能有助于解决权限问题。您可能希望包含时区、语言环境、Windows 主题等内容。
  • 应用程序配置,包括安装位置。
  • 如前所述,用户正在使用的当前文件,因为这可能是问题的原因。
  • 用户设置,即应用程序为每个用户存储的数据。看到这些奇怪的东西。MRU 列表也可能会有所帮助。
于 2010-03-01T17:23:09.933 回答
1

除了应用程序的基本状态(版本、配置等)之外,最重要的信息是:

  • 重现错误或错误所需的步骤,包括尽可能使用的输入
  • 预期输出
  • 实际输出
  • 联系信息以防您需要跟进(如果您的软件被匿名使用)

这将足以解决 99.9% 的问题。其余的,跟进并获取您认为有助于解决问题的任何详细信息(希望此时会更好地理解这些信息)。

于 2010-03-01T17:46:22.807 回答