Перейти к основному содержимому

Требования к требованиям, или свойства качественных требований

Полнота

Требование содержит всю необходимую информацию, ничто не пропущено по соображениям «это и так всем понятно».

Полнота требований

Типичные проблемы

  • «Пароли должны храниться в зашифрованном виде» - каков алгоритм шифрования?
  • «Экспорт осуществляется в форматы PDF, PNG и т.д.» — что мы должны понимать под «и т.д.»?
  • «См. выше» вместо «см. раздел 123.45.b»

Атомарность

Требование описывает одну ситуацию и не может быть разбито на части без потери смысла.

Типичные проблемы

  • «Кнопка “Restart” не должна отображаться при остановленном сервисе, окно “Log” должно вмещать не менее 20-ти записей о последних действиях пользователя» — в одном предложении описаны разные элементы интерфейса в разных контекстах.
  • «Если пользователь подтверждает заказ и редактирует заказ или откладывает заказ, должен выдаваться запрос на оплату» — описаны три разных случая, и это требование стоит разбить на три отдельных во избежание путаницы.
  • «Когда пользователь входит в систему, ему должно отображаться приветствие; когда пользователь вошел в систему, должно отображаться имя пользователя; когда пользователь выходит из системы, должно отображаться прощание» — все три ситуации должны быть описаны отдельно и более детально.

Непротиворечивость

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

Типичные проблемы

  • «После успешного входа в систему пользователя, не имеющего права входить в систему…» — тогда как он успешно вошёл в систему, если не имел такого права?
  • Противоречия между двумя и более требованиями, между таблицей и текстом, рисунком и текстом, требованием и прототипом и т.д. (например: «712.a Кнопка “Close” всегда должна быть красной» и «36452.x Кнопка “Close” всегда должна быть синей»).

Недвусмысленность

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

Типичные проблемы

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

Выполнимость

Требование должно быть реализуемым в рамках бюджета и сроков разработки проекта.

Типичные проблемы

  • «Система поиска должна заранее предусматривать все возможные варианты поисковых запросов и кэшировать их результаты».
  • «Анализ договоров должен выполняться с применением искусственного интеллекта, который будет выносить однозначное корректное заключение о степени выгоды от заключения договора».

Актуальность

Требование необходимо для успеха проекта и соответствует текущим условиям. Требование имеет приоритет, например, по MoSCoW.

Типичные проблемы

  • Требование было добавлено «на всякий случай», хотя реальной потребности в нём нет.
  • Ошибки приоритета требования.
  • Требование устарело.

Прослеживаемость

Требования должны иметь атрибуты, позволяющие осуществлять трассировку требований и вносить изменения. Например: номер/ID, приоритет, владельца, ответственного.

Корректность

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

Типичные проблемы

  • Плохое оформление и ошибки в тексте.
  • Слишком глубокая детализация требования на уровне бизнес-требований или недостаточная детализация на уровне требований к продукту.
  • «Пользователь должен быть в состоянии отправить сообщение» — увы, мы не можем влиять на пользователя.
  • «В случае, если разрешение окна составляет менее 800x600…» — разрешение есть у экрана, у окна есть размер.

Статьи по теме

  1. Требования (Requirements) — QA_Bible
  2. Критерии качества требований — Наталья Чаусова
  3. О критериях качества требований — Art of Business Analysis

Документы

Стандарт IEEE 830-1998 (SRS) на русском