什么是软件工程中的注入缺陷?

软件测试 术语
2022-01-31 20:20:43

在软件工程中,注入缺陷是什么意思?如果在软件测试过程中出现这种类型的缺陷,那么如何处理注入的缺陷呢?还有如何降低这些缺陷的发生率?

4个回答

为了将其他答案放在上下文中,这里有一些相关的想法,它们可能会相互影响。

  • 缺陷插入(或发现)——参考系统的哪个阶段(例如,需求开发、设计、开发、实施、集成、测试、维护)在产品中插入/注入(或发现)缺陷。因此,在需求时插入的缺陷(例如,被误解的用户需求)并在集成时发现的缺陷将表现出不良的缺陷控制

  • 故障或故障注入——在测试活动期间有意将故障条件注入正在运行的系统,以确定系统是否对非标称或异常条件反应良好。

  • 缺陷注入——故意插入缺陷,在任何阶段插入,旨在确定质量保证、测试或缺陷控制规程的有效性。也称为“缺陷播种”

注入缺陷是在测试期间故意向系统添加缺陷,以测试和验证系统在这些情况下的行为是否符合预期。

这是一个很好的测试实践,没有什么应该减少或避免的。

此类缺陷的示例可以是:

  • 引入不可靠的网络流量。
  • 使用完整的硬盘驱动器进行测试。
  • 测试一些硬件组件故障。
  • 在超出规格的电气条件下进行测试。

我会理解这意味着@Anders 在他的回答中涵盖的错误注入或与缺陷播种或错误播种相同的东西。

错误播种是一种实施度量标准的方法,用于检查系统的测试是否良好。很高兴知道测试发现了多大百分比的缺陷或系统中仍然存在多少错误。不幸的是,我们不知道系统中存在的缺陷总数。错误播种的想法是将许多已知错误引入系统,然后计算这些测试发现的数量。然后可以使用该比率来估计系统中未知的实际错误的数量。

如果使用,需要考虑以下几点:

  • 注入的缺陷应覆盖整个系统并具有全方位的严重性,以正确反映测试的有效性。这是相当难以实现的。
  • 想一想您的员工会对这种衡量方式有何反应。您是否应该事先告知存在注入缺陷?
  • 确保您记得在发布产品之前删除注入的缺陷。

您在问题的第一部分(什么是注入缺陷?)上得到了一些很好的答案,但在您的第二个问题上似乎都很安静(如何减少它们?)

健全的软件工程原则应该有所帮助,例如:

  • 了解您的要求
  • 进行审查
  • 尽早计划彻底的测试

正如其他人所暗示的那样,早期发现可能比减少缺陷更重要。会出现缺陷;然而,如果这些缺陷被更早地而不是更晚地检测和消除,负面后果可以大大减少。