Главная страницаТестирование ПОНефункциональное тестирование ПО: полный список

Нефункциональное тестирование ПО: полный список

нефункциональное тестирование

Когда вы думаете о тестировании ПО, то первое, что приходит в голову — это проверка его функций. Но его качество не ограничивается только функциональностью. Нефункциональное тестирование нужно для оценки других важных характеристик, которые влияют на всю работу ПО, хотя не так очевидны для пользователей. Давайте разбираться, что такое нефункциональное тестирование и какие виды оно включает.

Пара слов о нюансах нефункционального тестирования

Глобально выделяют два вида тестирования: функциональное и нефункциональное. Об этом мы говорили в общем гиде по видам тестирования. Также мы собрали отельный гид по функциональным тестам. Прочитайте их, чтобы собрать в голове общую картинку QA-процессов в компаниях. А теперь перейдем к теме этой статьи.

Нефункциональное тестирование — это проведение тестов ПО с фокусом на аспекты, не связанные с его функциями. Здесь речь идет больше о технических нюансах, которые делают продукт более стабильным, быстрым и приятным в использовании.

Вообще нефункциональное тестирование — это отдельный мир. Одной из главных трудностей для новичка здесь будет техническая сторона: нужно немного разбираться в «‎железе», чтобы понимать, как те или иные характеристики отразятся на работе ПО. Настроить необходимые инструменты, создать правильную тестовую среду — все это требует времени и терпения.

Обычно сначала проводят функциональное тестирование, а после — нефункциональное. Логика проста: если базовые функции не работают, тестировать производительность или безопасность бессмысленно.

Нефункциональные виды тестирования

Есть разные виды нефункционального тестирования, которые помогают оценить ПО со всех сторон и сделать его полностью готовым к использованию.

Тестирование производительности

Нужно для оценки того, как сайт, приложение или сервис работает под разной нагрузкой, чтобы предотвратить потенциальные сбои. Это тестирование помогает определить, насколько стабильной будет программа и сможет ли она выдержать большую волну пользователей.

  • Нагрузочное тестирование. Проверяет, как программа реагирует на повышенную нагрузку. Например, сколько пользователей одновременно может обслуживать сайт.
  • Стресс-тестирование. Оценивает поведение ПО под экстремальными нагрузками, чтобы увидеть, как оно восстанавливается после сбоев.
  • Объемное тестирование. Нужно для систем, которые будут работать с большими объемами данных. Например, как база данных справляется с миллионами записей.
  • Тестирование выносливости. Оценивает стабильность приложения при длительной работе под нагрузкой.

Тестирование безопасности

  • Его проводят, чтобы выявить и устранить уязвимости , особенно это важно на фоне повышенных требований к кибербезопасности. Тестирование безопасности помогает обнаружить слабые места, которые злоумышленники могут использовать во время атак. Цель — предотвратить взломы, утечки данных и другие инциденты.
  • Тестирование уязвимостей. Выявляет слабые места, которые потенциально могли бы быть мишенью для атаки.
  • Аудит безопасности. Проверяет соответствие системы стандартам безопасности и политике компании — например, при хранении и обработке персональных данных.
  • Тестирование на проникновение. Симулирует атаки злоумышленников, чтобы оценить, насколько программа устойчива к взлому.

Тестирование удобства использования

Юзабилити-тестирование нужно, чтобы убедиться, что пользователям будет удобно пользоваться приложением, а его интерфейс будет интуитивно понятным.

В функциональном тестировании тоже проводят юзабилити-тесты. Там тестировщик проверяет, работает ли интерфейс правильно (выполняет ли функции), а в нефункциональном — насколько он удобен для пользователя (как он выполняет функции).

Юзабилити-тестирование. Оценивает, насколько приложение удобно для пользователя. Например, насколько легко найти нужную функцию или заполнить форму.

Тестирование пользовательского интерфейса. Проверяет, как интерфейс отображается на разных устройствах и экранах.

Для старта в QA важно освоить как функциональное, так и нефункциональное тестирование. С ними можно ознакомиться на нашем курсе «Основы тестирования ПО», который подходит для новичков в IT.

Подробнее

Тестирование совместимости

Здесь проверяют, как программа будет работать в разных браузерах и ОС, а также на разных устройствах (телефонах, смарт-часах, ноутбуках и планшетах). Например, как сайт поведет себя при запуске в Chrome, Яндекс.Браузере, Firefox или Safari. Или как приложение работает на разных моделях смартфона, есть ли разница в работе на Android и iOS.

Дополнительные виды нефункционального тестирования

Выше мы перечислили основные из видов нефункционального тестирования — те, без которых практически не обходится каждый проект. Но есть и другие способы проверки ПО. Их QA-команда проводит по мере необходимости.

Тестирование надежности

Проверяет, насколько система устойчива к отказам и может ли долго работать без сбоев. Это нужно, чтобы обеспечить стабильность и надежность ее работы в тех или иных условиях.

  • Тестирование отказоустойчивости. Оценивает способность ПО продолжать работу в случае отказа одного или нескольких компонентов.
  • Тестирование восстановления после сбоя. Проверяет, как быстро система восстанавливается после ошибок и сбоев.

Тестирование масштабируемости

Оно нужно, чтобы понять, как программа справляется с увеличением нагрузки и расширением ресурсов. Например, когда у ПО увеличится количество пользователей или объем данных. После проверки можно гарантировать, что сайт, сервис или база данных может расти вместе с потребностями бизнеса.

Тестирование на соответствие стандартам

Это важно, чтобы в будущем компания не имела юридических претензий со стороны пользователей. Проверяют, соблюдены ли внутренние нормативы компании, государственные стандарты по обработке личных данных и т. п. 

Тестирование интернационализации и локализации

Нужны для доступности и удобства ПО для людей из разных стран и культур. Актуально для международных компаний.

  • Тестирование локализации. Проверяет корректность перевода и адаптации интерфейса под культурные особенности региона.
  • Тестирование интернационализации. Оценивает, легко ли ПО адаптировать для использования в других странах и под другие языки.

Тестирование эффективности

Оценивает, насколько программа справляется с заявленным временем отклика, количеством пользователей и насколько быстро она обрабатывает запросы и выдает ответ. 

Как проводить нефункциональное тестирование

Способ проведения тестов примерно такой же, как и везде в QA: сначала планирование, потом выполнение, отчет и передача разработчикам.

Подход к нефункциональному тестированию

Процесс можно разделить на пять этапов.

  1. Определение требований. Это могут быть критерии по производительности, безопасности, удобству использования и совместимости. По каждому из них устанавливают свои KPI.
  2. Создание тест-плана. Он описывает все планируемые виды тестирования, сроки, ответственных лиц и ожидаемые результаты. Подробнее читайте в нашей статье о том, что такое тест-план и как он может выглядеть.
  3. Выбор инструментов и методологий. Например, для тестирования производительности можно использовать Apache JMeter, для безопасности — Burp Suite.
  4. Проведение тестирования. Этим может заниматься как целая команда, так и один QA-инженер.
  5. Написание отчета. Его пишут по определенному плану, оставляют рекомендации по улучшению ПО и передают разработчикам.

Чек-листы для нефункционального тестирования

Вот что можно проверить в рамках того или иного вида нефункционального тестирования.

Чек-лист тестирования производительности

  • Измерить время отклика при различных уровнях нагрузки.
  • Оценить максимальную пропускную способность системы.
  • Проверить стабильность системы при длительной повышенной нагрузке.

Чек-лист тестирования безопасности

  • Выявить уязвимости, такие как SQL-инъекции и XSS-атаки.
  • Проанализировать защиту данных при их передаче и хранении.
  • Провести тестирование на проникновение и найти узкие места.

Чек-лист юзабилити-тестирования

  • Оценить удобство навигации и доступность интерфейса.
  • Проанализировать поведение пользователей и их отзывы.
  • Протестировать работу интерфейса на разных устройствах и экранах.

Инструменты для нефункционального тестирования

Есть несколько программ и сервисов, которые подходят практически для всех нефункциональных видов тестирования, но есть и свои, специфические. В каждой команде любят и используют свой софт.

Тестирование производительностиТестирование безопасностиЮзабилити-тестирование
Apache JMeter — один из самых популярных инструментов для нагрузочного тестированияOWASP ZAP для обнаружения уязвимостейHotjar для анализа поведения пользователей на сайте
LoadRunner — комплексный, для оценки производительностиBurp Suite — платформа для быстрого и глубокого сканирования ПОCrazy Egg — визуализирует, как юзеры взаимодействуют с интерфейсом
Gatling — для симуляции высоких нагрузокSonarQube — поддерживает более 25 языков программированияUsabilityHub — для проведения юзабилити-тестов и сбора обратной связи

Часто задаваемые вопросы о нефункциональном тестировании

  • Что такое нефункциональное тестирование?

Во время него проверяют аспекты ПО, не связанные с конкретными функциями, но важные для его качества в общем. Например, производительность, безопасность, удобство использования, совместимость и надежность. Например, оно проверяет, нормально ли сработает сайт под повышенной нагрузкой или насколько он защищен от атак, удобен ли для использования на разных ОС.

  • Почему нефункциональное тестирование так важно?

Оно может гарантировать, что ПО не просто работает, а работает хорошо и стабильно в любых условиях. Кроме того, любому разработчику хочется, чтобы программа была защищена от атак злоумышленников и могла выдержать наплыв пользователей. Благодаря тестированию можно избежать многих проблем, выявить их на стадии разработки, пока они не дошли до юзеров. Без нефункционального тестирования ПО может работать медленно, быть уязвимым к атакам или неудобным, что снизит его ценность и привлекательность для конечных пользователей.

  • Какие инструменты используют для нефункционального тестирования?

Это программы, помогающие автоматизировать вещи, которые трудно или невозможно сделать в ручную. Например, они имитируют повышенную нагрузку на ПО. Без них тесты были бы менее эффективными и более трудоемкими. Например, для проверки безопасности используют OWASP ZAP или Burp Suite, а чтобы проверить юзабилити — могут подключить к работе Crazy Egg. Каждый инструмент помогает провести специфические тесты, такие как нагрузочные тесты, поиск уязвимостей, оценку удобства использования и анализ совместимости. Подобный софт для QA помогает выявлять даже скрытые проблемы, о которых могут не догадываться разработчики.

  • Как определить требования перед тем, как проводить функциональные тесты?

Сначала можно проанализировать цели ПО и ожидания пользователей. Нужно оценить аспекты производительности, безопасности, юзабилити и совместимости. Полезно будет поговорить с заинтересованными сторонами, чтобы понять их приоритеты и определить конкретные критерии успеха. Нужно создать четкие и измеримые требования.

  • Какие виды нефункционального тестирования важнее?

Среди всех видов можно выделить тестирование производительности, безопасности, юзабилити (удобства) и совместимости. Тестирование производительности проверяет скорость и стабильность работы программы, безопасность выявляет уязвимости, юзабилити оценивает удобство для пользователей, а совместимость проверяет корректную работу на разных устройствах. 

Заключение

Нефункциональное тестирование, пример которого мы рассмотрели в этой статье, позволяет оценить производительность, безопасность, удобство и совместимость ПО. После такой всесторонней проверкой, в тандеме с функциональным тестированием, ПО будет приносить пользу как пользователям, так и бизнесу, который его заказал.

Наши курсы

Отправляя заявку, вы даете согласие на обработку своих персональных данных и соглашаетесь с политикой конфиденциальности

viber telegram
phone +77172972667