Что такое тестирование ПО и чем занимается тестировщик
Самое частое заблуждение о профессии: тестировщик ищет ошибки. На самом деле он отвечает на вопрос, можно ли это выпускать, а найденные дефекты — только часть аргументов.
Что такое тестирование ПО простыми словами
Тестирование программного обеспечения — это проверка того, что продукт делает то, что от него ждут, и не делает того, чего не ждут. Ключевое слово — ждут: должен быть источник ожиданий. Требование, макет, поведение прошлой версии, здравый смысл. Без него разговор превращается в «мне кажется, тут криво».
Результат работы — не список багов, а информация о качестве: что работает, что нет, чем рискуем, если выпустим сегодня. Решение принимает команда, но данные для решения даёт тестировщик.
Если на вопрос «как там новая функция» вы отвечаете «нашёл три бага» — это отчёт о процессе. Ответ по существу звучит иначе: «основной сценарий проходит, оплата картой работает, СБП падает на суммах больше 15 000 — выпускать можно, но кнопку СБП лучше спрятать».
Чем тестировщик занят на самом деле
Прокликивание интерфейса — заметная, но не самая большая часть. Обычный день выглядит примерно так.
- Читает требования и макеты к новой функции и задаёт вопросы. Половина дефектов ловится здесь, до единой строчки кода.
- Составляет чек-лист: что проверить, в каком порядке, на каких данных.
- Проверяет — руками, через API, запросами к базе, в разных браузерах и на телефоне.
- Оформляет находки так, чтобы разработчик починил с первого раза и не переспрашивал.
- Перепроверяет исправления и смотрит, не сломалось ли соседнее.
- Сообщает статус: что готово, что рискованно, чего не успел проверить.
Последний пункт недооценивают. Честное «эти сценарии я не проверил» ценнее молчаливого «вроде всё ок».
Ошибка, дефект и отказ — почему это разные слова
| Термин | Что это | Пример |
|---|---|---|
| Ошибка | Действие человека | Программист написал > вместо >= |
| Дефект | След ошибки в коде или документации | В условии скидки граница проверяется неверно |
| Отказ | Наблюдаемое неверное поведение | При сумме ровно 5000 скидка не применилась |
Разница практическая: дефект может годами лежать в коде и не давать отказа, пока не совпадут условия. Поэтому «у нас всё работает» не означает «дефектов нет».
Почему нельзя проверить всё
Возьмите форму из пяти полей. Даже если в каждом всего десять осмысленных вариантов, комбинаций — сто тысяч. Добавьте браузеры, разрешения экрана, роли пользователей и состояние данных, и число перестаёт помещаться в жизнь.
Отсюда вся техническая часть профессии: техники, которые сокращают количество проверок без потери смысла. Классы эквивалентности, границы, попарное тестирование — это не теория ради теории, а способ уложиться в срок. Подробнее — в открытом уроке про классы эквивалентности и границы.
Почему тестирование не гарантирует отсутствие дефектов
Это один из принципов профессии, и он звучит обескураживающе: тестирование показывает наличие дефектов, но никогда не доказывает их отсутствие. Прошли двести проверок и всё зелёное — значит, эти двести сценариев работают. Про остальные вы не знаете ничего.
Из этого следует практический вывод, который отличает зрелого тестировщика от новичка: правильный ответ на вопрос «всё ли проверено» — не «да», а перечень того, что проверено, и того, что осталось за границей. Второе не менее важно, чем первое.
Есть и обратная сторона — парадокс пестицида. Одни и те же проверки со временем перестают находить новое: команда привыкает и не совершает ровно тех ошибок, которые вы ловите. Поэтому набор проверок приходится регулярно менять, а не только пополнять.
Кто ещё отвечает за качество
Распространённое заблуждение: за качество отвечает тестировщик. На деле он отвечает за информацию о качестве, а само качество делают все.
| Роль | Вклад в качество |
|---|---|
| Аналитик | Требования без противоречий и пробелов — половина дефектов не появляется |
| Дизайнер | Понятный интерфейс, состояния загрузки и ошибок продуманы заранее |
| Разработчик | Модульные тесты, ревью кода, обработка крайних случаев |
| Тестировщик | Проверка соответствия и честная картина рисков |
| DevOps | Стенды, на которых воспроизводится прод, и быстрый откат |
Понимать это важно на собеседовании: кандидат, который говорит «я отвечаю за качество продукта», звучит красиво, но неточно. Ответ «я даю команде данные, чтобы решение о выпуске принималось осознанно» точнее и вызывает больше доверия.
Что должен знать тестировщик, кроме кнопок
- Как устроен веб: клиент и сервер, HTTP, коды ответов, cookie и хранилища браузера.
- DevTools: вкладка Network, консоль, троттлинг сети, проверка кэша.
- API: собрать запрос в Postman, подставить токен, прочитать ответ.
- SQL: SELECT с WHERE и JOIN, чтобы проверить, что реально записалось в базу.
- Инструменты команды: трекер задач, документация, git на уровне «понимаю, какая версия на стенде».
Это тот минимум, по которому отсеивают на собеседовании. Без него остаётся только «прокликать», а именно эта часть работы сокращается быстрее всего.
Тестировщик — это программист?
Нет. Ручному тестировщику программирование не требуется, хотя базовое понимание кода помогает. Автоматизатор пишет код, но это следующая ступень.
Чем QA отличается от тестировщика?
QA (обеспечение качества) шире: это про процессы, которые не дают дефектам появиться. Тестирование — часть QA, проверка уже сделанного. В вакансиях слова часто используют как синонимы.
Правда, что тестировщик — это скучно?
Механическое повторение одного и того же — да, скучно, и именно оно автоматизируется. Интересная часть — придумать, как сломать то, что все считают рабочим.