Раздел 43 · Автотестирование с нуля

Легаси без тестов: характеристики, швы и росток

senior~35 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Савва · продакт, #qa-antrakt

Партнёры фестиваля «Белые ночи звука» до конца года платят половину комиссии. Договор подписан, к пятнице нужно в выплатах.

Тимур · бэкенд, #qa-antrakt

В payout.py никто не лезет три года. Тестов ноль, автор давно ушёл, бухгалтерия сверяет каждую копейку. Если я туда добавлю if partner, а потом поедет выплата обычным организаторам, разбираться будем полгода.

Вера Ланская · лид QA, #qa-antrakt

Поэтому сначала мы зафиксируем, что модуль делает сейчас, со всеми его странностями. Потом аккуратно добавим фичу рядом, а не внутрь. Тимур, никаких if до тестов.

Весь курс ты писал тесты к коду, про который знал, как он должен работать: есть спецификация, есть правила цен, есть контракт «ПлатиМ». У легаси спецификации нет. Есть код, который работает в проде годами, и люди, которые на этот код опираются. Сегодня разберём, как покрыть тестами код, который никто не понимает целиком, и как менять его, не ломая того, на что опираются другие.

Реставратор и фотографии

Реставратор, который получает старую картину, первым делом её фотографирует. Каждый сантиметр, с трещинами, пятнами и неудачными мазками прошлых реставраторов. Не потому, что трещины красивые. Если после работы владелец скажет «тут было иначе», фотография покажет, как было. А решать, что из трещин часть картины, а что повреждение, будут потом, с фотографией в руках.

Тесты характеристик это такие фотографии кода. Они фиксируют, что код делает сейчас, а не что он должен делать. Странное поведение тоже фотографируется. Чинить его или нет, решают отдельно.

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.