什么是负面测试?带有示例的测试用例

负面测试

负面测试是一种软件测试类型,用于检查软件应用程序的意外输入数据和条件。意外数据或条件可以是任何东西,从错误的数据类型到强大的黑客攻击。负面测试的目的是防止软件应用程序因负面输入而崩溃,并提高质量和稳定性。

仅进行正面测试,我们只能确保系统在正常条件下工作。我们必须确保我们的系统能够处理意外情况,以确保100%无故障系统。

负面测试示例

以电梯为例,这是负面测试中常用的一个例子。

我们都知道电梯的功能。这些将被视为电梯的要求,例如按下楼层号码会使电梯到达特定楼层。

一旦电梯到达指定楼层,门会自动打开,等等。

现在让我们考虑一些电梯的负面场景。其中一些是:

负面测试 正面测试
如果人数(重量)超过指定限制会发生什么? 假设只有指定数量的人会进入电梯
如果有人在电梯内吸烟或引起火灾会发生什么? 电梯内不会有烟雾或火灾
如果操作期间停电会发生什么? 电梯工作期间不会停电

所有这些情况都属于负面测试。其重要性在于,我们无法确保上述所有情况都不会发生,因此我们需要对其进行控制。

考虑一下,如果检查了超重情况,并且在实施时,电梯在超重情况下表现异常。这将对系统的可靠性产生潜在影响,甚至可能危及生命。这解释了什么是负面测试及其重要性。

同样的情况也适用于软件。对于负面测试,我们偏离了正常的运行程序。让我们看一些例子。

以注册表单为例。

负面测试 正面测试
尝试在电子邮件字段中输入无效的电子邮件地址 只有有效的电子邮件地址才能输入到电子邮件字段中
尝试在电话号码字段中输入无效的电话号码(字符) 只能在号码字段中输入数字
上传大小超出指定边界的图像 只能上传大小在指定边界内的图像
在图像上传字段中上传无效文件,例如XML、SQL 等文件 只上传有效的图像格式,例如 jpg、png 等。

如前所述,我们必须确保在所有这些负面情况下,我们的系统都能正常工作。设想一下,如果有人试图在数字字段中输入一个字符,并且系统无法处理意外数据,因为它期望的是一个数字,最终系统崩溃了。或者,如果有人试图进行SQL 注入并从数据库中擦除我们所有的数据。我们无法承受如此潜在的损失。因此,负面测试很重要。

为什么要进行负面测试?

由于测试是一项耗时耗财的任务,因此决定“测试什么”、“如何测试”以及“测试多少”非常重要。我们必须明智地选择是否在我们的系统中进行负面测试。因此,让我们来看看负面测试的重要性。

组织视角

组织有责任向客户提供高质量的产品。为此,必须进行负面测试。

作为防止故障的一部分,组织必须进行负面测试。

也许我们无法构建一个100%无错误的系统,但我们必须确保我们已尽一切努力防止故障发生,为了实现这一点,我们应该进行负面测试。

影响是我们必须考虑的一个因素。假设我们对一个电子商务网站进行了正面测试,并确保一切正常。但是,如果我们的系统存在漏洞,有人可以进行 SQL 注入并删除我们所有的数据,那将是一个巨大的安全漏洞。为了避免此类情况,也必须进行负面测试。

对于面向公众的应用程序,主要是网站,我们必须始终牢记我们无法很好地控制应用程序的使用程序,因此我们必须进行负面测试,以确保所有此类情况都已涵盖和控制。

我们还需要注意的另一件事是,有许多黑客正在寻找机会破坏系统。黑客攻击是负面测试中涵盖的一个重要案例。

客户视角

客户总是期望零漏洞产品,为确保这一点,负面测试是必须的

如果它是像电子商务、在线股票等敏感产品,那么安全和负面测试是必须的。

客户对负面测试的唯一担忧是成本。但是一旦分析了影响,就由客户决定是否进行负面测试。

如何进行负面测试

要进行负面测试,我们必须考虑所有可能的情况。也就是说,如果可能,我们必须在测试用例中考虑它,无论它是否是正确的使用方式。例如,如果我们看到一个电子邮件字段,除了正确的电子邮件格式,考虑所有我们可以在那里输入的可能输入。同样,当我们看到一个图像上传选项时,我们必须用所有可能的文件进行测试。

在创建负面测试用例时,我们必须优先考虑输入,否则可能会有很多情况。例如,对于一个只允许输入“.png”文件的图像字段,我们可以选择上传“jpeg”、“xml”、“xls”等多种文件。因此,我们需要优先考虑选项,例如 XML 和 SQL 可能比 jpeg 和 xls 具有更大的影响,因此我们应该首先处理 SQL 和 XML 情况。像这样,我们必须在执行前优先考虑这些情况,以节省时间和测试成本。

负面测试的优缺点

与其他所有测试技术一样,负面测试也有其优缺点,主要取决于“何时”、“何地”和“如何”使用。让我们来看看这一点。

负面测试的优点

  • 众所周知,负面测试对于确保产品质量至关重要。一个高质量的产品是一个零漏洞产品,为确保这一点,负面测试非常重要。
  • 进行负面测试可确保涵盖所有可能的情况。无论是故意还是无意,都有可能出现负面测试用例。因此,为确保涵盖所有情况,我们必须与正面测试一起进行负面测试。
  • 负面测试将使客户在上线前更有信心。

负面测试的缺点

  • 在软件工程中,负面测试在某些情况下会浪费时间和精力。在许多情况下,不需要过度的负面测试。例如,如果一个应用程序是为单人使用而创建的,那么我们就不必考虑100个用户同时使用系统的情况。因此,在负面测试用例中决定条件非常重要。有时,我们不需要对特定系统进行负面测试。
  • 需要熟练和经验丰富的人员来创建负面测试用例。
  • 对客户而言,负面测试是导致发布不必要延迟和成本增加的另一项因素。
  • 团队有可能花费更多时间和精力在负面测试上。存在测试人员花费大量时间和精力在负面测试上,导致对正面测试的注意力降低的可能性。