Как я перестал писать длинные чек-листы и начал учить разработчиков самопроверке
Раньше я считал, что идеальный чек-лист - это подробный документ на 200 пунктов. Я тратил часы на расписывание каждого шага: "нажать кнопку", "проверить цвет", "убедиться, что текст не съехал". Разработчики смотрели на это и либо игнорировали, либо пробегали по диагонали. А потом - баги, конфликты, фразы вроде "это не моя зона ответственности".
Однажды я понял: длинные чек-листы не учат разработчика думать. Они учат механически выполнять команды. И вместо контроля качества получается имитация.
Я перестроил подход. Теперь перед сдачей фичи я даю разработчику не список проверок, а три вопроса.
Что именно ты изменил? - требует осознания кода. Какие сценарии могут сломаться? - развивает критическое мышление. Как ты это проверил? - вынуждает показать доказательства: скриншоты, логи, тесты.
Результат: баги стали находить раньше, а не в день релиза. Разработчики перестали сваливать ответственность - они начали проговаривать риски сами. А я экономлю часы на рутинной регрессии.
Что делать, если внедрить такой подход сложно? Начинайте с малого: предложите для одной фичи вместо чек-листа провести мозговой штурм. Покажите выгоду: меньше переделок - быстрее доставка. Не давите: если разработчик упорно просит чек-лист, дайте короткий (10-15 пунктов) и постепенно сокращайте.
Главная ошибка новичков: копировать мои вопросы дословно, не адаптируя под команду. Например, если разработчики не пишут юнит-тесты, вопрос "как ты это проверил" вызовет раздражение. Адаптируйте: "Покажи, что код работает в браузере".
Почему это круто для карьеры: Переход от "контролера" к "наставнику" повышает ваш авторитет. Разработчики начинают уважать вас как эксперта, а не как надзирателя. Вы освобождаете время для сложных кейсов: нагрузки, безопасности, UX-анализа.
Недостатки метода (честно): Нужна хорошая коммуникация. Если команда не готова к диалогу, сначала настройте контакт. Медленнее на старте: первые фичи могут потребовать больше обсуждений, чем проверка по чек-листу. Не подходит для регрессионных блоков, где нужно быстро убедиться, что ничего не сломалось.
Как я пришел к этому выводу: Я проработал 5 лет на проекте, где каждый релиз сопровождался 50-страничным чек-листом. Разработчики сдавали баги, тестировщики находили новые, сроки горели. Когда я предложил сократить чек-листы, мой лид сказал: "так исторически сложилось". Я ослушался - и через месяц команда сама попросила не возвращаться к старому подходу.
Совет для роста: начните с малого - замените чек-лист на 3 вопроса для одной фичи. Через месяц сравните количество багов от разработчиков и время на тестирование. Увидите разницу.
P.S. Не выкидывайте все чек-листы - они спасают при регрессии. Но для самой фичи научите разработчика самопроверке. Это даст больше, чем любой документ.
Тупик скиллов: почему ты перестал расти на middle и как из него выйти без смены проектов
Знакомо? Ты уже уверенно тащишь задачи, но внутри - ощущение, что упёрся лбом в стену. Всё, что можно было выучить на этом проекте, вроде выучено. А свалить на другой проект или дёргаться с поиском не хочется - и так норм.
Почему так бывает? Частая штука: middle путает «делаю работу» с «расту». Когда ты перестаёшь подолгу смотреть на процессы, не задаёшь вопросы «а почему так?», а просто закрываешь тикеты - ты не развиваешься. Ты становишься надёжным исполнителем, но не специалистом, который двигается выше.
Вот что можно попробовать без смены проекта.
* Ищи слепые зоны. Посмотри на проект как на систему рисков, а не список багов. Например, часто ли падает тестовое окружение? Есть данные, которые уходят в прод без проверки? Обычно такие вещи висят в зоне «не моя забота». А senior’ы этим и отличаются - залезают туда, где не просили.
* Автоматизируй не ради фреймворка, а ради выгоды. Вместо «надо выучить новый инструмент» спроси: «Какая рутина сжирает 80% времени?». Может, написать скрипт для генерации тестовых данных или бота для напоминаний о регресс-прогоне.
* Учи других. Это звучит банально, но работает - собери чек-лист граблей для новичков, прочитай мини-воркшоп по тест-дизайну. Когда объясняешь, вылезают твои собственные дыры.
* Дневник решений. Просто записывай раз в день одну нестандартную ситуацию: что сломалось, как искал причину, что сделал бы иначе. Через месяц перечитай - удивишься, сколько нового уже накопилось.
* Не гадай. Вместо «вроде работает» используй модели. Добавили новый API - проверь не только его, но и обратную совместимость, нагрузку, безопасность. Интуиция хороша, но она же и тормозит.
Что обычно тормозит:
- надежда, что новый инструмент сам вытянет рост;
- замыкаться только на тестировании и не лезть в процессы команды;
- думать, что на скучном проекте негде расти - всегда есть куча серых зон.
Для меня middle - это не галка в резюме, а точка выбора. Если перестать искать проблемы только в багах, а начать смотреть на процессы, даже самый «серый» проект даст кучу поводов расти.
Этой весной Oracle уволил почти 30 000 сотрудников. Председатель совета директоров Ларри Эллисон объясняет это тем, что выиграют те, кто сегодня строит инфраструктуру для ИИ. Компания инвестирует миллиарды в дата-центры — в 2027 году объем таких вложений составит $70 млрд. Увольнения же высвободят до $12 млрд в год, что за несколько лет покроет эти затраты.
Oracle не одинока. В прошлом году Microsoft уволила 15 000 сотрудников, Meta — 8 000. Amazon за два года избавилась почти от 50 000. В сумме без работы остались 165 000 представителей технологического сектора. Хотя масштабы впечатляют, такие сокращения не редкость в переходные времена, когда появляются новые технологии.
Пока тренд заметен на западном рынке, но волна, вероятно, дойдет и до России. Признаки уже есть: сокращение найма, «скрытые» увольнения и заморозка зарплат.
Вчера на код-ревью баг-репорта я чуть не лопнул от смеха и раздражения одновременно. Коллега прислал отчёт с 15 скриншотами, пояснениями в духе "нажал кнопку, курсор моргнул, потом не моргнул, потом снова моргнул" и стеной логов браузера. Разработчик закрыл баг через 3 минуты словами "не воспроизводится, недостаточно данных".
Знакомая ситуация? Мы, тестировщики, часто впадаем в крайности: либо пишем "всё сломалось" без шагов, либо раздуваем отчёт до размеров диплома. Но золотая середина — это баланс между полнотой информации и скоростью принятия решения.
Когда детализация становится вредной?
1. Перегрузка контекстом. Если указать все 50 шагов, включая "открыл браузер, нажал F12" — вы заставляете разработчика тратить время на фильтрацию. Ему нужно только то, что ведёт к багу. Лишнее — шум.
2. Избыточные логи. Один раз я вложил дамп логов за час, хотя баг воспроизводился за 2 секунды. Разработчик искал иголку в стоге сена и попросил сократить логи до момента ошибки.
3. Субъективные оценки. "Интерфейс выглядит ужасно" — не данные, а мнение. Нужны чёткие критерии: пиксели, размер, время в миллисекундах.
Как найти золотую середину?
* Принцип "минимально необходимого". Спросите: "Что разработчику нужно для воспроизведения за 30 секунд?" Шаги — только обязательные. Если баг проявляется после 10 повторов — напишите "повторить 10 раз", но не описывайте каждый.
* Разделите факты и контекст. Факты: "При вводе символа # поле сбрасывает значение". Контекст: "Только в Firefox 120 на macOS". Контекст — в среде или примечаниях, а не в шагах.
* Используйте визуальную иерархию. Скриншот с красной стрелкой и подписью "Ошибка в элементе X" — золото. Каша из 10 обводок — шум. Один баг — один скриншот с чётким указанием.
* Проверяйте время на чтение. Если я трачу больше минуты на понимание отчёта — я переписываю его. Разработчик не будет разбираться дольше.
Мой чек-лист перед отправкой:
- Может ли разработчик воспроизвести баг без дополнительных комментариев?
- Убрал ли я все шаги, не влияющие на воспроизведение?
- Самодостаточны ли скриншоты/логи?
- Не заменил ли я объективные данные субъективными оценками?
Помните: ваша цель — не показать, как много вы натестировали, а помочь разработчику исправить проблему быстро. Детализация — инструмент, а не самоцель. Если отчёт мешает принятию решений — он вреден.
Пробуйте завтра взять свой самый старый баг-репорт и сократить его наполовину. Удивитесь, как много было лишнего.
Удалёнка съедает ROI: неочевидные потери, которые не считает бухгалтер
Мы в агентстве «Найт Стрит» уверены, что затраты на удалёнку обычно считают по очевидной экономии — не нужен большой офис, падают расходы на командировки, нанимать можно по всей стране. С этой стороны всё сходится. Но у распределённой работы есть вторая колонка расходов, которая почти не попадает в расчёты бухгалтера. Сюда идёт лишний созвон там, где хватило бы сообщения, согласование на два дня вместо десяти минут общения в переговорке, новичок, который вникает на проект месяц, а не положенные две недели.
По отдельности это мелочи, но в команде из сотни дорогих специалистов все эти мелочи складываются в миллионы потерянной выручки за год. Спорить, надо ли срочно возвращать всех в офис, мы не будем. Лучше с холодной головой посчитаем, где именно удалёнка бьёт по ROI и что с этим делать. Цифры дальше модельные: смысл не в том, чтобы поверить моим процентам, а в том, чтобы подставить в формулы свои данные.
Три вопроса, которые middle QA перестаёт задавать себе после года работы — и почему это тормозит рост
Когда дорос до middle QA, показалось, что все важные вопросы решены. Баги ищу, тест-кейсы пишу, с разработчиками спорю — нормально. Но спустя год заметил, что стою на месте. Оказалось, я перестал задавать себе три вопроса — и это незаметно съедало рост.
1. «Почему этот баг вообще появился — и как его можно было предотвратить?»
На junior-уровне радуешься, когда нашёл баг. На middle — когда закрыл задачу. Но после года работы многие перестают анализировать корни. Пропущенная проверка в автотестах? Ошибка в требованиях? Слабая коммуникация на уточнении? Если не спрашивать, остаёшься в роли ловца багов, а не инженера по качеству. Шанс повлиять на процесс улетает.
2. «Как мои тесты влияют на бизнес-метрики?»
Middle QA часто залипают на технику: покрытие, скорость прогона, количество багов. Но забывают спросить, что это даёт продукту. Уменьшает ли работа количество инцидентов в продакшене? Сокращает ли время выхода фичи? Если не связывать тесты с целями продукта, теряешь видимость своего вклада. На собеседованиях это сразу считывается — тебя не видят как стратегического игрока.
3. «Что я могу сделать по-другому, чтобы вырасти через полгода?»
После года легко уйти в рутину: автотесты пишутся, прогоны проходят, баги закрываются. Но рост сам не случается. Если не спрашивать, ищешь точки развития: новый инструмент, разобраться в архитектуре, взять ревью тестов у других. Иначе остаёшься на плато — и через год твой опыт просто «ещё год на той же позиции».
Middle — не статус, а этап, где легко застрять. Возвращайте эти вопросы в ежедневку. Они помогают не просто тестировать, а строить карьеру осознанно. Попробуйте сегодня — спросите себя про последний баг. Удивитесь, сколько нового увидите.
Рутина в QA — штука коварная. Сидишь полгода на проекте, repeat-баги одни и те же: сломалось — починили — упало опять. Искра гаснет. Начинаешь ненавидеть эти баги не потому что они важные, а потому что опять. Работа превращается в один бесконечный круг.
Но вот что я замечал: рутина не равно стагнация. Стагнация — это когда ты с ней смирился как с данностью.
Ошибка, которую я видел много раз: человек превращается в робота. Открывает баги по шаблону, голову отключает. А потом на собеседовании не может вспомнить, что предлагал по улучшению процесса.
Когда тонешь в рутине, теряешь способность анализировать причины. Repeat-баг воспринимаешь как «опять сломалось», а не как симптом кривого кода или архитектурной проблемы. Перестаешь рефлексировать: «Что я делаю, чтобы такого вообще не было?». Soft skills деградируют: с разработчиком общаешься через автомат «открыл-закрыл».
Мне помогали три вещи:
Первое — сдвиг фокуса. Каждую неделю беру однотипную проверку и ищу необычное. Просто кликать скучно, поэтому спрашиваю: «А что, если разработчик изменил логику, а мне не сказал?». Обычный repeat-баг может открыть скрытую регрессию. Мозг переключается с конвейера на следопыта.
Второе — не сводить обратную связь к «я забагал». Повторный баг — это повод предложить автотест или пойти к разработчику и спросить: «Почему код написан так, что он падает? Может, проблема глубже, в архитектуре?». Ты перестаешь быть пассивным исполнителем.
Третье — искусственные ограничения. Ставлю таймер: 30 минут на стандартные проверки, но параллельно выписываю гипотезы, что еще может сломаться. Через месяц так накидал 5 предложений по регрессионному набору — их взяли в работу.
По поводу AI — тут ловушка. Он сгенерирует тест-кейсы, но про твою мотивацию не подумает. Если скормить ему всю рутину, перестанешь замечать паттерны, которые ведут к росту. Именно человек видит неудобные баги, ломающие сценарий. Рутина может эту внимательность развить, если не позволить себе уснуть.
Repeat-баги — это маркер. Если они одни и те же месяц, значит, что-то не так. Пора бить тревогу и предлагать коренное решение, а не просто тушить пожары.
А ты как с этим справляешься? Может, есть фишки, которые переворачивают подход к рутине.