Как должна работать тест-менеджмент система

Система управления тестированием нужна для хранения тестов, а также её задача - помогать команде понимать, что происходит с качеством продукта и можно ли его выпускать.

Но если тесты пишутся без понимания логики системы и без привязки к рискам, со временем они начинают дублировать друг друга, устаревают и перестают помогать. Это частая проблема, с которой сталкиваются команды по мере роста продукта.

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

Когда тестирование строится от логики, структура становится другой. Тесты группируются по смыслу, а не по экранам. Это делает систему компактнее и понятнее. Сами тесты при этом должны фиксировать поведение системы, а не последовательность действий. В них должны быть конкретные входные данные, понятное исходное состояние и проверяемый результат. Такой тест можно воспроизвести без дополнительных вопросов, и по его результату можно быстро понять, что именно сломалось.

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

Отдельное место занимает набор критичных сценариев - «смоук». Это минимальный набор проверок, который показывает, что система в принципе работает. Если нельзя войти, выполнить основное действие или провести ключевую операцию, дальше тестировать нет смысла. Поэтому такие проверки выделяются отдельно и получают наивысший приоритет. Их запускают в первую очередь на каждой новой версии, и именно по ним принимается первое решение - имеет ли смысл продолжать проверку.

Вся система начинает работать только тогда, когда появляется понятие прогона тестов. Это момент, когда берётся конкретная версия продукта, конкретное окружение и выполняется выбранный набор проверок. Именно этот прогон показывает реальное состояние системы: что прошло, что упало и где есть проблемы. Без этого тесты остаются просто текстами, которые ни на что не влияют.

Хорошая система управления тестированием в итоге отвечает на простой вопрос: можно ли выпускать продукт. Если по ней можно быстро получить этот ответ - она работает. Какую tms используете вы?