Нефункциональное тестирование (НФТ) - это проверки не «что делает система», а как она это делает: быстро ли отвечает, выдерживает ли нагрузку, безопасна ли, удобна ли, как восстанавливается после сбоев и насколько её легко поддерживать. Например, оформление заказа остаётся быстрым, стабильным и безопасным при реальной нагрузке.
НФТ не менее важно, чем функциональное: оно обеспечивает, чтобы система была надёжной, масштабируемой и безопасной в реальном мире.
Несколько видов НФТ:
1. Производительность - измеряет скорость отклика системы.
2. Нагрузочное тестирование - проверяет стабильность работы под ожидаемой «боевой» нагрузкой.
3. Безопасность - защита от уязвимостей, атак и утечек данных.
4. Обслуживаемость (maintainability) - насколько легко поддерживать, модифицировать, обновлять и исправлять систему в процессе ее жизненного цикла.
5. Масштабируемость - готовность системы к росту нагрузки без ухудшения параметров.
6. UI, UX - обеспечивает понятный и удобный пользовательский опыт.
7. Совместимость - корректная работа на разных ОС, устройствах и браузерах.
8. Стресс-тестирование - поведение системы при экстремальной нагрузке.
9. Объёмное тестирование - работа системы с большими объёмами данных.
Примеры НФТ, которые чаще всего выпадают из практики:
Стресс-тестирование
Почему: часто не хватает времени или инфраструктуры, и команда обычно ориентируется на «базовую» нагрузку и не моделирует крайности.
Совместимость / конфигурационные сценарии
Почему: на расширенном покрытии экономят бюджет, из-за чего в команде не хватает разных сред (устройств, браузеров).
Объёмное тестирование
Почему: на этапе разработки и тестов используют упрощённые выборки, не моделируя реальные объёмы данных.
Безопасность
Почему: функциональные тесты кажутся важнее. Часто считают, что этим займутся DevOps или security-аудиторы. В итоге QA либо совсем не смотрит в эту сторону, либо проверяет только happy-path, принимая условности окружения.
📱 Реальные примеры из практики можно почитать на бусти
Корневая причина игнорирования нефункциональных тестов - фокус на фичи и сроки.
Команды и бизнес чаще всего мыслят так:
«Время - деньги. Нужно успеть к релизу/демо/ивенту, остальное потом».
«Фича приносит прибыль прямо сейчас, а перфоманс/безопасность/масштабируемость - это когда-нибудь доведем до ума».
В итоге ценность НФТ часто не очевидна: если его провести - никто не заметит, если не провести - «может повезёт».
Но когда случается сбой или утечка - ущерб кратно выше, чем выигрыш от «ускоренного релиза».
А какой вид нефункционального тестирования у вас чаще всего «выпадает», а потом больно аукается в проде? #qa
