负面测试

2025年3月17日 | 阅读 8 分钟

软件测试就是检查应用程序是否按照给定需求工作。我们可能需要使用各种软件测试类型,如功能测试、单元测试、集成系统、系统测试冒烟测试回归测试健全性测试来完成这个过程。

软件开发并非易事,因为它涉及到编写大量复杂的代码,然后测试这些复杂代码以确保无故障且性能稳定。正如我们所知,软件测试是编写成功代码的关键方面。

然而,所有这些都可以归为以下两类:

  • 正面测试
  • 负面测试

在本节中,我们将涵盖与一项称为负面测试的特定测试技术相关的以下主题。

  • 负面测试的介绍及其目的。
  • 负面测试的属性。
  • 为什么我们需要进行负面测试?
  • 负面测试的例子。
  • 负面测试的优缺点。

什么是负面测试?

这是一种独特的软件测试技术,用于评估系统在不可预测情况下的表现。它在高绩效软件开发中起着非常重要的作用。

在此测试中,通过提供无效数据作为输入来授权系统。负面测试分析应用程序是否能以可预测的方式处理负面输入。

Negative Testing

主要而言,负面测试用于检查此类不可预测的情况是否会影响软件的性能。

换句话说,我们可以说负面测试的实施是为了确保被测软件产品在收到不可预测的输入时不会失败。它也称为故障测试错误路径测试。

负面测试的目标

  • 进行负面测试的主要目标是中断系统并验证应用程序在处理意外输入时的响应。
  • 负面测试的执行确保了即使在用户通过输入无效和错误数据而表现不一致的情况下,软件也能获得适当和理想的性能。
  • 为了确保应用程序能够应对各种不当验证数据集的变化所带来的影响,我们将实施负面测试。
  • 它帮助我们识别大量的 bug 并提高被测软件应用程序的质量。然而,负面测试是在正面测试实施之后进行的。

负面测试的属性

在这里,我们讨论负面测试的一些基本特征,如下所示:

  • 我们可以使用负面测试来评估潜在的安全漏洞和特殊的处理程序。
  • 负面测试用于分析应用程序在失败条件下的表现。
  • 它被执行以通过输入有害数据来破坏系统并导致软件产品功能失效。
  • 它被执行以识别可能导致严重故障的缺陷。
  • 负面测试用于显示数据损坏或安全漏洞。
  • 通常,实现负面测试的目标由测试工程师完成。
  • 为了揭示软件的漏洞和被利用的可能性,我们将执行负面测试。
  • 负面测试的实施是为了保证应用程序或软件产品在遇到超出范围或限制的输入值,或无效输入数据后的稳定性。
  • 它被实施来查找可能导致其失败的关键漏洞或 bug 以及薄弱环节。

为什么我们需要进行负面测试?

随后,任何类型的测试活动都是一个耗费成本和时间的流程。因此,我们必须明智地选择是否需要在我们的系统中实施负面测试。

在这里,我们通过考虑客户和组织的以下方面,讨论了为什么我们需要在特定应用程序中进行负面测试。

Negative Testing

从客户的角度

  • 负面测试的实施确保交付无 bug、零漏洞的产品,以满足客户的期望。
  • 当应用程序至关重要时,例如电子商务、在线股票等,就需要负面测试。
  • 成本是客户在进行负面测试时唯一的顾虑。但当评估其影响时,客户可以选择是否进行负面测试。

从公司的角度

  • 向客户交付高质量的产品是组织的责任。要实现这一点,就必须进行负面测试。
  • 从公司的角度来看,需要进行负面测试,因为它需要针对故障进行验证。
  • 我们应该进行负面测试,因为有时我们无法保证开发出 100% 无 bug 的系统,但我们必须确保已尽一切努力避免故障。
  • 通过进行负面测试,我们还可以覆盖重要的黑客攻击情况,因为有很多黑客在寻找机会破坏系统。

负面测试示例

在负面测试中,通过无效数据输入来评估软件产品的实现。当输入意外的参数时,会测试软件的响应。

在这种情况下,应用程序应显示以下错误消息:

无效数据输入。

例如:假设我们有一个示例表单,用于输入姓名、电话号码和邮政编码字段的值。在这种情况下,负面输入可能是以下内容:

姓名:838383

(因为姓名字段只接受字母字符值)

电话号码:ABCDE

(因为电话号码字段只接受数字值)

邮政编码:ABCDE

(因为邮政编码字段只接受数字值)

Negative Testing

如何进行负面测试

为了实施负面测试,测试工程师需要考虑所有可能的情况。特别是,如果可以实现,我们必须在测试用例中考虑它,即使它不是正确的使用方式。

例如 1

假设我们看到一个图片上传选项,因此我们考虑了所有可能输入的组合,并可以输入它们来测试所有可能的文件。

例如 2

同样,我们有一个电子邮件字段,并且我们必须考虑所有可能的输入,我们可以输入除了正确电子邮件格式之外的任何内容。

注意:在负面测试中,我们必须在实施前选择用例,以节省时间和测试成本。

什么是负面测试用例?

负面测试的另一个重要组成部分是负面测试用例。团队创建这些负面测试用例是为了以非预期方式测试应用程序。

正如我们所理解的,负面测试是为了确保应用程序的稳定性和可靠性。这些应由团队在以下测试工作中进行衡量:

  • 数据边界测试
  • 字段大小测试
  • 必填数据输入
  • 数值边界测试
  • 嵌入的单引号
  • 性能修改
  • Web 会话测试
Negative Testing
  • 数据边界测试

测试团队必须测试数据字段的所有下界和上界。

  • 字段大小测试

功能规范应指明可以在字段中输入的字符数。为了确保不超出此限制,我们可以编写测试用例。

这有助于防止用户在收到错误消息后输入更多字符,因为他们已经超过了限制。

  • 必填数据输入

软件中涉及屏幕上数据输入的每个字段都应在输入关键数据到特定字段之前进行验证。

  • 数值边界测试

为了确保负面测试用例准确,测试团队需要分析下界和上界。

  • 嵌入的单引号

当最终用户尝试存储包含单引号的信息时,某些软件系统会遇到问题。

因此,对于所有接收字母数字数据输入的屏幕,特定团队都应提供包含一个或多个单引号的文本。

  • 性能修改

测试套件应包含比较先前和当前版本性能统计数据的测试用例,这有助于对潜在性能问题进行分类。

  • Web 会话测试

众所周知,各种 Web 应用程序会在浏览器会话中显示不同的用户信息。

测试团队准备测试用例以发布应用程序中不涉及用户登录的网页。

负面测试场景

负面测试的使用可以增强软件产品或应用程序的测试覆盖率,并在不同情况下找到可能的应用程序故障。

以下是一些负面案例和测试场景:

  • Web 会话测试
  • 填写必填字段
  • 允许的特殊字符数
  • 数据字段类型之间的一致性
  • 充足的数据

负面测试的优点

负面测试的一些显著好处如下:

  • 它能在上线前让客户更加放心。
  • 它提高了覆盖所有情况的可能性,以及由于人类行为不一致可能出现的各种错误。
  • 正如我们所理解的,负面测试的实施对于保证产品质量非常重要,因为高质量的产品或应用程序被认为是零漏洞的产品。
  • 它还确保在执行负面测试时覆盖所有可能的情况,因为有意或无意中,存在轻微的负面测试用例的可能性。因此,为了确保覆盖所有测试用例,我们需要在正面测试之后进行一轮负面测试。

负面测试的缺点

然而,负面测试的实施有助于改进应用程序,但负面测试仍然存在一些缺点,如下文所述:

  • 负面测试的执行需要不必要的时间、金钱和精力。
  • 对于客户来说,这会导致软件产品或应用程序发布出现严重延迟。
  • 负面测试的实施需要经过培训且经验丰富的测试工程师来开发负面测试用例。
  • 在软件测试中,负面测试在某些情况下会成为耗时的过程。而在许多情况下,没有必要执行过多的负面测试。
  • 例如,如果软件仅为单人使用而开发,那么我们就不必考虑 50-100 名最终用户同时使用该应用程序的情况。因此,在关键情况下,负面测试用例非常重要。有时我们不必对特定软件产品执行负面测试。

概述

在本教程中,我们已经理解了负面测试的概念。在看到所有与负面测试相关的其他主题之后,我们可以得出结论,负面测试确保交付的软件没有 bug 并且客户可以使用它。

要设计详细且强大的负面测试场景,需要一位富有创造力、技术精湛、有远见且聪明的测试工程师。

正如我们所知,每个软件开发公司都希望拥有能够承受严格负面测试的能力和强大的软件。

人们常常误以为负面测试只是另一种增加开支的方式,而没有任何实际好处。这种想法很重要,因为它可能会损害最终软件产品的质量。

最后,我们可以说,通过实施负面测试,我们可以提高软件的质量并使其更强大。


下一主题正面测试