ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 什么是阴性测试? 测试用例 > 原文: [https://www.guru99.com/negative-testing.html](https://www.guru99.com/negative-testing.html) ## 什么是阴性测试? **负测试**是一种软件测试类型,用于检查系统是否存在意外的输入数据和条件。 意外情况可能是从错误的数据类型到强大的黑客攻击等各种情况。 负面测试的目的是防止应用程序因负面输入而崩溃。 仅通过进行积极的测试,我们只能确保我们的系统在正常条件下运行。 我们必须确保我们的系统可以处理意外情况,以确保 100%无故障的系统。 在本教程中,您将学习- * [什么是阴性测试?](#1) * [负面测试示例](#2) * [为什么要进行阴性测试?](#6) * [如何进行阴性测试](#3) * [负面测试的优势](#4) * [负面测试](#5)的缺点 ## 阴性测试示例 考虑举升的情况,这通常是负面测试的示例。 我们都知道电梯的功能。 这些将被视为电梯的要求,例如按楼层号使电梯进入该特定楼层。 电梯到达指定楼层后,门将自动打开,依此类推。 现在让我们考虑一些不利的情况。 他们之中有一些是, | <center>负面测试</center> | <center>正面测试</center> | | * 如果人数(体重)超过规定的限制会怎样? | * 假设只有指定人数进入电梯 | | * 如果有人在电梯内吸烟或引起火灾,该怎么办? | * 电梯内不会冒烟或起火 | | * 如果在操作过程中出现电源故障怎么办? | * 在升降机 工作期间不会断电 | 所有这些情况都将受到负面测试。 这样做的重要性在于,我们不能确保上述所有内容都不会发生,因此我们需要将它们包含在内。 考虑检查超重状况的情况,在实施时,如果存在超重状况,则举升机会发生异常。 这将对系统的可靠性造成潜在影响,甚至可能危及生命。 这就解释了什么是负面测试及其重要性。 同样的情况也适用于软件。 对于负面测试,我们偏离了正常的操作程序。 让我们来看一些例子。 例如考虑一个注册表。 | <center>Negative Testing</center> | <center>Positive Testing</center> | | * 尝试在电子邮件字段 中输入无效的电子邮件 ID | * 在电子邮件字段 中仅输入有效的电子邮件 ID。 | | * 尝试在电话号码字段(字符)中输入无效的电话号码。 | * 在数字字段 中将输入唯一的数字 | | * 上传尺寸超出指定边界的图像 | * 仅上传尺寸在指定范围内的图像 | | * 在图像上传字段 中上传 XML,SQL 等无效文件 | * 仅上传有效的图像格式,例如 jpg.png 等。 | 如前所述,我们必须确保在所有这些负面情况下,我们的系统都能正常运行。 考虑以下情况:如果有人试图在数字字段中输入字符,并且系统无法处理意外的数据,因为它期望输入数字,最后系统崩溃。 或者,如果有人尝试进行 [SQL](/sql.html) 注入并从数据库中删除我们的所有数据,该怎么办? 我们不能承受这样的潜在损失。 因此,负面测试很重要。 ## 为什么要进行阴性测试? 由于测试是耗时且耗费成本的任务,因此确定“什么”,“如何”和“多少”进行测试非常重要。 我们必须明智地选择是否必须在系统中进行负面测试。 因此,让我们看一下负面测试的重要性。 **组织观点** 组织有责任向其客户提供优质的产品。 为此,必须进行负面测试。 作为确认失败的一部分,组织必须进行负面测试。 也许我们不能构建一个 100%无错误的系统,但是我们必须确保已尽一切努力防止出现故障,以实现我们应该进行负面测试。 影响是我们必须考虑的因素之一。 考虑我们已经在一个电子商务站点上进行了积极的测试,并确保一切正常。 但是,如果我们的系统存在漏洞,有人可以进行 SQL 注入并擦除我们的所有数据,该怎么办? 那将是严重的安全漏洞。 为了避免这种情况,也必须进行负面测试。 对于公开开放的应用程序(主要是网站),我们必须始终牢记,我们对应用程序的使用过程没有太多控制权,因此我们必须进行负面测试,以确保所有此类情况都被涵盖和包含。 我们需要注意的另一件事是,那里有很多黑黑客正在寻找破坏该系统的机会。 黑客攻击是负面测试中涵盖的重要案例 **客户观点** 客户始终期望零漏洞产品,以确保必须进行负面测试 如果它是诸如电子商务,在线股票等敏感产品,那么必须进行安全性和负面测试。 客户对消极测试的唯一担心是成本。 但是,一旦分析了影响,就应由客户决定是否进行负面测试。 ## 如何进行负面测试 要进行负面测试,我们必须考虑所有可能的情况。 也就是说,无论是否使用正确的方法,都可能需要在[测试用例](/test-case.html)中进行考虑。 例如,如果我们看到一个电子邮件字段,请考虑所有可能的输入内容,而不是正确的电子邮件格式。 看到图片上传选项的方式相同,我们必须对所有可能的文件进行测试。 在创建否定测试用例时,我们必须对输入进行优先排序,否则可能会有很多情况。 例如,对于仅应输入“ .png”文件的图像字段,我们可以上传很多选项,例如“ jpeg”,“ xml”,“ xls”等。因此,我们需要优先考虑这些选项 像 XML 和 SQL 可能比 jpeg 和 xls 具有更大的影响,因此我们应该首先注意 SQL 和 XML 的情况。 这样,我们必须在执行之前对案例进行优先排序,以节省时间和测试成本。 负面测试的利弊 像所有其他测试技术一样,否定测试的优缺点也主要基于“在哪里”,“何时”和“如何”使用。 让我们来看一下。 ## 负面测试的优势 * 众所周知,负面测试对于确保产品质量非常重要。 高质量的产品是零漏洞产品,对于确保负面测试非常重要。 * 进行负面测试可确保涵盖所有可能的情况。 有意或无意地存在负面测试案例的机会。 因此,要确保涵盖所有案例,我们必须同时进行负面测试和正面测试。 * 负面测试将使客户在上线之前更有信心。 ## 负面测试的缺点 * 在软件工程中,负面测试有时会浪费时间和精力。 在许多情况下,不需要过多的负面测试。 例如,如果创建了一个供单人使用的应用程序,那么我们不必考虑一次有 100 个用户使用该系统的情况。 因此,确定阴性测试用例中的条件非常重要。 有时候,我们不必在特定系统上进行负面测试。 * 要求熟练和经验丰富的人员创建否定测试用例。 * 对客户而言,负面测试是导致发布和成本增加者不必要的延迟的另一件事。 * 团队花费更多时间和精力进行负面测试的机会。 测试人员可能会花费大量时间和精力进行负面测试,从而导致正面测试的注意力降低。