10.10.2026
Про тестирование
Тестирование IT-проектов: как я перестал писать баги и начал их коллекционировать
Проджект-менеджер:
— Я думал, ты уже закончил. Почему всё ещё пишешь код?
Программист:
— Потому что я закончил писать код. Теперь я заканчиваю писать баги.
Эта шутка бородатая, как дедушка, который учил меня писать на COBOL. Но в ней — вся суть нашей профессии. Люди далёкие от разработки уверены: «написал код — значит, закончил». Мы, синьоры, знаем правду. Написание кода — это только начало. Дальше начинается то, за что нам платят: поиск ошибок, воспроизведение невоспроизводимого и объяснение продакту, почему кнопка «Купить» иногда отправляет пользователя на страницу с котиками.
Анатомия бага: от рождения до триажа*
Тестирование бывает разным. White-box — когда ты знаешь код и видишь, где он сломан. Black-box — когда ты не знаешь код и просто жмёшь кнопки в надежде, что что-то сломается. Grey-box — когда ты знаешь код, но притворяешься, что не знаешь, чтобы не расстраиваться раньше времени.
На практике самый популярный метод — метод научного тыка. Документации нет, тест-кейсы писались на коленке, а QA-инженер уволился три спринта назад. Что остаётся? Открыть приложение, зажмуриться и начать кликать. Где-то сломается. Это ли не регрессионное тестирование?
На практике самый популярный метод — метод научного тыка. Документации нет, тест-кейсы писались на коленке, а QA-инженер уволился три спринта назад. Что остаётся? Открыть приложение, зажмуриться и начать кликать. Где-то сломается. Это ли не регрессионное тестирование?
Автоматизация: когда роботы делают вид, что работают
Говорят, ручное тестирование плохо масштабируется. Это правда. Один тестировщик может вручную проверить 20 сценариев в день. Двадцать тестировщиков — 400 сценариев. Но когда у вас 50 000 пользователей и релизы каждый вторник, математика перестаёт работать.
На помощь приходит автоматизация. Selenium, Playwright, Cypress — звучит как имена волшебников. И они действительно творят чудеса, пока не выяснится, что один из элементов на странице имеет динамический id, и скрипт падает на каждом прогоне. Тогда ты сидишь и думаешь: «Может, проще нанять 20 тестировщиков?»
На помощь приходит автоматизация. Selenium, Playwright, Cypress — звучит как имена волшебников. И они действительно творят чудеса, пока не выяснится, что один из элементов на странице имеет динамический id, и скрипт падает на каждом прогоне. Тогда ты сидишь и думаешь: «Может, проще нанять 20 тестировщиков?»
Тестирование в дикой природе
Самое интересное начинается, когда приложение покидает уютную тестовую среду и выходит в мир. Пользователи — существа непредсказуемые. Они открывают приложение в лифте, где нет связи. Они нажимают кнопки двумя пальцами одновременно. Они используют старый Android, о существовании которого вы забыли.
Мобильное тестирование — это отдельная религия. Нужно проверять всё: иконки без подписей (поймёт ли пользователь, что это за фигня?), первый пользовательский опыт (FTUE), работу без сети, разные версии OS. И вот ты сидишь с пятью телефонами на столе, как хакер из фильма, и понимаешь: это не тестирование. Это театр абсурда.
Мобильное тестирование — это отдельная религия. Нужно проверять всё: иконки без подписей (поймёт ли пользователь, что это за фигня?), первый пользовательский опыт (FTUE), работу без сети, разные версии OS. И вот ты сидишь с пятью телефонами на столе, как хакер из фильма, и понимаешь: это не тестирование. Это театр абсурда.
Заключение
Я работаю в IT достаточно долго, чтобы помнить, как выглядит код, который не тестировали. Это страшно. Поэтому я тестирую. Пишу баги. Их чинят. Появляются новые. Цикл повторяется. И знаете что? Мне это нравится.
Потому что где-то там, в глубине души, я верю: однажды мы выпустим релиз без багов. И тогда я смогу отдохнуть. Но я знаю, что этого не случится. Потому что баг — это не ошибка в коде. Баг — это образ жизни.
Потому что где-то там, в глубине души, я верю: однажды мы выпустим релиз без багов. И тогда я смогу отдохнуть. Но я знаю, что этого не случится. Потому что баг — это не ошибка в коде. Баг — это образ жизни.
*Триаж (triage) — это процесс оценки и сортировки поступивших багов, чтобы понять, какие исправлять в первую очередь. Термин пришёл из медицины («сортировка пациентов по срочности помощи») и отлично ложится на разработку.
Это часть серии IT-разбор с юмором. Смотрите больше ➜