利用错误跟踪进行质量监控
在上一期“软件质量深度防御”系列文章中,我们探讨了有效的规划如何帮助您及早控制质量风险。这是对抗缺陷的最早防线之一。这次,让我们来看看最后一道防线:通过错误跟踪来监控软件质量。
在本文中,我们将探讨错误跟踪解决方案的重要性、它们在软件质量中的作用以及如何有效地使用它们。
我们还会谈到典型的设置和监控,并了解一些比较流行的错误跟踪服务,但本文的重点更多地在于错误监控的概念及其在开发生命周期中的作用。
问题
我们在软件发布到生产环境之前会花费大量时间编写和测试软件。那么,代码投入生产环境后,我们究竟花了多少时间来监控和确保软件质量呢?
根据我的经验,很多组织在发布代码时都没有主动监控计划。当然,我们有支持部门,也有客户报告问题的渠道,但到那时通常已经为时过晚,无法解决问题了。
这么说吧——如果你新部署的代码出现了严重问题,你是想在支持工单如潮水般涌来时从服务台经理那里得知,还是想尽快知道?
引入错误跟踪
错误跟踪软件顾名思义,就是用来跟踪应用程序错误的。您可以将此软件视为一个集中式的错误或日志收集服务,用于收集发生在各种位置的事件,包括:
- 您的 Web 服务器
- Web浏览器执行的JavaScript
- 移动应用
- 桌面应用程序
- 自动化控制台应用程序或服务
通过引入单一的错误信息收集解决方案,您可以在一个集中式平台上监控各种应用程序。这些产品通常基于 API,并提供管理和监控用户界面,该界面以 Web 应用程序的形式呈现,也可能包含配套的移动应用程序。
错误收集与分类
一旦发生错误,系统会将错误报告给错误跟踪服务,该服务会将错误详情存储在其内部数据库中。系统会查找类似错误并自动将错误分组,从而帮助您跟踪问题并确定其优先级。
跟踪系统会以您配置的任何方式提醒您——从电子邮件和 Slack 消息,甚至自动在 Jira 或其他跟踪系统中创建新的工作项。
用户界面将允许您查看未解决的异常,获取有关它们的信息,并查看它们的发生频率以及它们首次出现的日期。
我要强调的是,为了正确使用错误跟踪系统,贵公司必须制定一套流程来对收到的错误进行分类处理。我建议采用轮班制,工程师在各自负责的日期或周查看新出现的错误,并确定是否需要采取进一步措施。
如果未能妥善追踪和分类处理收到的物品,它们就会变成噪音,沦为日常工作的一部分。错误绝不应该被接受,更不应该被忽视。
通常情况下,系统允许您分配、合并错误并将其标记为已解决,这有助于问题分类处理。如果系统检测到错误再次出现,或者在应用程序的新版本中再次出现错误(前提是系统已配置为跟踪您的部署),则系统通常会重新打开这些错误。
错误详情
错误跟踪中可获取的信息量非常丰富,这是采用此类系统的一个关键原因。
通常情况下,您可以获得有关错误所涉及的浏览器、操作系统、设备和/或 Web 请求的各种数据(当然,这取决于发生错误的应用程序类型)。
这个额外细节可以帮助您确定问题是影响的是大量用户还是仅影响特定用户。它还可以识别出遇到问题的具体浏览器。后一种情况在客户端 JavaScript 问题中极为常见,因为并非所有浏览器都支持所有 JavaScript 功能(通常需要使用polyfill 或 shim )。
使用建议
我建议您在所有定期在生产系统上运行或即将投入生产的系统中采用错误跟踪解决方案。
我建议您尽可能将错误日志记录管理放在一个单独的外观类中,并让其他代码调用该外观类。这样,您就可以更一致地切换不同的供应商或包含全局数据。
我建议您将错误日志记录设置为可配置,通过配置标志完全禁用向跟踪系统发送错误,并通过配置设置存储跟踪系统提供的 API 密钥。
我还建议您在测试环境中保持错误日志记录,因为常规使用可以检测到一些测试人员可能看不到的底层错误。
因此,我建议在将任何代码推送到生产环境之前,先查看测试中记录的错误。
不同的错误跟踪解决方案
好了,既然我们已经讨论了这些解决方案是什么以及它们如何融入您的日常工作流程,那么让我们简要地看一下市场上的一些主要参与者。
- Raygun是一款高端错误跟踪服务,拥有简洁流畅的报告和图表功能。它的真正价值在于结合用户跟踪和应用程序性能监控功能,从而能够全面了解网站的性能和行为。
- Rollbar是一款基于 Web 的异常跟踪服务,提供低流量的免费月度使用套餐。Rollbar 支持多种语言和环境,并提供大量开箱即用的数据。
- Sentry——另一款基于网络的异常跟踪服务。我的一些前同事对它赞不绝口。
- Log Rocket – 一款新兴的错误跟踪解决方案,为基于 Web 的异常提供了一些有趣的错误重放功能。
- AirBrake——另一个重要的网络服务。我还没有详细研究过它。
- OverOps——又一个我之前没用过的有趣工具。它拥有美观的仪表盘和一个非常有趣的性能趋势功能,可以帮助你识别速度明显较慢的方法。
- New Relic——严格来说,它更像是一款应用程序性能监控工具,但New Relic也能追踪错误。不过,通常情况下,你需要使用其他工具才能获得每个错误的详细信息。
- 云端专属解决方案(Azure Monitor、AWS CloudWatch)——这些解决方案已集成到您可能已经在使用的云服务中。对于已在云端部署的组织而言,这是一种轻松采用错误监控的方法。
今年年底我会写更多关于Raygun 的文章,所以如果您想深入了解如何配置异常日志记录,请继续关注。
建议
我建议您仔细查看以上选项,并根据您使用的语言和部署的应用程序类型,找出最适合您需求的选项。
不妨免费试用其中一两款工具,看看它们能告诉你关于你的应用程序和流程的哪些信息。
我可以根据我的经验告诉你,第一次打开开关看到应用程序里所有的问题时,那种感觉糟透了。但是,一旦你度过了最初的解决问题的过程,使用这些工具就可以从一开始就防止缺陷通过预览或测试环境,或者为你提供重现棘手错误所需的额外细节。
从客户服务的角度来看,系统中记录的错误可以让你减少客户联系你解决问题时需要提供的数据,因为在你联系他们之前,你可能已经掌握了所有需要的信息,并且正在着手解决问题。
试试看,然后告诉我你的想法。如果你了解我提到的某些解决方案但还没试过,或者知道我没提到的其他方法,请告诉我!
本文《利用错误跟踪监控质量》最初发表于Kill All Defects网站。
文章来源:https://dev.to/integerman/monitoring-quality-with-error-tracking-ohi