Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Нагрузочное тестирование быстро и сердито

482 views

Published on

Доклад Евгения Батищева на конференции SQA Days-20. 24-26 ноября 2016. Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

Нагрузочное тестирование быстро и сердито

  1. 1. Software quality assurance days 20 Международная конференция по вопросам качества ПО sqadays.com Минск. 24–26 ноября 2016 Батищев Евгений Аркадия. Санкт-Петербург, Россия Нагрузочное тестирование. Дёшево и сердито.
  2. 2. Нагрузочное тестирование. Дёшево и сердито. Немного о себе Батищев Евгений Программист, Аркадия. • Разработка. • Разработка очень быстро. • Разработка очень качественно. • “Сделайте так, чтобы работало, пожалуйста”. Batonrain@gmail.com
  3. 3. Нагрузочное тестирование. Дёшево и сердито. Продукты и задачи • Есть портал с посещаемостью в 40 тысяч человек в день. • На портале расположено огромное множество новостных рубрик. • Присутствует работа с личным кабинетом, оплата подписки и прочие милые фишки.
  4. 4. Нагрузочное тестирование. Дёшево и сердито. Задачи портала • Каждый день доносить до пользователей свежую и объективную информацию. • Развивать продукт и совершенствовать способы подачи новостей пользователям.
  5. 5. Нагрузочное тестирование. Дёшево и сердито. Как следствие • Производительность продукта была крайне важна.
  6. 6. Нагрузочное тестирование. Дёшево и сердито. Задачи разработчиков • Поддерживать продукт. • Развивать дополнительные возможности продукта, опираясь на требования заказчика.
  7. 7. Нагрузочное тестирование. Дёшево и сердито. Осознание Средняя статистика в основных браузерах: • Загрузка главной страницы – 19+ секунд. • Подгрузка статей – 10+ секунд. • Подгрузка фотографий – 10+ секунд. • Седые волосы начальника – 15 минут после осознания того, что сайт окончательно перестал открываться.
  8. 8. Нагрузочное тестирование. Дёшево и сердито. Организация нагрузочного тестирования • Со стороны заказчика – никакого. • С нашей стороны – надежда и вера в свои силы.
  9. 9. Нагрузочное тестирование. Дёшево и сердито. Нюансы • Нагрузочное тестирование на стороне заказчика. Частая, в последнее время, практика, которую не очень хочется поддерживать.
  10. 10. Нагрузочное тестирование. Дёшево и сердито. Основные минусы и плюсы подобного подхода Минусы: •Время. Тестировщик на стороне заказчика тратит много времени на разбор стороннего кода, вместо того, чтобы “Быстро-решительно” начать свою работу. •Коммуникации. Не всегда на стороне заказчика может сидеть очень уж грамотный тестировщик, который и логи нужные скинет, и сможет пояснить за проблему. Плюсы: •Беззаботность. Нет нужды заниматься утомительным тестированием, в котором ничего не понимаешь. •Экономия. Не приходится платить тестировщику-дармоеду, который только и делает, что находит проблемы в нашем идеально работающем коде.
  11. 11. Нагрузочное тестирование. Дёшево и сердито. Новые грабли – лучше старых двух, или сказ о том, как мы нагрузочное тестирование автоматизировали
  12. 12. Нагрузочное тестирование. Дёшево и сердито. Проблема • Лень. • Время. • Трудозатраты. • Тестировщики недовольны.
  13. 13. Нагрузочное тестирование. Дёшево и сердито. Что было решено сделать • Автоматизация тестирования только нескольких самых важных элементов функционала. • Выделить отдельный сервер под нагрузочное тестирование. • Распространить подобные практики на остальные проекты.
  14. 14. Нагрузочное тестирование. Дёшево и сердито. Что нам удалось сделать • Автоматизировать тестирование нескольких самых важных элементов функционала.
  15. 15. Нагрузочное тестирование. Дёшево и сердито. Почему не удалось всё остальное?
  16. 16. Нагрузочное тестирование. Дёшево и сердито. Что мы сделали? • В код был добавлен служебный api, через который можно было бы дёргать большую часть “тяжёлого” функционала • Была написана утилита, позволяющая генерировать запросы к нужным нам участкам функциональности через служебный api • Эта же утилита начинала отправлять дикое количество запросов через api и собирать данные об ошибках в системе, о состоянии памяти, загруженности процессора и тд. и тп. • Как настоящие лентяи, мы всё это запускали на нашем тестовом сервере и оставляли на ночь.
  17. 17. Нагрузочное тестирование. Дёшево и сердито. Результаты подобного подхода • Мы действительно начали выделять узкие места и за три месяца подобной практики сумели исправить множество старых огрехов и улучшить работоспособность продукта. • Разработчики стали больше времени уделять тестированию – пришлось поддерживать служебный api в актуальном состоянии, чтобы не было рассинхрона с основной функциональностью.
  18. 18. Нагрузочное тестирование. Дёшево и сердито. Основные плюсы, извлечённые из нашего подхода • Создание служебного api, которым стали пользоваться наши тестировщики для выявления новых проблем в старой функциональности. • Автоматизация нагрузочного тестирования трудоёмких кусков продукта. • Автогенерация отчётов о ночных сборках с возможностью включать и отключать нагрузочное тестирование после прогона основных Uts. • Сохранение нервов разработчиков и тестировщиков.
  19. 19. Нагрузочное тестирование. Дёшево и сердито. Посыл • Хотя всё и начиналось, как попытка просто организовать какое-то, самое минимальное нагрузочное тестирование, проект вылился в совместный внутренний продукт, который проектировали и тестировщики, и программисты. • Программист всегда может чуточку облегчить жизнь тестировщикам. • Облегчая жизнь тестировщикам – программист облегчает жизнь себе.
  20. 20. Нагрузочное тестирование. Дёшево и сердито. Вопросы

×