缺陷、根因分析及影响

2024-01-17   出处: Toolsqa  作/译者:Lakshay Sharma/暖阳

我们都读过这样一句话“一分预防胜过十分治疗。如果把这句话用到软件领域,就意味着如果缺陷在流程中存在时间越长,修复成本就会越高。因此需要进行根因分析以找出问题的原因,并提供适当的解决方案。

我们将重点关注以下几点:

  1. 什么是根因分析
  2. 为什么会出现缺陷
  3. 如何进行根因分析
  4. 根因分析示例

1. 什么是根因分析

根因分析是一种系统化的方法,用于确定事情的根本原因。它有助于采取适当的措施来解决问题。理想情况下,软件应该是零缺陷,不出现任何故障。但实际上,这是不可能的。通过有效的质量保证过程,我们可以确保软件具有最少的缺陷。我们还可以确保有正确的技术可供使用,以找出任何缺陷的根本原因。这种确定问题发生原因的过程称为根因分析(RCA)。

理解根因分析的最简单方法是思考日常问题。如果我们生病了,我们会去看医生,请他们查找病因。如果汽车坏了,我们会请一个师傅找出问题的根本原因。要解决或分析一个问题,我们需要进行根因分析,准确找出问题的原因以及解决方式。

根因分析就像一个逆向的事件链。它从最后一个可能的行动开始,向前逐步追溯。它会一直延续到问题的起始点。因此,被称为逆向工程。

有几个基本问题需要问:是什么、为什么、什么时候、什么方式。借助这些问题,我们可以深入研究软件生命周期的每个阶段。这样做是为了准确跟踪缺陷的起源以及缺陷何时出现在系统中。

2. 为什么会出现缺陷

在深入研究根因分析之前,让我们先了解一下导致软件缺陷的常见因素:

  • 需求不清晰: ​任何软件应用程序的成功都取决于开发团队对客户需求的理解。需求不明确和对需求的误解是导致软件缺陷的两个主要因素。
  • 编程错误:程序员和其他人一样,也会犯编程错误。缺乏经验或没有相关领域知识的程序员,会在编码过程中出现简单的错误。缺乏简单的编码实践、单元测试、调试,是大多数问题出现在开发阶段的常见原因。
  • 沟通障碍如果没有将需求正确地传达给开发团队,就会在开发阶段引入缺陷。有时,开发人员和测试人员之间的沟通不畅也会导致软件缺陷。
  • 时间压力:​ ​软件项目的排期并非易事。当截止期限临近并出现危机时,错误就会发生。如果没有足够的时间进行正确的设计、编码和测试,那么显然会引入并漏测一些缺陷。
  • 环境不合适: 不适当的环境,如硬件或软件不兼容,会导致软件缺陷。通常,一个环境中的测试数据往往与另一个环境不同。因此,一些缺陷未被发现。

3. 如何进行根因分析

根因分析分为 4 个步骤。我们需要提出 4 个问题来总结RCA流程

  • 是什么? ​第一步是确定问题是什么。如果我们不明确问题,就永远无法找到根本原因。例如:客户反映说他们无法下单。
  • 什么时候?下一步是找出问题发生的时间。对于我们当前的示例,当客户试图下单时,他们收到了一条错误信息:”无法处理订单“。事情发生在下午 3:30 到4:00之间,当客户点击下单按钮时,出现错误消息。
  • 为什么? ​下一步是确定问题发生的原因。基于在 “是什么 “和 “什么时候”中获得的信息,进行详细分析以确定根本原因。对于我们当前的例子来说,根本原因是支付系统在下午 3:30 至 4:00 之间出现故障,从而干扰了订单的下达。
  • 什么方式?​ ​根因分析的最后一步是找出如何确保问题不再发生的方式。对于我们当前的例子,我们可以增加一种告警机制,可以在任何系统出现故障时发送电子邮件。在网站上显示一条信息,说明订单下达出现了一些问题,团队正在努力解决该问题。这将确保用户体验不受影响,并且技术团队也能及时收到告警、解决问题。

缺陷可能会影响软件产品或其功能,例如功能故障或整个系统故障。这会导致资金、时间和声誉受损。因此,根因分析可以发现问题出在哪里。通常,我们使用 RCA 作为一种诊断问题的方法。然而,同样可以用它来找到成功的根本原因。这种类型的分析可以帮助确定优先级,并主动修复由于相同根本原因而可能在未来出现的问题。

4. 根因分析示例

我们已经看到根因分析如何帮助识别问题并采取下一步措施。同样重要的,各行各业也可以利用这些 RCA 来提高成功的几率。

让我们以迪士尼的《狮子王》为例。迪士尼公司于 1994 年秋季推出了第一款面向儿童的多媒体 CD-ROM 游戏《狮子王动画故事书》。虽然其他许多公司多年来一直在推销儿童项目,但这是迪士尼在这个市场上的第一次尝试,并且进行了大规模的宣传活动。销售额十分可观。然而,接下来发生的事情却一败涂地。

12 月 26 日,圣诞节后的第二天,迪士尼客服务电话就开始响个不停。很快,电话支持技术人员接到了大量的投诉电话,来自一直哭闹的孩子的家长们,因为他们无法使用软件。问题在于有缺陷的软件无法在顶级 PC 平台上运行。事实证明,迪士尼没有在市场上具有广泛代表性的不同PC 机型上测试该软件。该软件可以在迪士尼程序员用来制作游戏的一些系统上运行,但不能在普通大众最常用的系统上运行。

然而,即使在制作并销售了数千张CD-ROM之后,仍然没有人报告该缺陷。迪士尼最后只能通过产品退货和更换CD-ROM来支付费用。他们还承担了与调试、维修和测试相关的其他费用。这一缺陷影响了公司的声誉和财务。

该公司发现问题的根本原因是软件无法在顶级 PC 平台上运行。如果采用正确的测试方法,在消费者使用的前五大平台上测试软件,就能在大量印刷光盘之前更容易地发现这一问题。另一种方法是对软件进行 Beta 测试(由一组客户对其进行检查)。反过来,这可以确保在发布之前发现问题。

从那时起,大多数行业都遵循 RCA 这个简单的分析示例。所有游戏公司都会在市场上排名前五的操作系统上测试自己的游戏。

通过本文,希望您对根因分析,及其对当前和未来项目成功的重要性有了更深入的了解。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
149° /1498 人阅读/0 条评论 发表评论

登录 后发表评论