Bug 跟踪

国际象棋皇后被倒下的棋子包围

什么是错误跟踪?

错误跟踪是在软件测试期间记录和监控错误或故障的过程。它也称为缺陷跟踪或问题跟踪。

大型系统可能会有成百上千或成千上万个缺陷。每个缺陷都需要进行评估、监控和优先排序以进行调试。有时可能需要长期跟踪错误。

“缺陷跟踪是软件工程中的一个重要过程,因为复杂的业务关键型系统可能会存在数百个缺陷,”Tutorials Point 表示。“其中一个具有挑战性的因素是管理、评估这些缺陷并确定其优先级。缺陷的数量会随着时间的推移成倍增加,为了有效进行管理,使用缺陷跟踪系统可以使工作变得更加简单。”1

高速公路鸟瞰图

在云端保持清醒头脑 


获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。

错误跟踪的工作原理

当应用程序或程序未按照其应有的方式运行时,就会出现软件错误。大多数错误或失误都是由系统架构师、设计人员或开发人员造成。测试团队使用错误跟踪来监视和报告应用程序开发和测试过程中出现的错误。

“错误跟踪系统的一个重要组成部分是记录已知错误相关实际信息的数据库,”维基百科表示。“实际信息可能包括报告错误的时间、错误的严重性、错误的程序行为和重现错误的详细信息,以及报告此错误的人员和可能正在修复此错误的任何程序员。”2

在其生命周期中,一个缺陷可能会经历多个阶段或状态。其中包括:

  • 活跃:调查正在进行中
  • 测试:已修复并可进行测试
  • 已验证:经质量保证 (QA) 重新测试和验证
  • 已关闭:QA 重新测试或确定并非缺陷后关闭
  • 重新打开:未修复并重新激活3

错误根据优先级和严重性进行管理。严重性级别有助于确定问题对产品发布的相对影响。这些分类的数量可能有所不同,但它们通常包括以下某种形式:

  • 灾难性:导致软件完全故障或无法恢复的数据丢失。没有解决方法,产品无法发布。
  • 功能受损:可能存在替代方法,但并不理想。软件无法发布。
  • 非关键系统故障:有合理、满意的解决方法。如果错误已记录,则产品可能会发布。
  • 轻微性:有解决方法或可以忽略该问题。不会影响产品发布。

通常,状态和严重性级别在错误跟踪数据库中进行监控。一个好的跟踪平台还可以与更大的软件开发和管理系统相结合,以更好地评估错误状态以及对整体生产和时间表的潜在影响。

IBM DevOps

什么是 DevOps?

Andrea Crawford 阐述了什么是开发运维、开发运维的价值,以及开发运维实践和工具如何帮助您完成从应用程序构思到生产的整个软件交付管道。本课程由 IBM 资深思想领袖主导,旨在帮助企业领导者获得所需的知识,以优先考虑能够推动增长的 AI 投资。

为什么错误跟踪很重要

据估计,软件开发人员的每千行代码会存在 100 到 150 个错误。4根据 IT 软件质量联盟 (CISQ) 的一份报告:“即使这些错误中只有一小部分(比如 10%)是严重的,那么相对较小的 20,000 行代码应用程序将出现大约 200 个严重的编码错误。”5

软件测试对于隔离和减少错误至关重要。一个良好的 QA 流程可以发现数百甚至数千个缺陷,而测试团队需要管理所有这些缺陷。将错误跟踪整合到测试工作流程中,可通过帮助测试人员确定每个错误的优先级、监控和报告每个错误的状态来提高效率。

“缺陷跟踪有助于确保系统中发现的错误得到实际修复,”敏捷顾问 Yvette Francino 表示。“跟踪工具不仅提供了一种确保跟进的方法,还提供了有价值的指标。根据所使用的工具,团队可以将缺陷与更改的代码、测试或其他数据联系起来,以便追溯或分析缺陷趋势。如果某个模块存在大量缺陷,可能需要审查和重写该模块。”6

理想情况下,测试应尽快完成,此时修复错误更容易,成本也更低。IBM 早期的一项研究发现,与开发早期解决错误相比,修复后期处理时或产品发布后发现的缺陷的成本可能高出 15 倍。

现在,许多团队正在使用一种称为持续测试的方法。在这种情况下,在开发的所有阶段,从设计、编码到部署,都会进行质量测试和反馈。人工智能 (AI) 等现代技术也可以通过在生命周期的早期检测和分析错误来帮助测试过程。

错误跟踪的关键功能

质量控制对于开发强大的应用程序至关重要。软件测试、变更管理和错误跟踪工具使团队能够发现缺陷、测量其范围和影响并加以解决。

在《哈佛商业评论》中,Nicholas Bowen 概述了管理缺陷的流程。第一步是分类和优先排序:“一般来说,团队会将两种类型的错误列为优先级:导致系统崩溃的错误和不太严重但可能普遍存在的错误。接下来,确定每个严重性级别的目标响应时间。如果是新的质量管理体系,则初步重点应该是在几小时或几天内修复最严重的错误。使用系统时,您可以收集两个关键指标的数据,即输入错误率和错误修复人员的生产力,并根据需要调整目标。”他表示,企业还需要创建一个系统,可在各个层面,从 CEO 到下属,审查缺陷和解决缺陷所需的时间。7

良好的错误跟踪系统可以通过为缺陷监控、报告和生命周期可追溯性提供单一工作流程来协助此过程。它还应该与其他管理系统联系起来,以在软件开发和更大的组织内共享可见性和反馈。例如,IBM® Rational ClearQuest 提供了一个集中式平台,用于错误跟踪和报告。它与其他 IBM 开发和变更管理系统集成,帮助改善开发人员、运营和更广泛的团队之间的沟通和协作。

此外,寻找使用 AI 在开发过程早期检测错误的测试和跟踪系统。它可以优化团队运行的测试数量和类型,自动化测试流程,并使用 AI 分析过去的缺陷以及预防未来的缺陷。

相关解决方案
IBM Instana Observability

利用 AI 和自动化的强大功能,主动解决整个应用程序堆栈中的问题。

深入了解 IBM Instana Observability
DevOps 解决方案

使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。

探索 DevOps 解决方案
云咨询服务

通过我们的云咨询服务持续实现应用现代化,加速业务敏捷性与增长——支持任意平台部署。

深入了解我们的云咨询服务
采取后续步骤

从 IBM Instana® 的主动问题检测到跨堆栈实时洞察,让云原生应用程序保持高可靠运行。

了解 IBM Instana 探索 DevOps 解决方案