首页 > 解决方案 > 说单元测试失败但仅仅因为测试脚本被破坏的正确方法是什么?

问题描述

我正在寻求有关术语的帮助来解释单元测试失败是因为测试脚本本身有错误。“这个单元测试失败是因为……”这句话通常意味着测试脚本是正确的,而被测函数是不正确的。我正在寻找相反的方法。

背景:我在 Python 3.x 中对一堆作业进行评分,学生必须定义一些类和子类,同时还要在 Pytest 中提供单元测试。我想给出简洁但正确的反馈。

标签: pythonunit-testingpytestterminology

解决方案


作为一名 SDET,我经常需要区分坏/损坏的测试和坏的产品代码。我们通常通过讨论需要解决哪些问题才能通过测试(同时仍然是一个有用且有效的测试)来做到这一点。

无论失败的根源是什么,您仍然在谈论代码失败。在这两种情况下(如果您花时间识别和隔离原因),您可以说“由 file.py 的第 n 行的错误引起”或“file.py 的函数 f 中的错误”。然后,我们正在讨论的文件暗示了我们是否正在处理由错误的产品代码或错误的测试代码引起的故障。

您可以通过解释为什么该代码是问题的根源来加强这种暗示。一些人为的例子看起来像:

由于 test.py 第 5 行的错误,测试 n 失败。assert False总是会失败,并且不会有意义地测试 class.py 中的任何内容。

由于 class.py 第 20 行的错误,测试 n 失败。sub(a, b)应该返回a - b而不是a + b


推荐阅读