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