【问题标题】:Does Negative Test Cases Exists是否存在否定测试用例
【发布时间】:2015-07-30 20:20:58
【问题描述】:

我正在参加一个项目评审,评审员让我展示项目的单元测试用例,我说在这里。然后被要求提供负面的单元测试用例......负测试用例???它存在吗?我 12 年来从未有过这样的经历……你呢?

我尊重审稿人,因为他通过其他问题增加了很多价值,但负单元测试......真的!

我的第一个问题是——我们是否有任何单元测试用例无法通过?我的意思是它是负面的,所以它应该失败......不是吗?然后我开始与同行讨论并在互联网上搜索。我得到了压倒性的结果来得出结论,但问题仍然存在,“负面测试用例”如何通过来证明产品的质量?不应该失败吗? 到目前为止,我的想法也包括了 QA 测试用例。让我们举几个例子: 1. 肯定:名称字段最多只能接受 100 个字母 - 应该通过以证明产品的质量 2. 否定:名称字段不应接受超过 100 个字母 - 也应通过以证明产品质量 3. 肯定:名称字段应该只接受字母 - 应该通过以证明产品的质量 4. 否定:名称字段不应接受任何特殊字符或数值 - 也应通过以证明产品质量 我不能以不同的方式解释 1 & 2 和 3 & 4,这对我来说都是一样的,而且对我来说所有的测试用例都是正面的(实际上只是应该通过的测试用例……既不是正面的也不是负面的)。更重要的是,所有通过测试的结果应该完全相同,即 - 通过/绿色。

我实际上没能向我的同行证明这一点并且失去了所有的论据——但是“负单元测试用例”严重!!!   。请分享您的想法,如果您编写了任何单元测试用例 (Dev) 或测试用例 (QA) 的失败让您感到高兴,请告诉我。

【问题讨论】:

    标签: testcase


    【解决方案1】:

    好吧....负面测试实际上只是意外的用户行为。例如,如果用户尝试在数字字段中键入字母,如果负数情况有效,则应显示“输入/行为不正确”请输入数字值..

    作为测试的东西...嗯,这取决于它所处的情况。 比如它注定要失败或通过。结果会有所不同。

    示例:超过 100 个字母或少于 100 个字母值。两者的“否定”测试用例会有所不同。

    【讨论】:

      【解决方案2】:

      仅仅因为测试是否定的并不意味着它应该失败。在某种程度上,您是对的 - 您在所有测试中都获得相同的“完全清除”或“通过”或“绿色”。

      你可以说正面和负面的测试用例并没有那么不同——你期望程序以某种方式做出反应,如果是这样,它就会通过。

      只有在表征输入或表征行为的上下文中,正面/负面才有意义。一个肯定的测试用例为程序提供了程序预期接收的内容,并在程序执行预期行为时通过。

      因此,否定测试用例的特征不是测试本身失败,而是程序如何“失败”或响应错误或不正确的输入。

      正面/负面特征只是分解如何查看测试每个功能以确保所有需要涵盖的内容都被涵盖的便捷方式。

      当您在问题中使用“肯定”时,您会说“肯定:名称字段应该只接受字母”。但是,您如何表达这一点,这实际上是一个负面测试。您不是在问“名称字段是否接受字母字符?”相反,您只查看它接受的内容,并证明它接受字母数字字符,需要两个测试,一个证明它可以(积极的)和一个证明它不会接受其他任何东西(消极的)。

      正确地,我们有类似的东西: 肯定:名称字段接受字母数字字符 否定:名称字段不接受非字母数字字符

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-05
        • 2011-02-16
        • 2013-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-30
        相关资源
        最近更新 更多