我当时正在参加一个项目评审,评审员让我展示项目的单元测试用例,我说就是这里。然后被要求提供否定的单元测试用例…。负测试用例?它存在吗?我在…工作了12年,从来没有这样的经验你是?
我尊重审查者,因为他通过其他问题增加了很多价值,但单元测试…是负面的真的!
我遇到的第一个问题是--我们有没有不能通过的单元测试用例?我的意思是它是负面的,所以它应该失败,…难到不是么?然后,我开始与同行讨论并在互联网上搜索。我得到了压倒性的结果,但仍然存在问题,如何通过“负测试用例”来证明产品的质量?它不应该失败吗?到目前为止,我的想法也包括了QA测试用例。让我们举一些例子: 1.正面:名称字段应该只接受最多100个字母-应该通过以证明产品的质量2.负面:名称字段不应该接受超过100个字母-应该也通过以证明产品的质量3.正面:名称字段应该只接受字母-应该通过以证明产品的质量4.负面:名称字段不应该接受任何特殊字符或数字值-也应该通过以证明产品的质量我不能以不同的方式解释1&2和3&4对我来说也是一样,对我来说所有的测试用例都是肯定的(实际上只是应该通过…的测试用例既不是正面也不是负面)。更重要的是,结果应该完全相同,所有人都可以通过测试,即-通过/绿色。
我实际上没有向我的同行证明这一点,并且输掉了所有的争论--但是“负单元测试用例”严重!。请分享您的想法,并让我知道您是否编写了任何单元测试用例(Dev)或测试用例(QA)失败,这让您感到高兴。
发布于 2015-07-31 04:28:47
仅仅因为测试是否定的并不意味着它应该失败。在某种程度上你是对的--你的所有测试都会得到相同的“全部通过”或“通过”或“绿色”。
你可以说肯定的和否定的测试用例并没有太大的区别--你期望程序以某种方式做出反应,如果它这样做了,它就会通过。
只有在描述输入或描述行为的上下文中,积极/消极才有意义。肯定的测试用例为程序提供了程序期望接收的内容,并在程序执行预期的行为时通过。
因此,负面测试用例的特征不是测试本身失败,而是程序如何“失败”或对错误或不正确的输入做出响应。
正面/负面表征只是一种方便的方法,可以分解如何查看测试每个功能,以确保覆盖所有需要覆盖的内容。
当你在你的问题中使用‘积极’时,你会说“积极:名字字段应该只接受字母”。然而,如何表达这一点,这实际上是一个负面的测试。您不会问,“Name字段接受字母字符吗?”相反,您只需要查看它不接受的内容,并证明它只接受字母数字字符,将需要两个测试,一个证明它可以(肯定的),另一个证明它不接受其他(否定的)。
正确地说,我们有如下内容:正:名称字段接受字母数字字符负:名称字段不接受非字母数字字符
发布于 2015-07-31 04:32:41
好吧,so....Negative测试真的只是一种意想不到的用户行为。例如,如果用户尝试在数字字段中键入一个字母,如果否定的大小写有效,则应显示“输入/行为不正确”请输入一个数字值。
作为测试的东西。嗯,这取决于它所处的情况。例如,如果它意味着失败或通过。结果会有所不同。
例如:超过100个字母或小于100个字母值。“否定的”测试用例对于任何一个都是不同的。
https://stackoverflow.com/questions/31733299
复制相似问题