-
Функциональное тестирование:
- Модульное (Unit) тестирование: Тестирование наименьших изолированных частей кода (функций, методов, классов). Выполняется разработчиками.
- Интеграционное тестирование: Тестирование взаимодействия между модулями и компонентами системы.
- Системное тестирование: Тестирование всей интегрированной системы на соответствие требованиям.
- Приемочное тестирование (UAT - User Acceptance Testing): Тестирование конечными пользователями или заказчиком на соответствие бизнес-требованиям.
- Сквозное (End-to-End) тестирование: Тестирование полного потока пользователя через систему, включая интеграцию с внешними системами.
- Регрессионное тестирование: Проверка того, что новые изменения или исправления не нарушили существующую функциональность.
- Дымовое (Smoke) тестирование: Быстрая проверка критически важной функциональности системы для подтверждения ее готовности к более детальному тестированию.
- Тестирование санитарное (Sanity Testing): Более глубокая, чем дымовое тестирование, выборочная проверка ключевых функций после небольших изменений или исправлений.
-
Нефункциональное тестирование:
- Производительность:
- Нагрузочное тестирование: Проверка поведения системы под ожидаемой нагрузкой.
- Стрессовое тестирование: Проверка поведения системы под нагрузкой, превышающей ожидаемую, до точки отказа.
- Тестирование стабильности (Endurance/Soak Testing): Проверка производительности и поведения системы в течение длительного периода времени при устойчивой нагрузке.
- Безопасность:
- Тестирование уязвимостей: Поиск известных уязвимостей.
- Пенетрационное тестирование (Penetration Testing): Имитация атаки злоумышленника на систему.
- Аудит безопасности: Анализ архитектуры и конфигурации на предмет потенциальных рисков.
- Удобство использования (Usability Testing): Оценка простоты и интуитивности интерфейса для конечных пользователей.
- Тестирование совместимости (Compatibility Testing): Проверка работы приложения в различных средах (браузеры, ОС, устройства).
- Тестирование локализации (Localization Testing): Проверка адаптации приложения под конкретный язык и регион.
- Тестирование интернационализации (Internationalization Testing): Проверка способности приложения адаптироваться к различным языкам и регионам без необходимости внесения изменений в код.
- Тестирование доступности (Accessibility Testing): Проверка того, что приложение доступно для использования людьми с ограниченными возможностями.
-
Связанные области и методы:
- Тестирование пользовательского интерфейса (UI Testing): Проверка графического интерфейса на соответствие дизайну и требованиям.
- Тестирование API: Тестирование интерфейсов прикладного программирования.
- Исследовательское тестирование (Exploratory Testing): Не формальное, импровизированное тестирование, фокусирующееся на обнаружении неочевидных дефектов.
- Тестирование на основе рисков (Risk-Based Testing): Приоритизация тестов на основе оценки рисков.
- Мутационное тестирование (Mutation Testing): Изменение исходного кода приложения для проверки эффективности тестовых сценариев.
Это основные категории. В зависимости от методологии разработки (Agile, Waterfall и т.д.) и специфики проекта могут применяться различные подходы и комбинации этих методов. Автоматизация может быть применена ко многим из этих типов, особенно к регрессионному, дымовому, нагрузочному, API и UI тестированию.