正向测试用例和反向测试用例

12

正向测试用例负向测试用例是什么?

通过谷歌搜索,我发现的答案非常令人困惑。能否举个例子来解释一下?

6个回答

27

正向测试用例测试系统是否执行其预期功能。例如:当提供有效凭据时,将允许您登录。

负向测试用例测试系统不应该做的事情。例如:当提供无效凭据时,不应该允许您登录。


1
在正向测试用例中,我们只使用有效的输入,在负向测试用例中,我们使用无效的输入,这种说法正确吗? - a Learner
是的。例如,一个数字输入字段期望1-10之间的数字。正测试例是1-10的数字,负测试例是0及以下或11及以上的数字。 - Scott Helme
这回答了您的问题吗? - Scott Helme
有些方法是在输入无关数据时不执行任何操作的,例如在OnHit(Animal)方法中,当对象是一只熊时,我会增加bearHits,但当它是兔子或其他东西时,我什么也不做,尽管这是正常行为的一部分。因此,当OnHit()方法的参数是一只兔子时,这是否应被视为一个负面测试案例? - Rytis I
1
@aLearner 我认为你的评论突显了真正的区别:无效与有效的输入数据。如果负/正的目的是确定系统是否表现出_预期的_行为,那么我认为这种区别并不那么重要,除非作为测试工作优先级的一种方式。 - pgpb.padilla
如果你幸运的话,你大多数情况下都会处理带有定义验收标准的用户故事。当验收标准提供时,编写测试用例是一个很大的帮助。实际上,验收标准有三种不同的类型:正向测试负向测试超额实现。最后一类是你根本不需要实现的。如果没有受到指示,我经常会发现自己在进行超额实现! - Majid Fouladpour

1

正向测试是指系统针对有效输入数据进行验证的情况。

例如,考虑这样一个场景:您想测试一个包含搜索字段的应用程序,要求是不应输入特殊字符。

ID: 1

Name/Idea: 验证搜索字段使用有效输入工作

前置步骤:"搜索"屏幕应该已经打开

重现步骤:

  1. 使用有效信息填写搜索字段

  2. 点击“搜索”按钮

预期结果:应该显示搜索结果屏幕

正/负测试:1

负向测试是指系统针对无效输入数据进行验证的情况。负向测试检查应用程序在处理其负面输入时是否按预期行为。

例如,考虑仅接受字母的相同示例。因此,在搜索字段中提供像“@,#,/”这样的字符,并检查应用程序的行为,无论所有无效输入是否应显示验证错误消息或系统是否应禁止输入特殊字符。

ID: 1

名称/想法: 验证搜索字段是否能处理无效输入

前置条件: "搜索"屏幕应该已经打开

重现步骤:

  1. 填写无效信息的搜索字段 (例如:@,#,/)

  2. 点击 "搜索" 按钮

期望结果: 弹出错误消息的弹窗应该出现

积极/消极: 0


1

我不确定,但我对以上回答有些不满意。因此,以下是我的观点:

  1. 正测试是测试某些应该发生的事情是否确实发生了。
  2. 负测试是测试某些不应该发生的事情是否确实没有发生。

让我们来看一个场景,其中有两个需求:

  1. 一个文本框用于输入一些字符。
  2. 一个按钮,用于将输入的文本提交到服务器。
  3. 当字符数少于5个时,“少于5个字符”将显示一条消息。
  4. 当服务器接受提交的文本时,“文本已被接受”将显示一条消息。

现在,一个正向场景会是:

  1. 在文本框中输入“abcdef”。
  2. 点击提交按钮。
  3. 必须显示“文本已被接受”。

另一方面,一个负向场景会是:

  1. 在文本框中输入“abcd”。
  2. 点击提交按钮。
  3. 不应显示“文本已被接受”。

0

正向测试用例是指测试旨在根据需求返回预期结果的情况。

负向测试用例是指测试旨在确定产品响应超出定义范围的情况。

您不是通过结果来确定测试类型,而是基于输入来确定预期结果。

希望这有意义,这里有一个很好的例子 http://osdir.com/ml/programming.software-qa/2004-12/msg00060.html


0

除非您在内容中提出要求,否则正面或负面都毫无意义。假设一个要求是“如果用户ID不正确,则登录应失败”。我知道这有点反直觉,但正向测试是一种会在登录失败时生成故障的测试类型,而负向测试将生成成功登录的结果。


-1

我们使用正向测试用例来检查一些场景,例如我们为代码使用的任何场景。

负向测试用例以负面方式检查某些特定场景。

通过两者的帮助,我们可以增加代码覆盖率。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接