Оля · DevOps, #qa-antrakt
03:07. Ночной прогон перед релизом красный, один тест:
test_order_flow FAILED, нижеassert 422 == 201. Релиз в девять. Я не автотестировщик, но дежурю я. Что сломалось: API, тест или стенд? Будить Тимура или выкатывать?
Вера Ланская · лид QA, #qa-antrakt
Оля права, и это наш долг, а не её. Отчёт пишется для человека, который видит этот тест впервые, в три часа ночи и без кода под рукой. Сделай так, чтобы по отчёту было понятно, что тест делал, что отправил, что получил и где именно сломалось.
Весь блок F мы учили тесты проверять правильные вещи: статус и тело, схему, права, данные, ожидания, внешние системы. Последний шаг перед боссом про другое: как тест рассказывает о своём падении. Тест, который поймал баг, но не объяснил какой, заставит человека повторить его работу руками. В три ночи этого никто не сделает, и красный прогон просто перезапустят.
Чёрный ящик
Когда самолёт садится жёстко, комиссия не спрашивает экипаж «ну что там было». Она открывает бортовой самописец. В нём записано не только «удар о полосу», а всё, что было до: высота, скорость, положение закрылков, каждая команда и каждый ответ приборов. По записи видно, на какой секунде пошло не так.
Строка assert 422 == 201 это «удар о полосу». Факт верный, но бесполезный. Отчёт теста должен быть самописцем: какие шаги тест прошёл, что на каждом отправил и получил, на каком шаге и с какой ошибкой упал.
урок из курса
Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.