Ответ
Нефункциональные требования (NFR) описывают не что делает система, а как она это делает. Они определяют атрибуты качества системы, её ограничения и характеристики работы.
Ключевые категории NFR с примерами:
| Категория | Описание | Пример требования |
|---|---|---|
| Производительность | Скорость и эффективность системы. | "95% запросов к API должны обрабатываться менее чем за 200 мс при нагрузке 100 RPS." |
| Масштабируемость | Способность системы справляться с ростом нагрузки. | "Архитектура должна позволять увеличить пропускную способность на 50% путём добавления новых инстансов приложения." |
| Надёжность/Доступность | Время безотказной работы. | "Доступность системы (uptime) должна составлять не менее 99.9% ("три девятки")." |
| Безопасность | Защита от угроз. | "Все пароли должны храниться в хэшированном виде с использованием алгоритма bcrypt." |
| Удобство использования (Usability) | Простота взаимодействия с интерфейсом. | "Новый пользователь должен выполнить основную задачу за 3 клика или менее." |
| Сопровождаемость | Лёгкость поддержки и изменения кода. | "Время сборки проекта не должно превышать 5 минут." |
Как тестируются NFR:
- Нагрузочное тестирование (JMeter, k6): Проверка производительности и стабильности под нагрузкой.
- Тестирование безопасности (OWASP ZAP, SAST/DAST инструменты): Поиск уязвимостей.
- Юзабилити-тестирование: Оценка удобства интерфейса с реальными пользователями.
- Тестирование восстановления: Проверка отказоустойчивости (например, отключение сервера БД).
Важность: Чёткие и измеримые NFR критичны для архитектурных решений, выбора технологий и оценки успешности проекта.