什么是阴性检测?测试用例与示例
负面测试
负面测试 是一种软件测试类型,用于检查软件应用程序中是否存在意外的输入数据和条件。意外的数据或条件可以是任何东西,从错误的数据类型到强大的黑客攻击。负面测试的目的是防止软件应用程序因负面输入而崩溃,并提高质量和稳定性。
仅通过进行正面测试,我们只能确保我们的系统在正常情况下运行。我们必须确保我们的系统能够处理意外情况,以确保系统 100% 无故障。
负面测试示例
考虑升降机的情况,这是通常被认为是负面测试的一个例子。
我们都知道电梯的功能。这些将被视为电梯的要求,例如按楼层号使电梯到达该特定楼层。
一旦电梯到达指定楼层,门就会自动打开。
现在让我们考虑一些不利于升力的情况。其中一些是,
负面测试 | 积极检测 |
---|---|
如果人数(重量)超过规定的限制会怎样? | 假设只有指定数量的人会进入电梯 |
如果有人在电梯内吸烟或引起火灾怎么办? | 电梯内不会冒烟或起火 |
如果运行过程中发生电源故障怎么办? | 电梯运行期间不会断电 |
所有这些病例都将接受阴性检测。这一点很重要,因为我们无法确保上述所有情况都不会发生,所以我们需要控制它们。
假设检查超重情况,在执行过程中,当超重时,升降机运行异常。这将对系统的可靠性产生潜在影响,甚至可能危及生命。这解释了什么是负面测试及其重要性。
同样的情况也适用于软件。对于负面测试,我们已经偏离了正常的操作程序。让我们看一些例子。
以注册表为例。
负面测试 | 积极检测 |
---|---|
尝试在电子邮件字段中输入无效的电子邮件 ID | 仅有效的电子邮件 ID 可输入到电子邮件字段中 |
尝试在电话号码字段中输入无效的电话号码(字符) | 号码字段中将输入唯一的号码 |
上传尺寸超出指定范围的图像 | 仅上传尺寸在指定范围内的图像 |
上传无效文件,例如 XML图片上传字段中的 SQL 等文件 | 仅上传有效的图像格式,如 jpg.png 等。 |
正如我们之前所说,我们必须确保在所有这些负面情况下我们的系统都能正常工作。考虑一下如果有人试图在数字字段中输入一个字符,而系统无法处理意外数据,因为它期望一个数字,最后系统崩溃的情况。或者如果有人试图做一个 SQL注入 并从数据库中删除我们的所有数据。我们无法承受这样的潜在损失。因此负面测试很重要。
为什么要做负面测试?
由于测试是一项耗时且耗费成本的任务,因此决定“测试什么”、“如何测试”和“测试多少”非常重要。我们必须明智地选择是否要在系统中进行负面测试。那么让我们来看看负面测试的重要性。
组织视角
组织有责任向客户提供优质产品。为了实现这一目标,必须进行负面测试。
作为确认故障的一部分,组织必须进行负面测试。
也许我们无法建立一个 100% 无错误的系统,但我们必须确保已尽一切努力防止故障,为了实现这一点我们应该进行负面测试。
影响是我们必须考虑的一个因素。假设我们已经对电子商务网站进行了正面测试,并确保一切正常。但如果我们的系统中存在漏洞,有人可以进行 SQL 注入并删除我们所有的数据,那会是一个巨大的安全漏洞。为了避免这种情况,也必须进行负面测试。
对于向公众开放的应用程序(主要是网站),我们必须始终牢记,我们无法控制应用程序的使用过程,因此我们必须进行负面测试以确保涵盖和控制所有此类情况。
我们需要注意的另一件事是,有很多黑手正在寻找破坏系统的机会。黑客攻击是负面测试中涉及的一个重要案例
客户视角
客户总是期望产品零漏洞,因此必须确保负面测试
如果是像电子商务、在线库存等敏感产品,那么安全和负面测试是必须的。
客户对负面测试的唯一担忧是成本。但一旦分析了影响,就由客户决定是否进行负面测试。
如何进行负面测试
要进行负面测试,我们必须考虑所有可能的情况。也就是说,如果可能的话,我们必须在 测试用例 无论这是否是正确的使用方法。例如,如果我们看到一个电子邮件字段,请考虑除了正确的电子邮件格式之外,我们可以在其中输入的所有可能的输入。同样,当我们看到图像上传选项时,我们必须使用所有可能的文件对其进行测试。
在创建负面测试用例时,我们必须优先考虑输入,否则可能会出现很多情况。例如,对于只应输入“.png”文件的图像字段,我们可以有很多上传选项,如“jpeg”、“xml”、“xls”等。因此,我们需要优先考虑 XML 等选项, SQL 比 jpeg 和 xls 的影响更大,所以我们应该首先处理 SQL 和 XML 案例。这样,我们必须在执行之前对案例进行优先排序,以节省时间和测试成本。
负面测试的利与弊
与所有其他测试技术一样,负面测试也有其优缺点,主要取决于“在哪里”、“何时”和“如何使用”。让我们来看看。
负面测试的优点
- 众所周知,负面测试对于确保产品质量非常重要。优质产品是零漏洞产品,确保负面测试非常重要。
- 进行负面测试可确保涵盖所有可能的情况。有意或无意地,都有可能出现负面测试情况。因此,为了确保涵盖所有情况,我们必须同时进行负面测试和正面测试。
- 上线之前进行负面测试会让客户更加有信心。
负面测试的缺点
- 在软件工程中,负面测试在某些情况下会浪费时间和精力。在许多情况下,没有必要进行过多的负面测试。例如,如果应用程序是为单人使用而创建的,那么我们就不必考虑 100 个用户同时使用系统的情况。因此,决定负面测试用例中的条件非常重要。有时我们不必对特定系统进行负面测试。
- 需要熟练且经验丰富的人员来创建负面测试用例。
- 对于客户来说,负面测试是导致发布不必要的延迟和增加成本的另一件事。
- 团队在负面测试上花费更多时间和精力的可能性。测试人员在负面测试上花费大量时间和精力的可能性很大,这会导致在正面测试上的注意力降低。