Нефункциональное тестирование — тип тестирования ПО, направленный на проверку его нефункциональных требований. Оно оценивает характеристики системы, не связанные напрямую с конкретными функциями, а скорее с тем, "как" система работает.
Основные цели нефункционального тестирования:
Виды нефункционального тестирования:
| Тип тестирования | Краткое описание | Примеры проверяемых характеристик |
|---|---|---|
| Тестирование производительности | Оценка скорости, отзывчивости, стабильности и масштабируемости системы под нагрузкой. | Время отклика, пропускная способность, нагрузка CPU/памяти. |
| Нагрузочное тестирование | Проверка поведения системы при ожидаемой пиковой нагрузке. | Количество одновременных пользователей, транзакций в секунду. |
| Стрессовое тестирование | Проверка поведения системы при превышении ожидаемой пиковой нагрузки или нехватке ресурсов. | Точка отказа системы, поведение при перегрузке. |
| Тестирование стабильности (Endurance Testing) | Проверка способности системы выдерживать длительную непрерывную работу под нагрузкой. | Утечки памяти, деградация производительности со временем. |
| Тестирование безопасности | Проверка защищенности системы от внешних и внутренних угроз, несанкционированного доступа. | Защита от SQL-инъекций,XSS-атак, аутентификация, авторизация. |
| Тестирование удобства использования (Usability Testing) | Определение того, насколько легко и интуитивно понятно пользователям использовать систему. | Понятный интерфейс, легкая навигация, доступность. |
| Тестирование совместимости | Проверка работы системы в различных окружениях (браузеры, ОС, устройства). | Поддержка различных версий браузеров, ОС. |
| Тестирование надежности (Reliability Testing) | Оценка способности системы выполнять свои функции без сбоев в течение заданного периода времени. | Среднее время наработки на отказ (MTBF), вероятность отказа. |
| Тестирование доступности (Accessibility Testing) | Проверка удобства использования системы для людей с ограниченными возможностями. | Соответствие стандартам WCAG. |
| Тестирование локализации/интернационализации | Проверка адаптации системы к различным языкам и региональным настройкам. | Переведенные строки, форматы дат/чисел. |
Нефункциональное тестирование обычно проводится на менее ранних этапах жизненного цикла разработки ПО, чем функциональное, но его планирование начинается с формирования требований. Оно может быть частью автоматизированных процессов, особенно при тестировании производительности и безопасности.
Инструменты для нефункционального тестирования:
Примером автоматизации части нефункционального тестирования может быть скрипт для проверки времени загрузки страницы:
python
Результаты нефункционального тестирования часто представлены в виде отчетов, графиков и метрик, позволяющих оценить характеристики системы и принять решения о необходимых улучшениях.