Написать пост

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

Аватарка пользователя Кристина Рудяга

QA-отдел MediaSoft рассказал, с чего начинать нефункциональное тестирование и какие инструменты пригодятся для автоматизации.

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

Тестирование ПО — процесс испытания программного продукта с целью проверки соответствия между реальным и ожидаемым поведением программы. Существует несколько видов тестирования. Как правило, выделяют функциональное и нефункциональное. 

В статье QA-отдел MediaSoft разберется, в чем разница между этими видами тестирования, с чего начинать нефункциональное тестирование продукта и какие инструменты пригодятся при автоматизации этой задачи. А также поделится советами для новичков в QA.

Функциональное тестирование — вид тестирования, при котором проверяем ЧТО делает программный продукт. Например, проверка API, базы данных, пользовательского интерфейсаа, функциональности тестируемого продукта. Проверяется на соответствие спецификациям, бизнес-требованиям. Основано на требованиях клиента.

Нефункциональное тестирование — вид тестирования, при котором проверяется КАК работает программный продукт: производительность, масштабируемость, нагрузка, UX и т.д. Основано на ожиданиях клиента. Пример: авторизация произошла за 2 секунды.

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

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

Проверки, которые включает в себя нефункциональное тестирование

  • тестирование доступности — программный продукт доступен к использованию 24/7;
  • тестирование удобства использования (UX/UI) — насколько дизайн соответствует макетам, также проверяется удобство использования программного продукта конечным пользователем;
  • тестирование производительности — как быстро работает продукт, а также определение скорости процедур, стабильности и надежности;
  • тестирование локализации — проверяется содержимое программного продукта на лингвистические ошибки, соответствие культурным требования и специфике конкретной страны/региона;
  • тестирование безопасности — проверяется уязвимость программного продукта к различным атакам.  

С чего начать нефункциональное тестирование, или что обязательно нужно проверить

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

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

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

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

Инструменты, которые нужны/будут полезны при автоматизации нефункционального тестирования

  • Apache Jmeter — один из самых популярных инструментов для проверки нагрузочного и стресс-тестирования. Можно установить на любую ОС. На официальном сайте Jmeter есть подробные инструкции по использованию продукта. Плюс, в интернете можно найти ответ на любой вопрос, т.к он используется уже более 20 лет многими тестировщиками. Принцип работы: JMeter эмулирует запросы пользователей. В нем можно устанавливать количество посетителей программного продукта и циклы запуска запросов. Jmeter соберет всю статистику по выполненным скриптам и выдаст вам отчет в удобном виде.
  • Netsparker — эта программа позволяет выявлять уязвимости. Например, SQL-инъекцию или межсайтовый скриптинг в веб-приложениях и веб-API. Помогает автоматизировать проверку безопасности. Принцип работы: Netsparker автоматически сканирует все устаревшие и современные типы веб-приложений и одностраничные приложения, а также защищенные паролем веб-ресурсы. Найденным уязвимостям сразу присваиваются уровни опасности с целью определения потенциального ущерба.
  • Google Оптимизация — с помощью этого сервиса можно просматривать поведение на сайте и проводить эксперименты. Самый популярный раздел — A/B-testing, с помощью которого можно оценить удобство использования новых кнопок на сайте и страниц целиком.Принцип работы: создается скрипт, который переключает версии. Настраиваем критерии отображения. В итоге пользователь будет видеть одну из версий сайта или страницы. 
  • Firebase — данный сервис похож на Google Оптимизации. Чаще используют для мобильных приложений. 

Хочется отметить, что совсем новичку в QA будет сложно использовать этот инструментарий. Готовьтесь изучать SQL и языки программирования. Хотя бы на базовом уровне. 

Также можете столкнуться с нехваткой времени, т.к. нефункциональное тестирование идет в самом конце. Конечно, есть проверки, которые идут параллельно с функциональным, — локализация и UX/UI. Но в основном оно проводится, когда программный продукт попадает в эксплуатацию конечному пользователю. Ваша задача на основании первоначальных данных проверить систему и предотвратить сбои и поломки продукта. И постарайтесь начать как можно раньше.  

Заключение

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

Следите за новыми постами
Следите за новыми постами по любимым темам
3К открытий4К показов