如果输入不是预期但正确处理它是否有效?

时间:2016-04-12 02:13:48

标签: testing

我正在对Web服务进行软件测试,我想知道,如果Web服务采用邮政编码并返回邮政编码的坐标。如果我输入99999,这不是一个邮政编码,但系统没有崩溃,它只是在两个坐标上都回复0,那被认为是无效输入吗?我不确定,因为它没有崩溃系统,这意味着它可以处理输入,所以它是否使输入有效或因为99999不是邮政编码而仍然无效?

2 个答案:

答案 0 :(得分:1)

你如何定义无效?谷歌的定义之一是:

  

(计算机指令,数据等)不符合正确的格式或规格。

根据这个定义,它是无效的。它产生了无效的答案。

但是,如果它是您的Web服务,并且这是预期的行为(故意为了防止崩溃并向用户显示明显不正确的答案),那么我不会认为它无效。在某种程度上,这是预期的输入" - 它可以防止用户出错,您应该始终将其添加到代码中。

但如果是这种情况,那么我假设您采用不同的方法来警告用户不正确的用户。

答案 1 :(得分:1)

完全依赖 来确定Web服务的规范。

例如:

  • 如果它指出它在无效输入时返回0,它就可以正常工作 - 继续前进。
  • 如果它声明您应该只提供有效的输入,那么您将违反合同并且可以随意做任何事情。继续前进。
  • 如果没有说明它将对无效输入做什么,它也可以做任何他想做的事情。 通常遵循最不惊讶的原则,但绝不是强制性的。

最后一点是重要的一点:只有当软件没有按照文档记录的方式工作时才存在真正的错误。很多人认为,当软件没有像他们期望的那样工作时,这是一个错误,但实际上,这是一个实施决策。

条件和有效输入,但这可能不是这种情况。假设这些坐标是纬度/经度,0/0位于大西洋中部,距离最近的主要陆地约600公里。因此,任何邮政编码都不可能解决该协调问题。

话虽如此,任何体面的网络服务都应该记录允许的输入,并说明如果合同被破坏将会发生什么。你可以使用的那个(我们无法分辨,因为我们不知道你正在使用哪一个),你可能需要搜索它。