Что такое нефункциональное тестирование и какие виды оно включает?
Что проверяют
Понимаете ли вы, что проверяется не «что делает система», а «как она это делает», и можете ли назвать виды с примерами проверок.
Как отвечать
Функциональное отвечает на вопрос, выполняет ли система требование. Нефункциональное на вопрос, с каким качеством: быстро ли, надёжно ли, удобно ли, безопасно ли.
Основные виды:
- производительность: нагрузочное (ожидаемая нагрузка), стрессовое (за пределом, ищем точку отказа), объёмное (много данных), выносливости (сутки под нагрузкой, ищем утечки);
- масштабируемость: что происходит при добавлении инстансов и растёт ли пропускная способность;
- надёжность и отказоустойчивость: поведение при падении зависимости, восстановление после сбоя, повторные попытки;
- безопасность: авторизация, инъекции, хранение секретов, обновление зависимостей;
- удобство использования: понятность сценария, число шагов, тексты ошибок;
- доступность: работа с клавиатуры, контраст, поддержка скринридеров, крупный шрифт;
- совместимость: браузеры, версии систем, размеры экранов;
- локализация: длина строк в других языках, форматы дат и чисел;
- восстанавливаемость: резервные копии, откат релиза.
Ключевой момент: у нефункционального требования должно быть число. «Работает быстро» не проверяется, «отклик не больше двухсот миллисекунд на девяносто пятом перцентиле при пятистах запросах в секунду» проверяется.
Где спотыкаются
Сводят всё к нагрузочному тестированию.
Не могут сформулировать критерий приёмки в числах.
Меряют среднее время ответа вместо перцентилей, из-за чего не видят хвост.
Забывают про доступность и локализацию, хотя обе дают дефекты, заметные пользователю сразу.