错误跟踪方法

时间:2010-01-05 14:39:07

标签: debugging language-agnostic error-handling

我正在为一家从未提交错误报告的公司开发软件,这是唯一的抱怨,“因此而且不起作用。”有时我可以弄清楚他们在谈论什么,有时候不会。我对屏幕截图和更多细节的请求充耳不闻(一旦他们拍了截图,然后将其打印出来,用传真机扫描并通过电子邮件发送给我的老板作为TIFF)。

我有几种方法可以提供我需要的数据。 以下是我采取的步骤:

  • 一个错误跟踪器,他们可以在其中输入错误(只输入一个)
  • 错误记录。每次发生错误时,它都会将其写入日志文件,由NLog提供
  • 程序试着捕捉它记录异常的初始方法。
  • 当发现意外异常时,我会截取该程序的截图。
  • 记录对所有表单的访问,并在某种程度上记录他们正在执行的操作。 (虽然这通常只有在成功时才有效)

我可以采用哪些其他方法来捕获错误,并收集更多有关它们的数据,以便我知道如何重现它们?

11 个答案:

答案 0 :(得分:5)

公平地说,听起来你肯定做得很好,你已经实现了软件,你正在积极记录错误,你几乎没有选择。

我计划召开正式会议,讨论错误跟踪的重要性 - 为什么需要实施,以及当前系统失败的原因。向他们解释这是如何减慢你的工作 - 意味着金钱丢失。

教育他们,他们会关注。而不是“那些想让我们花费数小时在一些随机软件上的讨厌的开发人员”,你将“那个积极提出新问题和问题解决方案的开发人员找到并采取正确的措施来纠正这种情况“。


在回复你的评论时说你“只是一个实习生” - 这应该是无关紧要的。你有权解释你的意见,特别是如果它能拯救你的,以及其他人的时间,金钱和努力。与上司交谈,让他们安排会议,它会显示主动性,关心和繁荣 - 他们应该欣赏的三个主要因素。

答案 1 :(得分:3)

如果您有错误跟踪软件,请使用它。即使您只是输入用户告诉您的信息,也只是一个开始。告诉他们如果没有如何重现的细节,就无法修复错误。此外,您的所有同事和测试人员应该自己使用错误跟踪软件。

答案 2 :(得分:2)

使用监督应用程序的“主管”并记录有关它的上下文信息,例如它使用的内存量,主机中可用的内存量,打开的文件数等。

可能有助于了解应用程序何时崩溃以及(当然)没有时间记录的数据。

答案 3 :(得分:1)

听起来您需要教育您的客户如何就发现的问题或请求与您进行适当的沟通。我最近要求我们的一位客户购买SnagIt。这是一个工具,可以轻松获取,注释和通过电子邮件发送屏幕截图。

https://store.techsmith.com/order/snagit.asp

要有耐心,并与他们(个别)合作以改善沟通。

答案 4 :(得分:1)

他们是客户,而不是贵公司的一部分。有一种说法“客户永远是对的”。作为客户,他们可能会觉得您过多地要求他们使用您的错误跟踪方法和工具来让您的生活更轻松。

但更大的问题是 - 您的软件是否有太多错误?他们不满的部分原因可能在于软件的质量!你刚才提到的try-catch循环似乎表明了这一点。

提高软件质量。

  1. 您是否拥有与开发环境分开的测试环境,在交付给客户之前,您需要对所有软件,方案,单元测试,自动测试,手动测试进行全面测试?

  2. 您的测试人员的唯一目的是测试软件吗?

  3. 您是否为测试人员提供了一套记录的测试和测试计划?

  4. 您是否对所有鳕鱼都进行了自动化单元测试?

  5. 您是否有编码惯例和标准,要求/设计惯例和标准,测试/测试计划惯例和标准,SDLC的过程,根本原因分析?

  6. 您有同行评议吗?

  7. 您是否有检查以确保在转移到测试/生产环境之前解决同行评审中的所有问题?

  8. 所有这些都可能减少软件缺陷的数量,让客户更快乐,这才是真正的主要目标。


    现在,关于你原来的问题。

    显然他们不喜欢使用错误跟踪软件。所以,你必须积极主动,并遵循以前海报的建议。听起来这正是你正在做的事情,你已经采取了一些很好的步骤来做到这一点。你走在正确的轨道上了!

    1. 改进您的日志记录,以便您可以在事后获取信息。你这样做了。

    2. 如果可能,您还应该进行远程访问,这样如果他们可以复制错误,您就可以看到发生了什么。

    3. 如果他们向您公司的联系人发送有关错误的信息,那么该人必须确保(通过自己做或从属于代表(我的猜测是你的老板是联系,你是代表:))输入错误与所有相关信息。

    4. 理想情况下,您可以使用一种模式捕获用户交互,并通过播放功能重现该错误。

    5. 你可以安装一个视频摄像头并记录他们正在做什么,所以如果他们调用一个bug并且能够重现它,你就可以确切地看到它们是什么。

答案 5 :(得分:0)

几年前我在工作场所遇到过类似的问题。基本上这一切都归结为公司政策。一旦你知道你找到了正确的工具,比如正确的bug跟踪器软件(我们使用Redmine,顺便说一句),你必须强制使用它们。

在我的工作场所,我不得不与我的老板讨论这件事,解释了有关这些工具的每一个重要细节,展示了他们如何在测试服务器上工作,并指出它如何节省时间,神经和降低成本。

之后我们召开了一次大型会议,与所有相关人员(特别是测试人员)进行了长时间的讨论,然后决定了如何以及何时使用所选工具。现在,我们的一个政策是:如果它不在错误跟踪器中并且有合理的文档记录 - 最重要的是可重现,它不是错误,也不会得到修复

每个人都花了一些时间来适应新的工作流程,但现在没有人想错过有关错误,夜间构建和我们每日“咖啡回合”的电子邮件通知,我们在这里有一些关于即将发生的事情以及优先事项的闲聊改变。

希望有所帮助。

答案 6 :(得分:0)

在应用程序本身的每个表单/页面上放置一个按钮。它应该突出显示在某个地方。当他们点击按钮时,让他们填写一个文本框,说明问题所在。

不要让他们对错误进行优先排序或分类。它应该只是允许他们在一个字段中键入他们想要的任何内容。您的应用应收集您认为必要的所有信息,并将其提交给您的错误跟踪系统。在那里,你做其余的事情..

答案 7 :(得分:0)

您可以通过多种方式监控应用程序崩溃(.Net Specific) Windows和Web应用程序      1.在其Global.asax.cs文件中,在Application_Error方法下将日志写入文本文件,以便您可以使用堆栈跟踪和所有内容对异常进行排序。      2.在.net环境以外的常见场景中,您可以构建一个通用方法,以便在遇到异常时可以调用它来编写日志,这意味着每次尝试捕获或者是否提供了任何平台。

或者,如果您不想编写日志,并且正在Windows环境下工作,那么您可以转到事件查看器并使用其转储过滤掉您的应用程序崩溃。

Nlog也是一种很好的登录方式。

对于提交和修复错误,您可以使用Trac跟踪和修复问题,以便不需要打印/传真。一切都在线,免费,快速。

希望它会有所帮助

答案 8 :(得分:0)

按照此操作进行异常记录

  1. 发生错误的表单/页面
  2. 事件/方法
  3. 日期/时间
  4. 其堆栈跟踪
  5. 错误消息
  6. 一些错误代码
  7. 用户
  8. 行号(如果可能)

答案 9 :(得分:0)

我们使用rt进行用户错误报告,我的意思是用户报告他们发现的错误,当然不报告用户错误。关于rt的简洁之处在于它可以简单地作为电子邮件地址呈现给用户。说明尽可能简单:找到错误,发送电子邮件。根据我的经验,这比Trac,Bugzilla和其他所有产品都要简单得多。他们的各种方式都很好,但对于大多数用户来说,他们看起来都很像计算机填充表格。

答案 10 :(得分:0)

我会从DisgruntledGoat的答案中走得更远,并说公司中与客户有联系的任何人都应该了解错误跟踪工具,并且应该输入用户报告的问题。这意味着销售代表,项目经理,客户支持等......

这些人可以从拥有更快乐的客户中获益良多。起初,你可能需要做一些手握。但是当他们意识到报告的最佳问题得到更快解决并帮助他们带来更多的销售/更少的工作时,你会发现错误报告的质量会提高。