SlideShare a Scribd company logo
19 Международная конференция
по вопросам качества ПО
sqadays.com
Андрей Дмитриев
Москва 2016
Performance Management lessons learnt
19 Международная конференция
по вопросам качества ПО
sqadays.com• разработчик, тимлид, груплид
• лидер JUG.ru и CodeFreeze.ru
2
Кто я?
19 Международная конференция
по вопросам качества ПО
sqadays.com• разработчик, тимлид, груплид
• лидер JUG.ru и CodeFreeze.ru
3
Кто я?
19 Международная конференция
по вопросам качества ПО
sqadays.com• разработчик, тимлид, груплид
• лидер JUG.ru и CodeFreeze.ru
4
Кто я?
19 Международная конференция
по вопросам качества ПО
sqadays.com• разработчик, тимлид, груплид
• лидер JUG.ru и CodeFreeze.ru
5
Кто я?
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
6
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
7
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
8
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
9
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
• Поделиться своим опытом
10
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
• Поделиться своим опытом
11
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
• Поделиться своим опытом
• Нагрузочное тестирование – это не (с)только автоматизированные
сценарии, но и автоматизация:
12
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
• Поделиться своим опытом
• Нагрузочное тестирование – это не (с)только автоматизированные
сценарии, но и автоматизация:
• выборки данных,
13
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
• Поделиться своим опытом
• Нагрузочное тестирование – это не (с)только автоматизированные
сценарии, но и автоматизация:
• выборки данных,
• предстартовой проверки и
14
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Научить вас проводить performance-тестирование
• Показать как не надо делать
• Поделиться своим опытом
• Нагрузочное тестирование – это не (с)только автоматизированные
сценарии, но и автоматизация:
• выборки данных,
• предстартовой проверки и
• анализа результатов.
15
Цель
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Нагрузочное тестирование – это не (с)только автоматизированные
сценарии, но и автоматизация:
• выборки данных,
• предстартовой проверки и
• анализа результатов.
16
Цель
А B
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Нагрузочное тестирование – это не (с)только автоматизированные
сценарии, но и автоматизация:
• выборки данных,
• предстартовой проверки и
• анализа результатов.
17
Цель
А B C
19 Международная конференция
по вопросам качества ПО
sqadays.com
•Все лгут
•Тестирование – это данные
•Знай и умей свои компоненты
18
План
19 Международная конференция
по вопросам качества ПО
sqadays.com
19
Все лгут
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Файл с 1,5 миллионами ордеров
20
Тестирование начинается с volumetrix
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Файл с 1,5 миллионами ордеров
• Валидация заказчиком пройдена
• Тем не менее, ошибка в плане допущена
21
Тестирование начинается с volumetrix
19 Международная конференция
по вопросам качества ПО
sqadays.com
22
Дело о пропавшей диаграмме
ПослеДо
App server
Oracle
Node1
Node3 Node4
Node2
19 Международная конференция
по вопросам качества ПО
sqadays.com
23
Дело о пропавшей диаграмме
ПослеДо
App server
Oracle
Node1
Node3 Node4
Node2
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет на тесте работает моментально, а на проде - часы
24
Отчет убить нельзя починить
19 Международная конференция
по вопросам качества ПО
sqadays.com
25
Отчет убить нельзя починить: Было
EVT:
CCN:
PON:
*
*
TOMS:
IMA:
*
19 Международная конференция
по вопросам качества ПО
sqadays.com
26
Отчет убить нельзя починить: Как нужно
EVT:
CCN:
PON:
*
*
TOMS:
IMA:
ICON:
*
*
19 Международная конференция
по вопросам качества ПО
sqadays.com
27
Отчет убить нельзя починить: Стало
EVT:
CCN:
PON:
*
*
TOMS:
IMA:
ICON:
*
19 Международная конференция
по вопросам качества ПО
sqadays.com
28
Отчет убить нельзя починить: Как нужно
EVT:
CCN:
PON:
*
*
TOMS:
IMA:
ICON:
*
*
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет на тесте работает моментально, а на проде - часы
• Разработчик в хотфиксе не поставил звездочку на поле
• Тест продолжал искать без одного критерия и выдавал пустое множество
29
Отчет убить нельзя починить
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет на тесте работает моментально, а на проде - часы
• Разработчик в хотфиксе не поставил звездочку на поле
• Тест продолжал искать без одного критерия и выдавал пустое множество
• После восстановления функциональности тест по-прежнему работал быстрее,
чем на проде
30
Отчет убить нельзя починить
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет на тесте работает моментально, а на проде - часы
• Разработчик в хотфиксе не поставил звездочку на поле
• Тест продолжал искать без одного критерия и выдавал пустое множество
• После восстановления функциональности тест по-прежнему работал быстрее,
чем на проде
• Но это уже следующая история
31
Отчет убить нельзя починить
19 Международная конференция
по вопросам качества ПО
sqadays.com
32
Тестирование – это данные
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет на тесте работает быстро, а на проде - часы
33
Синтетика данных
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет на тесте работает быстро, а на проде - часы
• Причина - разные сложности данных
• Да, мы делаем автопроверку теперь
• Да, мы делаем выборку правильных данных теперь
34
Синтетика данных
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет все равно строится дольше, чем ожидается
• Причина: синтетические данные лежат в файлах данных последовательно
• В реальности они сильно фрагментированы
35
Синтетика данных - копаем дальше
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отчет все равно строится дольше, чем ожидается
• Причина: синтетические данные лежат в файлах данных последовательно
• В реальности они сильно фрагментированы
• Данные выровняли:
• эмулировали “натуральное” их создание
• создали индексы правильно
• Идеально было бы копировать .dbf-файлы вместо импорта
36
Синтетика данных - копаем дальше
19 Международная конференция
по вопросам качества ПО
sqadays.com
37
Кривая 90% line
19 Международная конференция
по вопросам качества ПО
sqadays.com
38
Кривая 90% line
19 Международная конференция
по вопросам качества ПО
sqadays.com
39
Кривая 90% line
19 Международная конференция
по вопросам качества ПО
sqadays.com
40
Кривая 90% line
19 Международная конференция
по вопросам качества ПО
sqadays.com
41
Кривая 90% line
Квартет Энскомба: https://goo.gl/wBOLhI
19 Международная конференция
по вопросам качества ПО
sqadays.com
42
Знай и умей свои компоненты
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Результаты тестов показали таймауты
43
Я твои стабы на перфоманс проверял
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Результаты тестов показали таймауты
• Проблема – в стабах
44
Я твои стабы на перфоманс проверял
19 Международная конференция
по вопросам качества ПО
sqadays.com
45
Я твои стабы на перфоманс проверял
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Результаты тестов показали таймауты
• Проблема – в стабах
• Решение – это ядро плюс сторонние компоненты
46
Я твои стабы на перфоманс проверял
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отсутствие данных sar на тестовой системе
47
Дело о пропавшей Саре
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отсутствие данных sar на тестовой системе
48
Дело о пропавшей Саре
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Отсутствие данных sar на тестовой системе
• Причина - переполнение партиции /home
• В чеклист и скрипт включили проверку места подо все
49
Дело о пропавшей Саре
19 Международная конференция
по вопросам качества ПО
sqadays.com
• В отчетах снова стали появляться задержки по 30 секунд!
• Хьюстон, у нас проблемы!
50
Injector не выдержит двоих
19 Международная конференция
по вопросам качества ПО
sqadays.com
• В отчетах снова стали появляться задержки по 30 секунд!
• Хьюстон, у нас проблемы!
51
Injector не выдержит двоих
Injector
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Нужна проверка окружения до начала тестов
• Нужна проверка данных до и после замера
• Нужна проверка результатов после замера
• Автоматизация – это не только скрипты тестов
52
Итоги
19 Международная конференция
по вопросам качества ПО
sqadays.com
53
Extra
Введение в Performance Management
• В систему будет поступать в
среднем 3000 запросов в сутки
• Длительность теста - 1 час
А. 375 C. 125
B. 3000 D. Неизвестно
Сколько запросов должно быть выполнено за 1 час?
Введение в Performance Management
• В систему будет поступать в
среднем 3000 запросов в сутки
• Длительность теста - 1 час
А. 375 (3000/8) C. 125 (3000/12)
B. 3000 D. Неизвестно
Сколько запросов должно быть выполнено за 1 час?
Простой пример #1
• В систему будет поступать в среднем 3000 запросов в сутки
• Длительность теста - 1 час
• Сколько запросов должно быть выполнено?
Введение в Performance Management
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Что такое конфигурация
• Когда используется Compliance
• Причины почему недотюнили
• Что получилось в итоге
57
Мертвая лошадь Compliance
19 Международная конференция
по вопросам качества ПО
sqadays.com
• Runnable run = new Runnable (){
• public void run () {
• synchronized (STATIC_OBJECT) {
• вызватьЗапрос();
• }
• }
• }
58
ThreadPool не параллелится

More Related Content

PPTX
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
PDF
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
PDF
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
PDF
My talk on HBase ops engineering at TBD Jun 2016
PPTX
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
PDF
Всему своё время / Роман Ивлиев (Банки.ру)
PDF
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
PDF
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов ...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
My talk on HBase ops engineering at TBD Jun 2016
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Всему своё время / Роман Ивлиев (Банки.ру)
Continuous Delivery, или волшебная кнопка для релизов по запросу, Денис Яковл...
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017

What's hot (20)

PDF
Денис Паясь
PPTX
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
PDF
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
PPT
Анализируем результаты тестирования производительности с Graphite и Grafana
PDF
Anton Tsitou "Cycle ORM and Graphs"
PDF
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
PDF
NoSQL — неспроста ли это "ЖЖЖ"?
PDF
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
PPTX
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
PDF
Tk conf daniel-podolsky-sqlvsnosql
PDF
Serghei Iakovlev "Chaos engineering in action"
PDF
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
PDF
PDF
D2D DevPro 2017: Golang — опыт промышленной разработки
PDF
My talk on Graphite stack on 58it.ru
PDF
Тестируем мобильное приложение в суровых реалиях Интернета
PDF
Олег Бартунов и Иван Панченко
PDF
Формальная верификация кода на языке Си
PPTX
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
PDF
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
Денис Паясь
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
Анализируем результаты тестирования производительности с Graphite и Grafana
Anton Tsitou "Cycle ORM and Graphs"
RTB DSP на языке Go укрощение buzzwords / Даниил Подольский (Qmobi.Com)
NoSQL — неспроста ли это "ЖЖЖ"?
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Tk conf daniel-podolsky-sqlvsnosql
Serghei Iakovlev "Chaos engineering in action"
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
D2D DevPro 2017: Golang — опыт промышленной разработки
My talk on Graphite stack on 58it.ru
Тестируем мобильное приложение в суровых реалиях Интернета
Олег Бартунов и Иван Панченко
Формальная верификация кода на языке Си
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
Ad

Similar to Performance management lessons learnt / Андрей Дмитриев (JUGRU) (20)

PPTX
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
PPTX
Continuous Integration для QA
PDF
Software Analytics in frontend
PDF
Иван Карев — Клиентская оптимизация
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PDF
Развитие процессов тестирования в Badoo за три года
PDF
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
PPTX
Построение процесса тестирования производительности игрового клиента
PPTX
Комплексное использование анализаторов для повышения качества кода
PDF
Иван Карев — Клиентская оптимизация
PPTX
Улучшить KPI в два раза? Сделано!
PDF
Организация автоматического тестирования в схеме непрерывной интеграции
PPTX
101 способ провести нагрузочное тестирование неправильно
PDF
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
PDF
Badger — инструмент для мониторинга качества продуктов
PDF
Илья Кудинов
PPTX
Free Desktop QA Engineers: implement automation testing
PDF
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
PDF
Покрываем тестами взрослый RoR проект / Николай Шебанов (Evrone)
PDF
Микросервисный фронтенд
Selenium нетрадиционной ориентации или Тестирование производительности Javasc...
Continuous Integration для QA
Software Analytics in frontend
Иван Карев — Клиентская оптимизация
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Развитие процессов тестирования в Badoo за три года
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
Построение процесса тестирования производительности игрового клиента
Комплексное использование анализаторов для повышения качества кода
Иван Карев — Клиентская оптимизация
Улучшить KPI в два раза? Сделано!
Организация автоматического тестирования в схеме непрерывной интеграции
101 способ провести нагрузочное тестирование неправильно
«Badger — инструмент для мониторинга качества продуктов» – Ирина Шрейдер, 2ГИС
Badger — инструмент для мониторинга качества продуктов
Илья Кудинов
Free Desktop QA Engineers: implement automation testing
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
Покрываем тестами взрослый RoR проект / Николай Шебанов (Evrone)
Микросервисный фронтенд
Ad

More from Ontico (20)

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...

Performance management lessons learnt / Андрей Дмитриев (JUGRU)

  • 1. 19 Международная конференция по вопросам качества ПО sqadays.com Андрей Дмитриев Москва 2016 Performance Management lessons learnt
  • 2. 19 Международная конференция по вопросам качества ПО sqadays.com• разработчик, тимлид, груплид • лидер JUG.ru и CodeFreeze.ru 2 Кто я?
  • 3. 19 Международная конференция по вопросам качества ПО sqadays.com• разработчик, тимлид, груплид • лидер JUG.ru и CodeFreeze.ru 3 Кто я?
  • 4. 19 Международная конференция по вопросам качества ПО sqadays.com• разработчик, тимлид, груплид • лидер JUG.ru и CodeFreeze.ru 4 Кто я?
  • 5. 19 Международная конференция по вопросам качества ПО sqadays.com• разработчик, тимлид, груплид • лидер JUG.ru и CodeFreeze.ru 5 Кто я?
  • 6. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование 6 Цель
  • 7. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование 7 Цель
  • 8. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать 8 Цель
  • 9. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать 9 Цель
  • 10. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать • Поделиться своим опытом 10 Цель
  • 11. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать • Поделиться своим опытом 11 Цель
  • 12. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать • Поделиться своим опытом • Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация: 12 Цель
  • 13. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать • Поделиться своим опытом • Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация: • выборки данных, 13 Цель
  • 14. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать • Поделиться своим опытом • Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация: • выборки данных, • предстартовой проверки и 14 Цель
  • 15. 19 Международная конференция по вопросам качества ПО sqadays.com • Научить вас проводить performance-тестирование • Показать как не надо делать • Поделиться своим опытом • Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация: • выборки данных, • предстартовой проверки и • анализа результатов. 15 Цель
  • 16. 19 Международная конференция по вопросам качества ПО sqadays.com • Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация: • выборки данных, • предстартовой проверки и • анализа результатов. 16 Цель А B
  • 17. 19 Международная конференция по вопросам качества ПО sqadays.com • Нагрузочное тестирование – это не (с)только автоматизированные сценарии, но и автоматизация: • выборки данных, • предстартовой проверки и • анализа результатов. 17 Цель А B C
  • 18. 19 Международная конференция по вопросам качества ПО sqadays.com •Все лгут •Тестирование – это данные •Знай и умей свои компоненты 18 План
  • 19. 19 Международная конференция по вопросам качества ПО sqadays.com 19 Все лгут
  • 20. 19 Международная конференция по вопросам качества ПО sqadays.com • Файл с 1,5 миллионами ордеров 20 Тестирование начинается с volumetrix
  • 21. 19 Международная конференция по вопросам качества ПО sqadays.com • Файл с 1,5 миллионами ордеров • Валидация заказчиком пройдена • Тем не менее, ошибка в плане допущена 21 Тестирование начинается с volumetrix
  • 22. 19 Международная конференция по вопросам качества ПО sqadays.com 22 Дело о пропавшей диаграмме ПослеДо App server Oracle Node1 Node3 Node4 Node2
  • 23. 19 Международная конференция по вопросам качества ПО sqadays.com 23 Дело о пропавшей диаграмме ПослеДо App server Oracle Node1 Node3 Node4 Node2
  • 24. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет на тесте работает моментально, а на проде - часы 24 Отчет убить нельзя починить
  • 25. 19 Международная конференция по вопросам качества ПО sqadays.com 25 Отчет убить нельзя починить: Было EVT: CCN: PON: * * TOMS: IMA: *
  • 26. 19 Международная конференция по вопросам качества ПО sqadays.com 26 Отчет убить нельзя починить: Как нужно EVT: CCN: PON: * * TOMS: IMA: ICON: * *
  • 27. 19 Международная конференция по вопросам качества ПО sqadays.com 27 Отчет убить нельзя починить: Стало EVT: CCN: PON: * * TOMS: IMA: ICON: *
  • 28. 19 Международная конференция по вопросам качества ПО sqadays.com 28 Отчет убить нельзя починить: Как нужно EVT: CCN: PON: * * TOMS: IMA: ICON: * *
  • 29. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет на тесте работает моментально, а на проде - часы • Разработчик в хотфиксе не поставил звездочку на поле • Тест продолжал искать без одного критерия и выдавал пустое множество 29 Отчет убить нельзя починить
  • 30. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет на тесте работает моментально, а на проде - часы • Разработчик в хотфиксе не поставил звездочку на поле • Тест продолжал искать без одного критерия и выдавал пустое множество • После восстановления функциональности тест по-прежнему работал быстрее, чем на проде 30 Отчет убить нельзя починить
  • 31. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет на тесте работает моментально, а на проде - часы • Разработчик в хотфиксе не поставил звездочку на поле • Тест продолжал искать без одного критерия и выдавал пустое множество • После восстановления функциональности тест по-прежнему работал быстрее, чем на проде • Но это уже следующая история 31 Отчет убить нельзя починить
  • 32. 19 Международная конференция по вопросам качества ПО sqadays.com 32 Тестирование – это данные
  • 33. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет на тесте работает быстро, а на проде - часы 33 Синтетика данных
  • 34. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет на тесте работает быстро, а на проде - часы • Причина - разные сложности данных • Да, мы делаем автопроверку теперь • Да, мы делаем выборку правильных данных теперь 34 Синтетика данных
  • 35. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет все равно строится дольше, чем ожидается • Причина: синтетические данные лежат в файлах данных последовательно • В реальности они сильно фрагментированы 35 Синтетика данных - копаем дальше
  • 36. 19 Международная конференция по вопросам качества ПО sqadays.com • Отчет все равно строится дольше, чем ожидается • Причина: синтетические данные лежат в файлах данных последовательно • В реальности они сильно фрагментированы • Данные выровняли: • эмулировали “натуральное” их создание • создали индексы правильно • Идеально было бы копировать .dbf-файлы вместо импорта 36 Синтетика данных - копаем дальше
  • 37. 19 Международная конференция по вопросам качества ПО sqadays.com 37 Кривая 90% line
  • 38. 19 Международная конференция по вопросам качества ПО sqadays.com 38 Кривая 90% line
  • 39. 19 Международная конференция по вопросам качества ПО sqadays.com 39 Кривая 90% line
  • 40. 19 Международная конференция по вопросам качества ПО sqadays.com 40 Кривая 90% line
  • 41. 19 Международная конференция по вопросам качества ПО sqadays.com 41 Кривая 90% line Квартет Энскомба: https://goo.gl/wBOLhI
  • 42. 19 Международная конференция по вопросам качества ПО sqadays.com 42 Знай и умей свои компоненты
  • 43. 19 Международная конференция по вопросам качества ПО sqadays.com • Результаты тестов показали таймауты 43 Я твои стабы на перфоманс проверял
  • 44. 19 Международная конференция по вопросам качества ПО sqadays.com • Результаты тестов показали таймауты • Проблема – в стабах 44 Я твои стабы на перфоманс проверял
  • 45. 19 Международная конференция по вопросам качества ПО sqadays.com 45 Я твои стабы на перфоманс проверял
  • 46. 19 Международная конференция по вопросам качества ПО sqadays.com • Результаты тестов показали таймауты • Проблема – в стабах • Решение – это ядро плюс сторонние компоненты 46 Я твои стабы на перфоманс проверял
  • 47. 19 Международная конференция по вопросам качества ПО sqadays.com • Отсутствие данных sar на тестовой системе 47 Дело о пропавшей Саре
  • 48. 19 Международная конференция по вопросам качества ПО sqadays.com • Отсутствие данных sar на тестовой системе 48 Дело о пропавшей Саре
  • 49. 19 Международная конференция по вопросам качества ПО sqadays.com • Отсутствие данных sar на тестовой системе • Причина - переполнение партиции /home • В чеклист и скрипт включили проверку места подо все 49 Дело о пропавшей Саре
  • 50. 19 Международная конференция по вопросам качества ПО sqadays.com • В отчетах снова стали появляться задержки по 30 секунд! • Хьюстон, у нас проблемы! 50 Injector не выдержит двоих
  • 51. 19 Международная конференция по вопросам качества ПО sqadays.com • В отчетах снова стали появляться задержки по 30 секунд! • Хьюстон, у нас проблемы! 51 Injector не выдержит двоих Injector
  • 52. 19 Международная конференция по вопросам качества ПО sqadays.com • Нужна проверка окружения до начала тестов • Нужна проверка данных до и после замера • Нужна проверка результатов после замера • Автоматизация – это не только скрипты тестов 52 Итоги
  • 53. 19 Международная конференция по вопросам качества ПО sqadays.com 53 Extra
  • 54. Введение в Performance Management • В систему будет поступать в среднем 3000 запросов в сутки • Длительность теста - 1 час А. 375 C. 125 B. 3000 D. Неизвестно Сколько запросов должно быть выполнено за 1 час?
  • 55. Введение в Performance Management • В систему будет поступать в среднем 3000 запросов в сутки • Длительность теста - 1 час А. 375 (3000/8) C. 125 (3000/12) B. 3000 D. Неизвестно Сколько запросов должно быть выполнено за 1 час?
  • 56. Простой пример #1 • В систему будет поступать в среднем 3000 запросов в сутки • Длительность теста - 1 час • Сколько запросов должно быть выполнено? Введение в Performance Management
  • 57. 19 Международная конференция по вопросам качества ПО sqadays.com • Что такое конфигурация • Когда используется Compliance • Причины почему недотюнили • Что получилось в итоге 57 Мертвая лошадь Compliance
  • 58. 19 Международная конференция по вопросам качества ПО sqadays.com • Runnable run = new Runnable (){ • public void run () { • synchronized (STATIC_OBJECT) { • вызватьЗапрос(); • } • } • } 58 ThreadPool не параллелится