Инженерия требований

Что это такое

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

Почему это важно

Большинство дефектов восходят к предложению, о котором никто не договорился. «Система должна обрабатывать большие файлы» порождает три реализации, одно разногласие о том, что значит «большие», и отчёт об ошибке, который на самом деле пробел в спецификации. Самая дешёвая профилактика дефектов — написать требование так, чтобы его можно было проверить, и стоит она час на страницу. Однако есть и обратный риск: тяжёлая фаза требований с обязательными подписями на неопределённом продукте подробно документирует не то и замедляет обучение, которое её же исправило бы. Дисциплина окупается там, где система регулируется, контрактная или долговечная; на исследовательском продукте достаточно критериев приёмки, написанных прямо перед работой.

Что в этом треке

  1. Проверяемая спецификация поведения (04-product-process/05-requirements-engineering/01-specifying-behaviour-testably) — писать утверждения, которые можно проверить и нельзя прочесть неверно.
  2. Ревью и трассировка требований (04-product-process/05-requirements-engineering/02-reviewing-and-tracing-requirements) — ловить пробелы ревью и держать связь от требования к тесту и коду.

Предварительные требования

Нет.

Что читать дальше

  • Приёмочное тестирование пользователем (04-product-process/16-user-acceptance-testing) — где заказчик подтверждает построенное по этим утверждениям.
  • Бизнес-анализ (04-product-process/06-business-analysis) — работа по картированию, которая идёт до выбора решения.
  • Пользовательская история (04-product-process/12-user-story) — более лёгкая форма для команд, строящих итеративно.
  • Техническое письмо (04-product-process/08-technical-writing) — написать документ так, чтобы читатель мог по нему действовать.