Перформенс тестирование программного обеспечения

Александра Ерёменко

5 сентября прошел семинар для тестировщиков программного обеспечения «Black Tea Testing #2» при поддержке компании Cogniance. Сергей Ляхов (QA Manager, ZeoBIT LLC) выступил с докладом «Перформанс тестирования: Для чего? Когда? Как?», а Сергей Музыченко (QA Engineer, MarketGid) – с докладом «Защита ПО: разработка и тестирование».

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

Сергей Музыченко

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

Организатор семинара Антонина Бурлаченко (Automation QA Engineer, Cogniance)

Сергей Ляхов

Why?

Зачем необходимо перформанс тестирование? Сергей попытался разделить целевую аудиторию тестирования на 4 подсистемы: стартапы большие и маленькие, компании большие и маленькие. Стартапы в большинстве случаев терпят фиаско, поэтому проведение дорогостоящего и длительного перформенс тестирования напоминает отмывание денег венчурных капиталистов и заработка аутсорсинговых контор. Большие стартапы, по мнению Сергея Ляхова, проводят перформенс, потому что есть деньги. В этом случае они проверяют, смогут ли выдержать нагрузку в миллионную аудиторию. Маленькие же стартапы заказывают тетирование для поддержки модной тенденции. С компаниями в этом случае обстоит дело гораздо лучше. Для небольших компаний важно убедиться смогут ли они стать большими, а для крупных – что они производят качественный и быстрый продукт. Сам Сергей считает, что перформанс тестирование не зависимо от заказчика всегда уместно там, где есть желание выпускать адекватный продукт.

When?

За период тестирования необходимо выполнить 3 промежуточных перформанс тестирования:

- при окончании цикла тестирования (за несколько дней до выпуска продукта, такое себе «генеральное» тестирование);

- в середине (для уменьшения проблем тестирования в конце);

- в самом начале (стоит осуществлять тестирование лишь основных функций для быстрого выявления серьезных багов веб-систем).

How?

Во-первых, необходимо выбрать подходящие тестинговые тулзы (tools): платные или бесплатные. Основное отличие бесплатных программ тестирования: возможность написания вручную кодов тестирования. (Сергей предлагает использовать Jmeter) Также немаловажно знать, какие поддерживаются протоколы (например, не все тулзы тестируют протокол FLEX). Так как программисты не любят стандартов, неплохо бы иметь возможность написания скриптовых модулей.

Во-вторых, следует провести тестирование среды перед запуском непосредственно перформанс тестирования, а именно:

- идентифицировать спецификации серверов (app, DB). Имеется в виду, что тестировщикам часто приходится настраивать сервера самим, поэтому нужно знать, какие сервера вам необходимы, какие будут на продакшине для определения его мощностей;

- идентифицировать KPI мониторинга: что именно будете мониторить;

- установить мониторинг тулзы в соответствии со вторым пунктом.

Говоря о проводимых тестах, можно выделить:

- определение количества юзеров и так называемый rump-up период создания этих юзеров;

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

- создание единого Properties file, отвечающего за перформанс тестирование для быстрого изменения тестов.

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

Пример плохого отчета

Пример хорошего отчета

Семинар «Black Tea Testing #2» завершился тестированием качества черного чая и сладостей на любой вкус:)