ESPN DeportesMonchi se disculpa por pedir Balón de Oro para LamineESPNHarbaugh offers rare critique of struggling QB Herbert: 'Be better'The Jerusalem PostWATCH: 'Don't mess with us': Netanyahu warns enemies may attack Israel ahead of electionBollywood HungamaJubin Nautiyal welcomes first child with wife after intimate wedding, shares update: “Mom and baby are back home”Daily MaverickTHE CONVERSATION: New world map makes Africa look bigger – What’s the fuss about? Cartographers explainRTP DesportoBrasil vence Austrália com Circati a marcar e Irankunda a cometer penáltiInquirerMost wanted person in Ilocos Sur town fallsBusiness AMRusland wil dit jaar nieuwe ballistische raket in dienst nemen met een bereik van 800 kmThe RegisterApple patches CoreGraphics zero-day already exploited in targeted attacksThe Hollywood ReporterHow a Microdramas Director Landed Her First Feature Film GigDeadlineLauren Cohan & Jake Epstein To Co-Star In Eric Stoltz Directed Rom-Com ‘Both Sides Now’The South AfricanPowerBall Xtra: R21 million up for grabs – plus guaranteed winner twist
The Daily Newsstand · Free, Always
Tuesday, September 29, 2026

Как не потерять связь между требованиями и тестами: матрица трассировки на практике

Translate

Есть довольно неприятная проблема с тестовой документацией: тест работает, успешно проходит и при этом уже проверяет не совсем то, что нужно.

Например, несколько месяцев назад поменяли бизнес-логику. Требование обновили в трекере, разработку сделали, а связанный тест-кейс никто не пересмотрел.

На очередном регрессе он снова зелёный.

Формально всё хорошо. Но зелёный результат подтверждает старую проверку, а не обязательно текущее требование.

На небольшом проекте такие связи ещё можно частично держать в голове. Когда требований и тестов становятся тысячи, появляется отдельная задача: как понять, какие требования какими проверками покрыты и актуальны ли эти проверки сейчас?

Для этого и нужна трассировка требований.

Что вообще такое трассировка требований

В самом простом виде это явная связь:

требование ↔ тест-кейсы, чек-листы, автотесты

Например:

REQ-142 → TC-501, TC-502, AT-84

Причём связь может быть many-to-many: один тест покрывает несколько требований, а одно требование проверяется несколькими тестами.

Из этого уже можно получить полезную информацию:

  • у каких требований вообще нет связанных проверок;

  • какие тесты относятся к конкретному требованию;

  • какие проверки используются сразу для нескольких требований;

  • что нужно пересмотреть после изменения требования.

В некоторых системах поверх этого добавляют ещё результаты прогонов.

Например, так сделано в матрице покрытия DoQA: кроме самой связи там отображается последний засчитанный результат каждой проверки.

То есть можно увидеть не только «тест существует», но и: «его последний результат - Passed / Failed / Broken / Blocked / Skipped».

Здесь важно не путать разные виды покрытия.

Если с требованием связан хотя бы один тест, в терминах матрицы оно уже считается покрытым. Но это ничего не говорит о том, достаточно ли этих проверок и насколько хорошо они спроектированы.

Матрица показывает наличие связи между требованием и тестами, но не оценивает качество самого тестирования.

Где обычно возникает проблема

Требования и тесты часто живут в разных системах. Аналитик меняет задачу в трекере. QA работает с кейсами в TMS. Разработчик смотрит задачу и код.

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

Саму трассировку при этом можно вести и без специальных возможностей в TMS. Для этого используют Excel, Google Sheets, Confluence или внутреннюю документацию: сохраняют ID требования, связанные с ним тест-кейсы, иногда добавляют статус покрытия и результаты проверок.

Проблема такого подхода в ручном обновлении. Если требование изменилось, нужно не только поправить задачу и тесты, но и не забыть обновить саму матрицу. Чем больше требований и проверок, тем проще этой таблице разойтись с реальным состоянием проекта.

В DoQA 4.2 для этого появился отдельный модуль требований. Требования при этом не становятся ещё одной копией документации, которую нужно вручную поддерживать в TMS.

Источник остаётся в трекере. В DoQA загружаются данные требования: его ключ, название, статус и ссылка на исходную задачу. После этого требование можно связать с тест-кейсами и чек-листами.

Как выглядит сама матрица

В DoQA есть два представления: список требований и матрица покрытия.

В матрице:

  • строки - требования;

  • столбцы - тест-кейсы и чек-листы;

  • ячейки - связь и последний засчитанный результат прогона.

Пустая ячейка означает, что конкретная проверка с этим требованием не связана. По такой таблице достаточно быстро видно несколько типов проблем. Например, требования без тестов. Или требование, которое держится на одной проверке. Или один большой тест, связанный сразу с кучей требований. 

Единое окно для связывания требования с разными видами тестов

Единое окно для связывания требования с разными видами тестов

Или тесты, которые есть, но ещё ни разу не прогонялись.

У самого требования при этом может быть одно из состояний:

  • нет тестов;

  • не прогонялись;

  • все прошли;

  • не все прошли;

  • требуется актуализация.

Получается довольно простой способ посмотреть не только наличие документации, но и её текущее состояние.

Что происходит при изменении требования

Если реагировать на любое изменение задачи в трекере, уведомлений будет слишком много. Исправили опечатку или форматирование - связанные тесты уже якобы нужно пересматривать.

Поэтому в DoQA изменение требования само по себе не запускает актуализацию тестов.

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

Уведомление пользователя о необходимости актуализации тестов

Уведомление пользователя о необходимости актуализации тестов

То есть DoQA не пытается самостоятельно определить, насколько существенно изменилось требование. Это решение остаётся за человеком.

QA проверяет связанные тесты и при необходимости редактирует их. После этого актуализацию нужно подтвердить отдельно. Простое редактирование тест-кейса не снимает пометку автоматически.

Что происходит со старыми результатами

Допустим, до изменения требования связанный тест успешно проходил. Требование изменили, тест-кейс актуализировали.

Старый результат после этого больше не учитывается. Для актуализированной проверки нужно получить новый результат, а до повторного запуска она считается непрогнанной.

Это важно: иначе после изменения требования и обновления тест-кейса в матрице мог бы остаться старый Passed, хотя новую версию теста ещё никто не выполнял.

Получается такой цикл:

требование → связанная проверка → изменение требования → актуализация проверки → новый прогон

После подтверждения актуализации прогоны, выполненные до неё, перестают учитываться.

Связь работает не только внутри TMS

DoQA может работать с требованиями из Jira Server и YouTrack и передавать часть информации обратно в трекер: например, данные о связанных проверках и статус покрытия требования.

Пометка связанных тестов как требующих актуализации из трекера

Пометка связанных тестов как требующих актуализации из трекера

Поэтому аналитику или разработчику не обязательно открывать TMS, чтобы посмотреть, есть ли у требования связанные проверки и в каком они состоянии.

Есть и обратный сценарий: из требования в DoQA можно создать прогон, в который попадут все связанные с ним тест-кейсы и чек-листы. Не нужно отдельно искать и собирать их перед проверкой требования.

А что с автотестами

В DoQA 4.3 требования можно связывать напрямую с автотестами.

Раньше для такой связи нужен был ручной тест-кейс: автотест связывали с ним, а уже тест-кейс - с требованием. Теперь этот промежуточный шаг не нужен.

Связанный автотест учитывается при расчёте покрытия, а посмотреть такие проверки можно прямо из карточки требования.

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

А если тестов на требование ещё нет

Если с требованием пока не связано ни одной проверки, в DoQA можно сгенерировать:

  • тест-кейс;

  • набор тест-кейсов;

  • чек-лист.

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

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

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

Что матрица не решает

Матрица хорошо показывает:

  • есть ли у требования связанные тесты;

  • какие именно;

  • помечены ли они как требующие актуализации;

  • с каким результатом они запускались.

Но она не может определить:

  • достаточно ли этих тестов;

  • насколько хорошо они спроектированы;

  • учтены ли основные риски.

Например, с требованием можно связать один позитивный сценарий, и оно уже попадёт в число покрытых тестами. При этом негативные сценарии, граничные значения или интеграционные проверки могут отсутствовать.

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

Где матрица становится полезной

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

В какой-то момент даже простой вопрос «Какими тестами сейчас проверяется это требование?» уже требует отдельного поиска.

Матрица позволяет увидеть эту связь напрямую: какие требования остались без тестов, какие проверки с ними связаны, что запускалось и где после изменения требования тесты нужно пересмотреть.

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

Наличие теста и актуальный результат его выполнения - разные вещи.

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.