Про функциональное говорили в прошлый раз тут https://vk.com/wall-172009645_2069.
Сегодня давайте посмотрим, чем же нефункциональное тестирование отличается от функционального и есть ли между ними четкая грань.
Нефункциональное тестирование — это …
Для начала обратимся к ISTQB.
Нефункциональное тестирование системы выполняется для оценки таких характеристик системы и программного обеспечения, как удобство использования, производительность или безопасность.
За классификацией характеристик качества программного обеспечения ISTQB советует обращаться к стандарту ИСО (ISO/IEC 25010).
________________________________
Нефункциональное тестирование – это проверка того, «насколько хорошо работает система».
________________________________
То есть нефункциональное тестирование направлено на проверку качественных характеристик продукта, которые могут быть измерены.
Иными словами, нефункциональное тестирование – тестирование свойств, которые не относятся к функциональности системы.
Нефункциональные требования
Какие же могут быть нефункциональные требования/свойства, которые предъявляются к системе:
- Удобство. Исследуем продукт с точки зрения пользователя.
- Масштабируемость. Требования к горизонтальному или вертикальному масштабированию приложения.
Масштабируемость определяет способность системы обрабатывать большие объемы нагрузки и может относиться к различным параметрам системы: количество дополнительного трафика, с которым она может справиться, насколько легко нарастить ёмкость запоминающего устройства, или насколько больше других транзакций может быть обработано. - Производительность. Работоспособность системы при различных нагрузках.
- Безопасность. Защита пользовательских данных, данных приложения, от взлома.
- Портируемость. Совместимость и переносимость приложения на различные окружения и платформы.
- Надежность. Реакция системы на различные непредвиденные ситуации, на нестандартные действия пользователей.
Существует множество видов тестирования, которые используются для проверки нефункциональных требований. Но о них мы подробно поговорим в следующей статье.
Когда и как?
Вопреки всеобщему заблуждению, нефункциональное тестирование может и, чаще всего, должно выполняться на всех уровнях тестирования, и как можно раньше. Несвоевременное обнаружение нефункциональных дефектов может быть угрозой успеха всего проекта.
Полноту нефункционального тестирования можно оценить через нефункциональное покрытие.
Нефункциональное покрытие – это степень, с которой какая-либо нефункциональная характеристика покрыта тестами, которая выражается в процентном соотношении покрытых тестами характеристик к их общему числу.
Например, используя трассируемость тестов к соответствующим им поддерживаемым устройствам для мобильного приложения, можно вычислить процент поддерживаемых устройств, используемых при тестировании совместимости, тем самым определив потенциальные пробелы в покрытии.
Отдельно стоит отметить, что проектирование и выполнение нефункциональных тестов может потребовать специальных навыков и знаний. Какие знания могут понадобиться? Например, знаний о слабых сторонах, свойственных той или иной структуре проекта или технологии, знание специфической базы пользователей и так далее.
Важное отступление
Еще раз напомню, что обычно в каждом из видов тестирования присутствуют обе составляющие (функциональная и нефункциональная). Но нам все же нужно на что-то опираться, поэтому за основу я беру ISTQB.
В рамках собеседования также будет не лишним отметить, что четкого разграничения между этими двумя видами нет. Можно даже привести в пример тестирование безопасности. Согласитесь, что для банковского приложения такое тестирование можно отнести к функциональному, так как это одно из основных требований к таким приложениям.
Я бы рассказывал об этих двух видах тестирования, заранее обозначив источник, на который я опираюсь, и упомянул бы о том, что существует несколько точек зрения на разделение тестирования на функциональное и нефункциональное.