#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