Как правильно сказать, что модульный тест не удался, но только потому, что сценарий тестирования нарушен?

#python #unit-testing #pytest #terminology

Вопрос:

Я ищу помощи в терминологии, чтобы объяснить, что модульный тест не удался, потому что в самом тестовом сценарии есть ошибки. Утверждение «этот модульный тест не удался, потому что…» обычно подразумевает, что тестовый сценарий верен, а неверна тестируемая функция. Я ищу другой путь.

Контекст: Я оцениваю кучу заданий в Python 3.x, где учащиеся должны были определить некоторые классы и подклассы, а также выполнить модульное тестирование в Pytest. Я хотел бы дать краткую, но правильную обратную связь.

Комментарии:

1. «Модульный тест не удался, но только потому, что тестовый сценарий сломан» кажется нормальным. Или, возможно, «…тестовый сценарий неверен». Или более кратко: «код правильный, тест неправильный». Добавьте «он тестируется на <неправильное значение>, но он должен тестироваться на <неправильное значение><правильное значение>».

Ответ №1:

Работая в качестве SDET, мне часто приходится различать плохие/неработающие тесты и плохой код продукта. Обычно мы делаем это, говоря о том, что нужно исправить, чтобы тест прошел (оставаясь при этом полезным и действительным тестом).

Независимо от источника сбоя, вы все равно говорите об ошибке в коде. В обоих случаях (если вы потратили время на выявление и выявление причины) вы можете сказать «Вызвано ошибкой в строке n file.py», или «ошибка в функции f из file.py». Затем из файла, о котором мы говорим, следует, имеем ли мы дело с ошибкой, вызванной плохим кодом продукта или плохим тестовым кодом.

Вы можете усилить этот вывод, объяснив, почему этот код является источником проблемы. Некоторые надуманные примеры будут выглядеть так:

Тест n не удался из-за ошибки в строке 5 test.py. assert False всегда будет терпеть неудачу и ничего осмысленно не проверяет в class.py.

Тест n не удался из-за ошибки в строке 20 class.py. sub(a, b) должен вернуться a - b вместо a b