否定测试以及测试用例

否定测试

否定测试是一种软件测试类型,用于检查软件应用程序是否存在意外的输入数据和条件。负测试的目的是为了防止软件应用因负输入而崩溃,提高软件的质量和稳定性。

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

在本教程中,将了解-

  • 什么是否定测试?
  • 否定测试的例子
  • 为什么要做否定检测?
  • 如何进行否定检测
  • 否定测试的优点
  • 否定测试的缺点

否定测试的例子

考虑一下电梯的情况,这是一个通常被认为是否定测试的例子。

我们都知道电梯的功能。这些都会被视为升降机的要求,例如按楼层数使升降机到达该楼层。

一旦电梯到达指定楼层,门就会自动打开,以此类推。

现在让我们考虑一下电梯的一些负面场景。他们中的一些人是,

阴性测试 阳性检测
如果人数(体重)超过规定的限制怎么办? 假设只有指定数量的人将进入电梯
如果有人吸烟或在电梯内引起火灾怎么办? 电梯内不会有烟或火
如果在运行过程中出现电源故障,会发生什么情况? 电梯工作期间不会停电

所有这些个案都会接受负面测试。这一点的重要性在于,我们不能确保上述所有情况都不会发生,所以我们需要控制它们。

考虑检查超重状态的情况,并且在实现时,当存在超重状态时,升降机执行异常。这解释了什么是否定测试及其重要性。

同样的情况也适用于软件领域。对于否定测试,我们有dev,让我们来看一些例子。

例如,考虑一下注册表。

否定测试 阴性检测
尝试在电子邮件字段中输入无效的电子邮件ID 电子邮件字段中将仅输入有效的电子邮件ID
尝试在电话号码字段(字符)中输入无效的电话号码 将在数字字段中输入唯一的数字
上传大小超出指定边界的图像 仅上传大小在指定边界以下的图像
在图像上传域中上传无效文件,如XML、SQL等文件 仅上传有效的图像格式,如jpg.png等。

正如我们前面所说,我们必须确保在所有这些负面的情况下,我们的系统都会正常工作。考虑一下这样的情况:如果有人试图在数字字段和系统中输入一个字符,或者如果有人试图执行SQL注入并从数据库中擦除我们的所有数据,会发生什么情况。所以否定检测很重要。

为什么要做否定检测?

由于测试是一项既耗时又耗费成本的任务,因此决定“测试什么”、“如何测试”和“测试多少”真的很重要。那么让我们来看看否定检测的重要性。

组织视角

向客户提供高质量的产品是组织的责任。要做到这一点,必须进行否定测试。

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

也许我们不能建立一个100%没有错误的系统,但我们必须确保我们已经做了一切事情来防止失败,为了实现这一点,我们应该做负面测试。

影响是我们必须考虑的一个因素。考虑到我们已经在a上做了阳性检测,为了避免这种情况,我们也必须做否定检测。

对于向公众开放的应用程序,主要是网站,我们必须始终记住,我们对应用程序的使用程序没有太多的控制力,所以我们必须进行负面测试,以确保所有这些情况都被覆盖和控制。

我们需要注意的另一件事是,有很多黑色黑客正在寻找机会摧毁系统。黑客攻击是否定测试中涵盖的一个重要案例

客户视角

客户总是期望零漏洞产品,以确保必须进行负面测试

如果是电子商务、网购等敏感产品,那么安全性和负性检测是必须的。

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

如何进行否定检测

要做否定测试,我们必须考虑所有可能的情况。也就是说,如果可能的话,我们必须在测试用例中考虑它,不管它是否是正确的使用方式。例如,如果我们看到一个电子邮件字段,当我们看到一个图像上传选项时,以同样的方式考虑所有可能的输入,我们必须用所有可能的文件来测试它。

在创建否定的测试用例时,我们必须对输入进行优先排序,否则会有很多可能的用例。例如,对于像这样的图像字段,我们必须在执行之前对案例进行优先级排序,以节省时间和测试成本。

否定测试的利弊

与所有其他测试技术一样,负面测试主要基于“在哪里”、“何时”和“如何”使用,也有利弊之分。我们来看看这个。

否定测试的优点

  • 否定检测对保证产品质量非常重要。一个质量好的产品是零易受攻击性的产品,确保否定检测是非常重要的。
  • 做否定测试可以确保覆盖所有可能的病例。为了确保所有病例都包括在内,我们特意做了否定检测和阳性检测。
  • 否定测试会让客户在上线前更有信心。

否定测试的缺点

  • 在软件工程中,否定测试在某些情况下是浪费时间和精力的。有些时候,我们不需要对特定的系统进行负面测试。
  • 需要有技能和经验的人员来创建负面测试用例。
  • 对于客户来说,否定测试是另一件导致不必要的发布延迟和成本增加的事情。
  • 团队在否定测试上花费更多时间和精力的机会。测试人员有可能在否定测试上花费大量的时间和精力,从而导致阳性测试的集中度较低。

IT赶路人

专注IT知识分享