TGViewer
Саша Раковский Саша Раковский @rakovskyxp · 833 subscribers
Post #135 758
Про валидацию тестовой модели

Меня в своё время вот какой факт застал врасплох: если у вас все зашибись с автотестами, и все кейсы покрыты, то это, оказывается, ваще не значит, что все работает. 

Если ваши автотесты работают с заглушками внешних систем (это правильный вариант), то при столкновении с реальной системой все может пойти не так. Также тесты могут не учитывать какие-то нюансы вашей инфраструктуры. Да и каких-то особенных кейсов может быть больше, чем вы думали изначально. 

В общем, несмотря на то, что тест зелёный, все равно необходимо проверять, что все реально работает, как надо. Это называется валидацией тестовой модели, и это очень важно. Очень важно. Пока тест не провалидирован руками, ему верить нельзя.

Как это делается? По-разному, но лучше всего это делать как можно чаще - сразу после реализации даже небольшого куска функциональности. Одно из главных правил Lean: если что-то болит, надо делать это как можно чаще. 

На этой идее стоит экстремальное программирование. Плохо с проектированием - внедряйте практики регулярного ежедневного и ежечасного рефакторинга. Плохо с тестами - пишите каждый тест после каждого кусочка кода, а лучше даже вообще до. Плохо с мерж-конфликтами? Мержите в мастер каждый день, а лучше - каждый час.

Вот и с валидацией так же: позеленили тест-кейс - сразу ставьте на стейджинг (копию прода) и проверяйте, будет ли соответствовать в проде ваш тест тому, поведению, которое вы планировали реализовать. 

Впрочем, тут для фуллстеков есть нюанс: если вы зелените тесты на бэке, то фронт, вполне вероятно, может быть ещё не готов. Поэтому часть сложных кейсов с бизнес-логикой имеет смысл валидировать только тогда, когда для них уже готов фронт, а бэк стараться предварительно валидировать какими-то квази-тестами: например, интеграционными смоуками с реальной внешней системой.

Без такой дисциплины постоянной валидации вам придётся уже в конце разработки проходить все это руками кейс за кейсом и править все косяки. И вот тут легко может притаиться какой-нибудь отстойный нежданчик. А скорее всего целая куча таких нежданчиков.

И тогда, как минимум, вы окажетесь в дурацкой ситуации, когда фича вроде как написана, но сколько там ещё багов на самом деле - одному богу говнокода известно. То есть фича готова, но не готова, а когда будет, вы не знаете и никто не знает.

Еще обиднее может быть, когда на тесте выяснится, что, например, весь ваш подход к интеграции/реализации был неверный, и фичу необходимо очень сильно переделать. Вот это вообще антикайф, отвечаю.

PS: в комментариях непонятки, поэтому уточню. Если ваш автотест зелёный, а ручками не работает, то, значит, автотест неправильный. В этом суть валидации. Правьте тест, правьте поведение и валидируйте по новой.

Если и тест зелёный, и ручками все хорошо, то это не значит, что тест правильный, но теперь это уже вопрос ревью.
  • ❤ 2
More from @rakovskyxp
  1. Oct 16, 2026Очередной топ-3 Последние посты были пустоватыми, жвачка такая, воздух погонять. Люди жалу…
  2. Oct 15, 2026В марте 2025 Дарио сказал, что в течение 12 месяцев 100% кода будут писать нейросети. Коне…
  3. Oct 9, 2026Я полгода держался, но нет. Теперь будут регулярные разборы ахинеи от этого чувака, извини…
  4. Oct 9, 2026Или вот такое ещё. Короче, если подписаны, то фильтруйте все до каждой запятой.
  5. Oct 9, 2026Вот ещё немного ахинеи
  6. Oct 9, 2026Сейчас чем дальше, тем популярнее становится вот этот чувак. Будьте осторожнее, человек не…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →