В чем разница между функциональным и нефункциональным тестированием?

«В чем разница между функциональным и нефункциональным тестированием?» — вопрос из категории Основы тестирования, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

**Функциональное тестирование** проверяет, **что** делает система — соответствует ли её поведение функциональным требованиям и спецификациям. Оно отвечает на вопрос: «Работает ли функция правильно?». **Нефункциональное тестирование** оценивает, **как** система работает — её атрибуты качества. Оно отвечает на вопрос: «Насколько хорошо система работает при определённых условиях?». **Сравнение:** | Критерий | Функциональное тестирование | Нефункциональное тестирование | | :--- | :--- | :--- | | **Цель** | Проверить корректность функций («что»). | Оценить характеристики качества («как»). | | **Основа** | Функциональные требования, user stories, use cases. | Требования к качеству (SLA, NFR), стандарты. | | **Примеры проверок** |
  • Расчёт итоговой суммы в корзине.
  • Создание и сохранение документа.
  • Успешная авторизация с валидными данными.
|
  • **Производительность:** Время отклика < 2 сек. при 1000 одновременных пользователей.
  • **Нагрузочное:** Стабильность работы под пиковой нагрузкой.
  • **Безопасность:** Отсутствие SQL-инъекций в форме поиска.
  • **Юзабилити:** Интуитивная навигация для новой аудитории.
| | **Пример тест-кейса** | **Название:** Проверка применения промокода.
**Шаги:** 1. Добавить товар в корзину. 2. Ввести валидный промокод. 3. Нажать «Применить».
**Ожидаемый результат:** Итоговая сумма уменьшена в соответствии с условиями промокода. | **Название:** Проверка времени загрузки главной страницы.
**Шаги:** 1. Очистить кеш браузера. 2. Замерить время полной загрузки страницы.
**Ожидаемый результат:** Время загрузки не превышает 3 секунд при скорости сети 3G. | На практике эти виды тестирования дополняют друг друга. Можно провести функциональную проверку авторизации, а затем нефункциональную — на устойчивость к брут-форсу.