Что такое нефункциональное тестирование (Non-functional testing)?

«Что такое нефункциональное тестирование (Non-functional testing)?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нефункциональное тестирование (Non-functional testing) — это тип тестирования, направленный на проверку как система работает, а не что она делает. Оно оценивает характеристики, не связанные с конкретной бизнес-логикой, но критически важные для пользовательского опыта и эксплуатации.

Ключевые виды нефункционального тестирования:

  • Тестирование производительности (Performance):
    • Нагрузочное (Load): Работа под ожидаемой нагрузкой.
    • Стрессовое (Stress): Работа за пределами нормальной нагрузки.
    • Объемное (Volume/Soak): Работа с большими объемами данных или в течение длительного времени.
  • Тестирование безопасности (Security): Выявление уязвимостей, проверка аутентификации и авторизации.
  • Тестирование удобства использования (Usability): Оценка понятности, обучаемости и удобства интерфейса.
  • Тестирование совместимости (Compatibility): Работа в разных браузерах, ОС, устройствах.
  • Тестирование надежности (Reliability): Способность работать без сбоев в заданных условиях.

Почему это важно? Функционально корректное приложение может быть непригодным из-за медленной скорости, утечек памяти или плохой безопасности.

Пример (концепция нагрузочного теста):

// Псевдоконфигурация для JMeter
Thread Group:
  Number of Threads (users): 100
  Ramp-Up Period: 30 seconds // Наращивание нагрузки до 100 пользователей за 30 сек
  Loop Count: Forever
  // Цель: проверить, выдерживает ли API 100 одновременных запросов.