正面测试和负面测试示例

软件测试是对软件应用程序进行验证和确认,以检查其是否按预期运行的过程。其目的是发现缺陷并提高产品质量。软件测试有两种方法,即正向测试和负向测试。
这两种方法回答的是相反的问题:应用程序在一切正常时是否能正常工作,以及当出现问题时是否能保持稳定?
什么是阳性检测结果?
积极检测 是一种测试类型,它通过提供有效数据集作为输入来对软件应用程序执行。它检查软件应用程序在接收到有效输入时是否按预期运行。
正向测试是为了检验软件应用程序是否完全按照预期运行而进行的。因此,它也被称为正常路径测试。
例如,请看下面所示的数字文本框。
应用程序中有一个文本框,它只能接受数字。输入不超过 99999 的值将被系统接受,除此之外的任何其他值均不可接受。要进行正面测试,请将有效输入值设置为 0 到 99999,然后检查系统是否接受这些值。
什么是负面测试?
负面测试 是一种通过提供无效或不正确的数据集作为输入来测试软件应用程序的方法。它检查软件应用程序在接收到负面或不期望的用户输入时是否按预期运行。
负面测试的目的是确保软件应用程序在输入无效数据时不会崩溃并保持稳定。因此,它也被称为错误路径测试或故障测试。
例如,考虑将同一个字段接收字符而不是数字。
可以通过输入 A 到 Z 或从 a 到 z 的字符来执行负面测试。软件系统不应该接受这些值,否则它应该针对这些无效数据输入抛出错误消息。
两种类型的测试都需要考虑以下几点:
- 输入数据
- 需要执行的操作
- 输出结果
阳性检测与阴性检测:主要区别
两种方法都具有相同的 测试用例 结构。区别在于你提供的输入以及通过的结果所证明的。
| 参数 | 积极检测 | 负面测试 |
|---|---|---|
| 也被称为 | 快乐路径测试 | 错误路径或故障测试 |
| 输入已使用 | 有效且符合预期的数据 | 无效、极端或意外数据 |
| 目标 | 确认该功能是否正常工作 | 确认该功能拒绝了它不应该拒绝的操作。 |
| 预期结果 | 流程成功完成 | 出现明显的错误提示,系统保持稳定。 |
| 错误处理 | 并非重点 | 全部焦点 |
| 保障范围 | 窄型,符合规范 | 范围广泛,涵盖规范之外的所有内容。 |
| 如果跳过这一步骤,通常会面临以下风险。 | 核心功能已损坏 | 崩溃和安全漏洞会影响生产环境 |
阳性测试失败表明功能出现故障。阴性测试失败表明缺少保护机制,一旦用户发现该机制,修复成本将高得多。
用于阳性和阴性检测的检测技术
在实践中,两种经典的输入设计技术会从同一需求中生成正反两方面的例子:
- 边值分析
- 等价划分
边值分析
这是软件测试技术之一,其中测试用例被设计为包含边界值。如果输入数据在边界值限制内使用,则称为正测试。如果输入数据是在边界值限制之外选取的,则称为负测试。
例如,请看下图所示的可接受范围。
系统可以接受 0 到 10 之间的数值。所有其他数字都是无效值。根据此技术,将测试边界值 -1,0,1 和 9,10,11。
等价划分
这是一个 软件测试 将输入数据划分为多个分区的技术。每个分区的值必须至少测试一次。具有有效值的分区用于正向测试。而具有无效值的分区用于负向测试。
例如,研究下面所示的两个分区。
数值范围从零到十可以分为两(或三)个区间。在本例中,我们有两个区间:-10 到 -1 和 0 到 10。可以从每个区间中抽取样本值(例如 5 和 -5)来测试各种场景。参见…… 等价类划分和边界值分析 本课将提供更多示例。
如何进行阳性和阴性检测
以下序列将一个要求转化为一组平衡的正面和负面案例。
- 阅读有关限制的要求。 请注意所有可接受的格式、范围和必填字段。规范允许的都视为肯定情况,规范排除的都视为否定情况。
- 先写出正面情况。 提供有效数据,执行操作,并将预期成功结果记录为基准。
- 从相同的极限推导出反例。 使用边界值分析和等价类划分来生成空白字段、错误的数据类型和超出范围的数字。
- 添加敌对输入。 包括 SQL注入 字符串、过期令牌和格式错误的 API 有效负载 安全性测试 差距很早就显现出来了。
- 扩展到非功能性检查。 A 负载测试 当支持的用户数量为正数时, 压力测试 超过这个限制就是对应的反例。
- 选择每个案件的审理地点。 排除阴性病例。 烟雾测试和健全性测试它们是快速正向门,并在功能和 回归测试 周期。
ATM取款会显示配对信息。成功的情况是输入正确的PIN码和有效金额,因此会拿到现金和收据。失败的情况是输入错误的PIN码,会收到拒绝信息,然后银行卡会被冻结。
保持平衡的最佳实践
- 在开发开始之前,针对每个需求至少编写两个案例,一个正面案例和一个负面案例。
- 按影响程度优先处理负面案例,因此注射和支付失败优先于表面输入错误。
- 要明确指出错误信息本身,而不仅仅是指出操作失败,因为含糊不清的信息也是一种缺陷。
- 留出空间 探索性测试并通过您的系统记录调查结果。 缺陷管理流程.
⚠️警告: 切勿在实际生产环境中运行负面测试用例。负面测试用例旨在强制触发故障,而故意崩溃会影响真实用户和真实数据。

.png)
.png)
.png)
.png)