# Functional Requirements Rules ## Формат - `FR.<номер>. <Название>` - Нумерация инкрементальная внутри документа. ## Правила - FR расширяют шаги сценария. - FR не копируют шаги сценария без добавления новой информации. - Для интеграционных шагов FR обязательны. - Если в сценарии есть вызов внешнего API / сервиса / БД, нужен отдельный FR на интеграцию. ## FR для интеграционных шагов Для интеграционного FR обязательно раскрывать: - как формируется запрос; - откуда берется каждый значимый атрибут запроса; - какой downstream вызывается; - какой ответ считается успешным; - какие ответы и ситуации считаются бизнес-ошибкой; - какие ситуации считаются технической ошибкой; - как downstream-ответ маппится в контракт текущего слоя. ## FR для шагов доступа к БД Если шаг читает или пишет БД, FR должен по возможности включать: - таблицу или набор таблиц; - логику фильтрации; - логику сортировки; - логику пагинации; - пример SQL или близкий к рабочему псевдо-SQL. Если СУБД и диалект не заданы, допускается сделать рабочее предположение и явно зафиксировать его.