
Привет, Хабр! Меня зовут Максим, я тестировщик в РГС. Сейчас мы с командой разрабатываем новое приложение для клиентов, и нам очень хотелось, чтобы у нас была прозрачная картина актуальности и полноты тестового покрытия, для повышения качества выпускаемого продукта и эффективности процессов.
Поэтому мы задались вопросом систематизации требований к этому продукту, которые зачастую поступают из различных источников: бизнес-задачи, регламенты, макеты, пользовательские истории, обратная связь от клиентов и так далее.
Отсутствие единой, структурированной картины требований создает ряд проблем для разработки и тестирования и ведет к следующим негативным последствиям:
Недостаточная полнота проверки: команде сложно убедиться в том, что все критичные элементы требований (функционал, исключения, ограничения, критерии приемки) учтены и проверены;
Дублирование требований и противоречия: без систематизации нередко возникают повторяющиеся или взаимоисключающие требования, что ухудшает качество тестовых сценариев и усложняет процесс их поддержки;
Отсутствие прослеживаемости: сложно отследить покрытие требований тестами и их приоритет.
В нашем случае требований и источников, откуда они поступают, было много, и я хочу рассказать, как мы искали универсальную модель, чтобы не запутаться в них окончательно.
Плюсы и минусы «традиционных» подходов
В практике тестирования и управления требованиями часто используют различные методы и инструменты: таблицы требований, чек-листы, списки тест-кейсов и прочее. Рассмотрим основные недостатки этих методов и почему мы не стали реализовывать их на нашем проекте:
Недостаточная гибкость и масштабируемость: с ростом количества требований, тест-кейсов и участников команды управление ими становится сложным, возможны ошибки и пропуски;
Отсутствие автоматизации: такие подходы зачастую требуют ручного анализа и обновления, что увеличивает трудозатраты и вероятность ошибок, связанных с человеческим фактором;
Трудности в отслеживании изменений: при изменении требований сложно проследить, какие тесты требуют обновления и актуализации;
Ограниченность в аналитике: такие методы плохо подходят для оценки полноты покрытия требований, анализа приоритета и выявления пробелов.
Нехитрый анализ существующих решений показал, что для нас наиболее актуальным способом систематизации может стать матрица трассировки требований.
Как внедрить матрицу трассировки требований, учитывая частые ошибки
Прежде всего, я решил выяснить, насколько вообще актуальна и востребована матрица трассировки требований в современных проектах. Для этого я провел опрос среди опытных специалистов уровня Senior и Lead QA, имеющих практический опыт работы с такими инструментами. В нем приняли участие более 50 профессионалов, и, основываясь на их мнении, я смог увидеть реальную картину текущего состояния и вызовы, с которыми придется столкнуться.
Результаты опроса:
58% участников считают матрицу важным инструментом для QA, отмечая, что при правильной реализации она значительно упрощает управление тестовым покрытием и прослеживаемость требований;
26% ответили, что матрица не приносит существенной пользы. Её сложно поддерживать в актуальном состоянии, а сопровождение требует значительных ресурсов.
15% признали опыт отказа от использования матрицы, отметив, что при высокой трудоемкости и слабой части ее поддержки она становится тяжёлым и малоэффективным инструментом.
Пообщавшись лично с некоторыми участниками опроса, я также выяснил, что, по их мнению, матрица действительно полезна только в условиях наличия полной, четко структурированной документации, а также при постоянной актуализации требований с начала проекта.
Еще коллеги отметили, что на практике используют альтернативные системы, например, инструменты автоматизации или связывание требований через системы управления задачами — Azure DevOps или Jira, которые позволяют трекать покрытие без классической матрицы.
На основе всех этих данных я сделал следующие выводы:
Реальную ценность матрица трассировки приобретает при условии систематической работы с требованиями с момента их появления;
В случае дефицита ресурсов и/или отсутствия четкой документации поддерживать матрицу в актуальном состоянии становится трудозатратно и неэффективно;
Использование современных инструментов (например, связки юзер-стори с тест-кейсами в системах типа Azure DevOps) иногда заменяет классическую матрицу, экономя время и ресурсы.
Какие матрицы нам предлагал Google?
Следующим шагом я пошел в гугл и начал анализировать все, что поисковик выдавал по запросу «матрица трассировки требований».
В ходе мониторинга открытых источников было замечено, что количество публикаций по данной тематике относительно невелико. Многие статьи и руководства затрагивают общий подход к управлению требованиями, однако конкретных, глубоких исследований и методологических обоснований по использованию матриц трассировки значительно меньше.

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

Отсутствие поддержки изменений: при каждом обновлении требований или тест-кейсов приходится вручную корректировать таблицы.
Отсутствие интеграции с системами управления требованиями и тестами, что ведет к рассинхронизации данных.
Отсутствие логики, автоматизации процессов и аналитики, необходимых для масштабных проектов.
Что мы хотели вылечит на нашем проекте с помощью Матрицы?
1. Отсутствие прозрачной трассировки между требованиями и тестами
Проблема: отсутствие ясной и структурированной связи между требованиями и тест-кейсами приводит к трудностям при контроле исполнения, рассинхронизации при изменениях и невозможности полноценно оценить качество и полноту тестового покрытия.
Решение: внедрение трассировочной матрицы, визуализирующей связи между требованиями и тестами, с возможностью автоматического обновления. Это повышает прозрачность, позволяет оперативно отслеживать изменения и контролировать полноту покрытия, снижая риск пропуска критичных сценариев.
2. Ограниченность аналитики и отчётности
Проблема: отсутствие систематизированных данных о связях между требованиями и тестами затрудняет проведение аналитики и подготовку отчётов для заинтересованных сторон.
Решение: разработка матрицы с функциями фильтрации, группировки и автоматической генерации отчётов, обеспечивающих доступ к актуальной аналитике.
3. Неэффективное использование ресурсов
Проблема: неоптимальное распределение времени и усилий на ручное поддержание согласованности требований и тестов снижает общую производительность команды.
Решение: автоматизация части процессов с помощью матрицы позволяет высвободить ресурсы и повысить эффективность работы команды.
Как же выглядит идеальная для нас Матрица
В классическом понимании матрица трассировки (RTM) — это двумерная таблица, которая связывает требования с тестовыми сценариями, что позволяет отслеживать полноту покрытия, управлять изменениями и повышать качество продукта.
Разработанная нами под наш проект таблица имеет более сложную структуру, которая детерминирована задачами, которые мы перед собой поставили:

Столбцы:
1. Технические задачи или бизнес-требования:
Описание ключевых технических предпосылок или потребностей заказчика, связанных с функционалом системы.
2. Требования:
ID - уникальный идентификатор вида требования (например, 1.2.3, где 1 — тип требования, 2 — категория, 3 — порядковый номер).
Требования — краткое и ясное описание требования.
Статус — текущий уровень актуальности:
Полные/актуальные;
Полные/подлежат актуализации;
Неполные/актуальные;
Неполная/неактуальная.
Документация к требованиям — ссылки на сопутствующую документацию (макеты, технические спецификации).
ID связанных требований - номера требований, на которые есть влияние и/или связи.
Severity — уровень критичности требований для бизнеса:
Красный — критический (hight);
Синий — важный (medium);
Зеленый — низкий (low).
3. QA:
Тест кейсы — ссылки на связанные тестовые сценарии
Результаты — результаты прохождения тестов или комментарии по ним
4. AQA:
Аналогично разделу QA, но предназначен для дополнительных тестов или автоматизированных цепочек тестирования.
Тест кейсы — ссылки на связанные тестовые сценарии.
Результаты — описание итогов тестирования
5. Регресс
Номера регрессионных тест-кейсов, автоматических или ручных, которые включены в регрессионный тест
Строки:
Таблица разбита по видам требований, чтобы проще было управлять разными аспектами тестирования и разработки:
Функциональные требования;
UI (пользовательский интерфейс);
API;
Иные виды тестирования (например, безопасность, нагрузка, совместимость).
А как это все работает?
Порядок работы с матрицей предполагает ее создание на старте проекта, регулярное обновление в ходе разработки и тестирования, а также переиспользование при планировании регрессионных тестов и управлении изменениями. Такой подход обеспечивает прозрачность требований, контроль качества и снижение рисков.
Соответствующий порядок формирования, заполнения и переиспользования матрицы трассировки требований представлен ниже в табличной форме.
Этап |
Содержание этапа |
Подготовительный этап |
Собрать все требования, включая бизнес- и технические задачи, а также документацию (архитектурные схемы, спецификации). Определить категории требований: функциональные, UI/UX, API, иные |
Создание структуры матрицы |
Создать таблицу с запланированными столбцами согласно утвержденной структуре, адаптированной под ваш проект: ID, требования, статус, документация, связанные требования, критичность, тест кейсы, результаты, регресс, дополнительные комментарии. Определить список тестовых сценариев и способ автоматизации их в тест-менеджере (например, Zephyr) |
Заполнение матрицы |
На основе собранных требований внести их в таблицу, присвоить уникальные IDs в соответствии с форматом. Указать краткое описание требований, их актуальность, ссылки на документацию, связи с другими требованиями и уровень критичности. Связать требования с разработанными тест-кейсами. Обновить результаты тестирования по мере их проведения. Указать регрессионные тесты, связанные с требованиями, по мере необходимости. |
Использование и актуализация |
В процессе разработки и тестирования регулярно обновлять статус требований, результаты тестов и связи. При из��енении требований необходимо вносить коррективы в матрицу, устанавливая новые связи или актуализируя их статус. Для новых требований - создавать строки и связывать тестовые сценарии. Для уже реализованных требований - фиксировать результаты тестирования и регрессионные проверки. |
Регулярное переиспользование |
Использовать матрицу для планирования регрессионных тестов и анализа покрытия требований. Обеспечивать прозрачность статуса требований и тестов для всех участников проекта (бизнес-аналитиков, разработчиков, тестировщиков). При подготовке новых релизов - повторно анализировать матрицу, выявляя области с недостаточным покрытием и обновляя тестовые сценарии. В конце проекта - сохранять и архивировать матрицу как исторический документ, который помогает понять покрытие и влияние изменений. |
Какие промежуточные выводы на первом этапе внедрения Матрицы мы для себя отметили
С учетом практики работы с разработанной матрицей трассировки требований, мы выработали основные условия ее актуальности для проекта:
1. Достаточность и устойчивость требований
Матрица трассировки целесообразна и актуальна при наличии полного набора требований, которые достаточно подробно сформулированы, измеримы и обладают высокой степенью устойчивости. Это позволяет создать надежную связь между требованиями и тест-кейсами, а также обеспечить контроль за их выполнением и изменениями. В случае частых и значимых изменений требований необходимость постоянной актуализации матрицы возрастает, что может снизить ее целесообразность.
2. Период деятельности проекта и планирование
Матрица имеет смысл для долгосрочных проектов, которые предполагают устойчивое планирование развития и тестирования. В таких проектах матрица становится инструментом управления качеством, отслеживания прогресса и результатов регрессионных тестов на протяжении всей жизненного цикла продукта. Для проектов в режиме MVP (минимально жизнеспособный продукт) или POC (proof of concept), где фокус на быстром запуске и экспериментировании, создание и поддержка матрицы зачастую не оправданы, так как объем требований и тестовых сценариев может быть минимальный или временный.
3. Соотношение затрат и ценности
Наличие и поддержание матрицы оправдано, если ее ценность (в виде контроля за выполнением требований, обеспечения покрытия тестами, анализа изменений и регрессий) существенно превышает затраты на ее создание и актуализацию. Для ее применения необходима тщательная проверка наличия временных и трудозатратных ресурсов команды.
OlgaVivanova
Спасибо за статью!
Вопрос 1: категории "бизнес-требования" нет специально?
То есть каждое БТ не детализируется на ряд более детальных функциональных, технических и других?
Вопрос 2: сколько связанных требований можно указать к каждому и как это сделать в такой (Эксель?) табличке - через запятую или строчками вниз с объединением либо дублированием всех остальных ячеек? Как вам оказалось удобнее на практике?