Ревью и трассировка требований — Примеры
Пример 1 — Ревью по четырём типам дефектов
Раздел спецификации возвратов возвращается с пометкой «выглядит нормально, пара опечаток». Проведите вместо этого структурированное ревью: прочитайте каждую строку и поищите дефекты четырёх типов — отсутствие требования, неоднозначность, противоречие, непроверяемость, — и пометьте каждую находку.
REQ-REF-01 Возвраты обрабатываются быстро.
REQ-REF-02 Возврат не должен превышать исходный платёж.
REQ-REF-03 Подтверждения возврата отправляются по электронной почте.
REQ-REF-04 Подтверждения возврата отправляются только почтой.
REQ-REF-05 Процесс возврата надёжен под нагрузкой.
Решение
REQ-REF-01 неоднозначно у «быстро» нет длительности — дайте число
REQ-REF-02 проходит проверяемо как написано
REQ-REF-03 противоречиво конфликт с REF-04 — выберите один канал
REQ-REF-04 противоречиво назовите исключение, где используется почта
REQ-REF-05 непроверяемо укажите цифру нагрузки и поведение при сбое
Отсутствует нет требования о том, что делать, когда провайдер отказывает в возврате
Просьба о названных категориях дефектов дала дефекты, тогда как просьба о «комментариях» даёт заметки об опечатках, а самая ценная находка — пропущенный случай, который появляется только потому, что «отсутствующее» есть в чек-листе. Однако обычная ошибка — ревью в одиночку: автор читает то, что имел в виду, и пропускает REQ-REF-01 как очевидное.
Пример 2 — Трассировка вперёд и назад до релиза
Перед релизом постройте таблицу трассировки для функции возвратов и прочитайте её в обоих направлениях — так, чтобы у каждого требования был тест, а каждый тест трассировался к требованию, — в списке ниже прячутся два пробела.
Требования Тесты Код
REQ-REF-01 refund_within_90_days payment/refund.ts
REQ-REF-02 payment/refund.ts
REQ-REF-03 refund_email_sent notify/email.ts
REQ-REF-04 refund_post_only notify/post.ts
refund_recalc_totals payment/recalc.ts
Решение
REQ-REF-01 refund_within_90_days payment/refund.ts:41
REQ-REF-02 ПРОБЕЛ — нет теста payment/refund.ts:88
REQ-REF-03 refund_email_sent notify/email.ts:12
REQ-REF-04 refund_post_only notify/post.ts:7
refund_recalc_totals ПРОБЕЛ — не трассируется ни к одному требованию
Тест для REQ-REF-02 пишут до релиза; пересчёт либо получает
требование, либо выводится из объёма работ.
Трассировка вперёд ловит непроверенное требование, а назад — пересчёт, который никто не просил. Именно стабильные идентификаторы вроде REQ-REF-02 позволяют таблице пережить переупорядочивание раздела. Обычная ошибка — перенумеровывать требования при каждой правке, после чего трассировка становится бесполезной за неделю.