Как мы это делаем?
Под нефункциональным тестированием понимается проверка всех аспектов работы программного обеспечения, не связанных напрямую с его функциональной частью. Известно, что два приложения могут иметь идентичный функционал, но одно быть очень популярно среди пользователей, а второе практически не использоваться. Причиной этому могут быть как раз нефункциональные характеристики приложений, такие как интуитивность, отказоустойчивость, портируемость, гибкость и многое другое.
Обычно такие требования должны описываться в техническом задании совместно с функциональными требованиями, но часто им уделается либо совсем небольшое внимание, либо ими и вовсе пренебрегают.
Зачем делать нефункциональное тестирование?
Например, в одном из интернет магазинов добавили новый модуль, который позволяет вводить реквизиты карт для оплаты покупок. Но при его разработке совершенно не учитывались нефункциональные требования к такого рода компонентам.
Если к нему применять тестирование только его основной задачи — оплаты покупок по данным карты — то формально все хорошо. Но при этом, в публичный доступ может попасть модуль, который не имеет подсказок для полей, работает только в определенных браузерах, произвольно сбрасывает введенные данные, хранит или передает данные карт таким образом, что к ним легко получить несанкционированный доступ и похитить. И список такого рода примеров еще очень большой.
Важен каждый аспект
Как уже говорилось, нефункциональное тестирование — это общее название техник проверки всех отдельных характеристик качества продукта, помимо его основных функций и корректности их выполнения.
Этот подход обязательно нужно применять если приложение планирует переступать через стадию концепта и MVP (минимально жизнеспособный продукт), потому что современные пользовали будут терпеть неудобства только в том случае, когда у них нет альтернатив, но если же выбор есть, то скорее всего они отдадут предпочтение тому ПО, которое работает быстрее, более эстетично и удобно, лучше оптимизировано под различные платформы и оборудование, а также гарантирует сохранность тех данных, которые вы ему доверяете.
Какая польза от проведения нефункционального тестирования?
Благодаря применению различных видов нефункционального тестирования в составе процесса обеспечения качества для любого программного продукта, получают следующие результаты: