Сегодня разрабатывается много программ для пользователей. Главная цель разработчиков – создать продукт, который будет обеспечивать требуемый уровень производительности. Конкуренция на рынке программных решений вынуждает разработчиков заботиться не только о функциональности приложений, но и о качестве. А показателем качества является показатель производительности, влияющий на стабильность, безопасность и «живучесть».
Низкая производительность ПО снижает число итераций в единицу времени, что влечёт за собой недовольство конечных пользователей. А ведь от их удовлетворённости зависит итоговая прибыль компаний. Потому разработчики и привлекают экспертов по тестированию производительности перед релизом цифрового продукта.
Зачем и как проводится тестирование производительности?
Тестирование производительности предполагает проверку программного обеспечения, с помощью которой определяется скорость работы системы и возможность системы работать под разной нагрузкой. В этом подходе оценки качества программного решения исследуются и другие атрибуты: стабильность, масштабируемость, устойчивость к стрессовому воздействию и прочее.
В качестве примера приведем магазин с собственным сайтом, где расположен каталог товаров. В честь юбилея решено провести глобальную распродажу, следовательно, ожидается большой поток посетителей на сайт. Платформа не выдерживает такого ажиотажа и начинает “тормозить” а позже и вовсе перестанет работать. Как итог, магазин вместо ожидаемой прибыли получает репутационный ущерб. Но этого бы не случилось с предварительной оценкой возможностей сайта. Следовательно, производительность ПО играет важную роль для бизнеса. Тестирование помогает найти проблемы до релиза.
Оценка качества ПО
Оценка качества ПО проводится по следующим этапам тестирования производительности:
- определение технических требований к программному продукту;
- глобальный анализ информации о системе;
- настройка инструментов, генерирующих нагрузку;
- проверка серверного и прочего оборудования, участвующего в тестировании;
- определение критериев тестовых данных;
- создание скриптов для формирования нагрузки;
- предварительные тесты;
- проведение тестирования;
- анализ полученных данных и формирование отчётности.
Таким образом, при тестировании нужно охватить все вышеупомянутые факторы. Это обеспечивает высокопроизводительную работу.
В чём разница между нагрузочным и стресс-тестированием
Востребованные нефункциональные виды тестирования производительности — нагрузочное и стрессовое. Нагрузочное тестирование (load testing) оценивает стабильность функционирования системы при заданном количестве пользователей и определяет время отклика процессов. Задача этой проверки — определение работоспособности системы в ожидаемых условиях, которые приняты за норму. В конечном счёте, это тестирование определяет общую работоспособность системы, которая указывается в технических параметрах системы.
Стресс-тестирование (stress testing) выявляет максимальную нагрузку, при которой ПО может поддерживать работоспособность. Цель проверки — оценить устойчивость программного решения при всплесках пользовательской активности. Ведь критически важно обеспечить устойчивость работы серверов при любом повышении нагрузки, так как это поддерживает лояльность клиентов и рост популярности ресурса.
Таким образом, при проверке ПО следует проводить два вида тестирования. Нагрузочное поможет выявить, как система ведет себя в нормальных условиях, а стрессовое проверит производительность при большой активности пользователей.
Чем санитарное тестирование отличается от дымового?
Существует еще стабильное и конфигурационное тестирование. Первое проверяет, как работает ПО без сбоев и помех, используя все возможности. Цель тестирования стабильности — проверка сбоев во время работы. Конфигурационное тестирование проверяет совместимость ПО с окружением (оборудование, система и другое).
Раньше разработчики отшучивались: если из нового оборудования не пошел дым, значит тестирование прошло успешно. Поэтому тестирование прозвали дымовым. Оно предназначено для определения критических ошибок ПО. Санитарное тестирование (sanity testing) — это проверка исправности и работоспособности функциональности ПО. То есть, задача заключается в подтверждении, что конкретная функциональность запускается в соответствии с заявленными параметрами.
Таким образом, дымовое и санитарное тестирование осуществляют после выхода новой версии программного обеспечения. Отличие состоит в том, что дымовые проверки направлены на комплексную оценку работоспособности, а санитарные — на работоспособность конкретных компонентов.
Какие инструменты используются для проверки ПО?
Инструменты тестирования производительности позволяют оптимизировать оценку качества ПО. Существует множество ресурсов, которые помогают тестировщику в работе, но мы рассмотрим наиболее востребованные.
- Apache JMeter. Поддерживает многопоточность, с открытым исходным кодом, благодаря чему постоянно расширяет функционал. Является бесплатным ресурсом для нагрузочного тестирования;
- LoadRunner (HP LoadRunner/Micro Focus LoadRunner). Это многопоточное приложение с высокой интегративностью. Лимитированная бесплатная лицензия допускает использование этого сервиса для небольших программных комплексов. Приложение помогает определять взаимодействие пользователей друг на друга и для некоторых задач, это идеальное решение, так как работает быстрее, чем другие приложения. Недостаток — сложная документация.
Вышеуказанные ресурсы помогают тестировщикам полноценно оценить возможности и производительность сайта.
В QA Academy можно пройти обучение на тестировщика. Студенты могут пройти курс дистанционно, что востребовано в наши дни. Также можно записаться на личное обучение. В штате преподаватели с большим опытом работы и являются действующими тестировщиками. Студенты обучаются на проектах, что дает много опыта и знаний. Также их приглашают работать в крупные компании. Они узнают как писать тест-кейсы, которые пройдут испытание автоматизацией. Таким образом, обучение на тестировщика востребовано. QA Academy даст базовые знания для начала карьеры.