Какие уровни требований к программному обеспечению выделяют?

«Какие уровни требований к программному обеспечению выделяют?» — вопрос из категории Тестовая документация, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Требования к ПО структурируют по уровням детализации и целевой аудитории. Основные уровни:

1. Бизнес-требования (Business Requirements)

  • Что это: Высокоуровневые цели организации или заказчика.
  • Формат: Документ о видении (Vision), дорожная карта (Roadmap).
  • Пример: "Увеличить долю рынка на 15% за счёт запуска мобильного приложения для онлайн-заказов к 2025 году."

2. Пользовательские требования (User Requirements / User Needs)

  • Что это: Задачи, которые пользователи должны выполнять с помощью системы.
  • Формат: User Stories, Use Case Diagrams, сценарии.
  • Пример (User Story): "Как зарегистрированный пользователь, я хочу оплачивать заказ в один клик, чтобы экономить время."

3. Функциональные требования (Functional Requirements / System Requirements)

  • Что это: Конкретное, детализированное поведение системы и её компонентов.
  • Формат: Техническое задание (SRS), спецификации.
  • Пример: "Система должна предоставлять REST API endpoint POST /api/v1/orders для создания заказа. Запрос должен содержать JSON с полями items и shippingAddress. Ответ — JSON с orderId и статусом 201 Created."

4. Нефункциональные требования (Non-Functional Requirements)

  • Что это: Качественные характеристики системы и ограничения.
  • Категории:
    • Производительность: "95% запросов к странице товара должны обрабатываться быстрее 2 секунд при нагрузке 1000 пользователей."
    • Безопасность: "Все пароли должны храниться в хэшированном виде с использованием алгоритма bcrypt."
    • Удобство использования (Usability): "Новый пользователь должен совершить первый заказ не более чем за 5 минут."
    • Надёжность (Reliability): "Доступность системы (uptime) должна составлять 99.9%."

Связь уровней: Бизнес-цели порождают пользовательские потребности, которые детализируются в функциональные и нефункциональные требования. Тестирование должно покрывать все уровни.