Какие проверки относятся к нефункциональному тестированию
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
Проверки нефункционального тестирования: Что мы оцениваем помимо функционала
Нефункциональное тестирование — это оценка характеристик системы, которые не связаны с её прямыми функциями. Его цель — убедиться, что продукт работает корректно в реальных условиях эксплуатации, устойчив к нагрузкам и удобен для пользователя. В отличие от функционального тестирования, где мы проверяем «что делает система», здесь мы оцениваем «как она это делает».
Основные виды проверок в нефункциональном тестировании
1. Тестирование производительности (Performance Testing)
Оценивает, как система работает под различной нагрузкой. Включает несколько ключевых суб-типов:
- Тестирование нагрузки (Load Testing) — проверка поведения при ожидаемой (пиковой) нагрузке. Например, как сайт работает при 1000 одновременных пользователей.
- Тестирование стрессовой нагрузки (Stress Testing) — оценка системы за пределами её нормальных возможностей, чтобы найти точку разрушения. Например, постепенное увеличение числа запросов до 10 000.
- Тестирование стабильности/надежности (Soak/Endurance Testing) — длительная работа под средней нагрузкой для обнаружения проблем, таких как утечки памяти или ошибки после долгого функционирования.
- Тестирование масштабируемости (Scalability Testing) — проверка способности системы увеличивать производительность путем добавления ресурсов (серверов, мощностей CPU).
- Тестирование пиковой нагрузки (Spike Testing) — внезапное увеличение нагрузки для оценки реакции системы.
Пример простого описания теста нагрузки в конфигурационном файле (например, для JMeter):
test_plan:
scenario: "Homepage Load Test"
threads: 1000 # Количество виртуальных пользователей
ramp_up_period: 60 # Время для постепенного увеличения нагрузки (сек)
loop_count: 10 # Число повторений для каждого пользователя
endpoints:
- "/homepage"
- "/api/products"
2. Тестирование безопасности (Security Testing)
Проверяет способность системы противостоять malicious attacks и защищать данные. Основные проверки:
- Авторизация и аутентификация — проверка контроля доступа к функциям и данным.
- Уязвимости — поиск известных слабостей (SQL Injection, XSS, CSRF).
- Анализ рисков и пентестинг — моделирование атак для оценки реальной защиты.
- Конфиденциальность данных — проверка шифрования и защиты личной информации.
3. Тестирование удобства использования (Usability Testing)
Оценка того, насколько продукт удобен, понятен и эффективен для конечного пользователя. Проверяются:
- Интуитивность интерфейса — может ли пользователь выполнять задачи без инструкций.
- Согласованность дизайна (стиль, цвета, расположение элементов).
- Эффективность выполнения задач — время и количество шагов для достижения цели.
- Субъективное удовлетворение пользователя (часто через опросы или интервью).
4. Тестирование совместимости (Compatibility Testing)
Обеспечение корректной работы в различных окружениях.
- Кросс,browser-тестирование — работа в разных браузерах (Chrome, Firefox, Safari) и их версиях.
- Кросс-платформенное тестирование — работа на разных операционных системах (Windows, macOS, Linux, мобильные OS).
- Тестирование на разных устройствах — адаптация для различных размеров экрана и типов устройств (телефоны, планшеты, десктопы).
- Тестирование интеграции — взаимодействие с другими системами, API, сторонними сервисами.
5. Тестирование надежности и доступности (Reliability & Availability Testing)
Проверка, что система работает стабильно и непрерывно в течение требуемого времени.
- Отказоустойчивость — способность восстанавливаться после сбоев (например, после падения сервера).
- Время безотказной работы (uptime) — соответствие заданным SLA (например, 99.9% доступности).
- Тестирование восстановления (Recovery Testing) — оценка процедур восстановления после критических failures.
6. Тестирование установки/деинсталляции (Installation/Uninstallation Testing)
Применимо для desktop или мобильных приложений: проверка процесса установки, обновления, удаления в разных окружениях.
7. Тестирование документирования (Documentation Testing)
Проверка точности и полноты пользовательских руководств, технических документов и help-систем.
Ключевые метрики и инструменты
Для каждого типа тестирования существуют специфические метрики:
- Для производительности: время ответа (response time), пропускная способность (throughput), использование ресурсов (CPU, memory).
- Для безопасности: число обнаруженных уязвимости, время до их исправления.
- Для удобства использования: время выполнения задачи, число ошибок пользователя, оценка удовлетворенности.
Инструменты варьируются от специализированных:
- JMeter, Gatling — для тестирования производительности.
- OWASP ZAP, Burp Suite — для security testing.
- BrowserStack, Sauce Labs — для совместимости.
- Ручные методы и опросы — для usability.
В заключение, нефункциональное тестирование — это комплексная проверка качества системы по многим аспектам, которые напрямую влияют на пользовательский опыт и жизнеспособность продукта в production-окружении. Его часто проводят после базового функционального тестирования, и оно требует глубокого понимания архитектуры системы, инфраструктуры и бизнес-ожиданий.