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

Отвечает на вопросы:

Может ли пользователь это сделать?

Работает ли функциональность продукта так как мы ожидаем?

Виды функционального тестирования.

  1. Installation Testing - Установка и настройка для дальнейшего использования. + Удаление и обновление.
  2. Development Testing - Делается разработчиками, направленно на минимизацию рисков возникновения багов. (Анализ кода,базы данных,анализ метрик, юнит тесты)
  3. Sanity Testing - Быстрый поверхностный тест в отдельно взятом функционале. Определяет работает ли то что мы тестируем, и имеет ли смысл продолжать тестирование конкретного компонента. Убеждаемся в необходимости или её отсутствия более детального тестирования.
  4. Smoke Testing - Отвечает на вопросы : берется ли билд продукта в принципе в тестирование? Не сломан ли билд в принципе? Работает ли вообще приложение и его основные компоненты.(Часто делается автоматизированно)
  5. Regression Testing - Не влияют ли новые функции на уже существующий функционал продукта. То что работало раньше - работает сейчас.
  6. Destructive Testing - Направленно на введение продукт в неконтролируемое деструктивное состояние. (Нездоровый ввод данных, загружаем 10гб фото) Продукт должен работать, реакция должна быть правильной.
  7. Automated Testing - Автоматические тесты, для упрощения ручного тестирования. Уменьшает временные затраты.
  8. User Acceptance Testing - Задачей считается определение что продукт работает для пользователей. Делает группа тестировщиков или обычные пользователи или заказчик.