无知是福,但是在处理软件bug的时候,这句话并不适用。

  软件质量专家会告诉我们,那些努力找出bug并且提高软件质量的公司可以得到客户更多的信任,得到更高的利润,降低开发和维护的费用,简化交付的流程,同时还可以避免客户的流失。

  软件质量是个大工程

  如果你觉得软件质量没有什么大不了的,那么来看看Capers Jones在2011年6月软件质量杂志上发表的文章(这份杂志由美国质量协会主办):

  ● 高质量软件的发布周期比低质量软件短15%。

  ● 高质量软件从第一个版本发布到之后五年的周期里花费的总费用比低质量软件低30%。

  ● 高质量软件每年的维护费用比低质量软件低40%。

  ● 规模越大的软件,质量越是一个重要的因素。

  根据Jones的观点,软件测试在查找bug时的有效性有限,还不到35%。

  考虑到软件质量对公司业务的影响,开发团队都在寻找新的提高软件质量的方法。其中有前景的方法是自动化错误报告(Automated Error Reporting),这种方法以用户为基础来确定软件的错误和异常。

  我们的目标是让错误报告变得易用、完整和可自定义

  有许多让用户参与到软件纠错当中的方法,比如邮件和论坛社区,自定义的软件功能,Windows Error Reporting(WER)和各种现成的解决方案。

  但是这些方法都不一定比自动错误报告有效:有的方法会让用户承担过多的责任;有的方法不能收集到精确的信息;有的方法不能捕捉关键的特征,如变量运行时的赋值可能是一种关键特征;有的方法不能把错误提交到通用的错误跟踪系统里面。

  我们的目标是让错误报告变得易用、完整和可自定义,这要求用户可以方便地提交错误报告,开发人员也可以方便地理解错误报告。这可不是一件简单的事情,每个错误报告都应该包括完整的堆栈追踪信息和有助于查找、修复bug的上下文信息。自动错误报告还应该可以和bug追踪工具整合在一起。

  Andrew Neville表示:“自动化错误报告让用户可以十分方便地提交错误报告。只要用户按发送键,我们可以收到修正错误所需的所有信息。使用了自动化错误报告之后,我们让用户可以更方便地与我们沟通。”Andrew Neville是Neville&Rowe的一名软件工程师,在Red Gate的SmartAssembly中使用了自动化错误报告,从而使商业智能分析软件ImpactEdge可以很好地追踪bug。

  认识自动化错误报告

  自动化错误报告的价值在于让开发团队了解到未知异常的详细信息。它从五个方面为软件开发带来了好处:

  1、它为用户提供了一种有效的反馈途径,增加了用户和开发团队之间的沟通效率。

  2、它让开发团队了解到哪些bug是容易发生的,让开发团队可以根据事实情况而不是猜测来修正bug。