SlideShare a Scribd company logo
1 of 91
Download to read offline
Часть 1
Общая методология
2/30 1. Общая методология
Цели
3/30 1. Общая методология
Цели
1 Не допустить performance-деградаций
3/30 1. Общая методология
Цели
1 Не допустить performance-деградаций
2 Если допустили, то вовремя об этом узнать
3/30 1. Общая методология
Цели
1 Не допустить performance-деградаций
2 Если допустили, то вовремя об этом узнать
3 Снизить количество ошибок первого рода
(Проблемы нет, а мы думаем, что есть)
3/30 1. Общая методология
Цели
1 Не допустить performance-деградаций
2 Если допустили, то вовремя об этом узнать
3 Снизить количество ошибок первого рода
(Проблемы нет, а мы думаем, что есть)
4 Снизить количество ошибок второго рода
(Проблема есть, а мы думаем, что нет)
3/30 1. Общая методология
Цели
1 Не допустить performance-деградаций
2 Если допустили, то вовремя об этом узнать
3 Снизить количество ошибок первого рода
(Проблемы нет, а мы думаем, что есть)
4 Снизить количество ошибок второго рода
(Проблема есть, а мы думаем, что нет)
5 Автоматизация везде, где можно
3/30 1. Общая методология
Источник для вдохновения
4/30 1. Общая методология
Источник для вдохновения
Rider
• Файлов: 200’000+
• Строчек кода: 20’000’000+
• Тестов: 100’000+
• Рантаймы внутри: JVM, .NET Framework/Mono
• Быстро работает на Windows, Linux, macOS
5/30 1. Общая методология
Источник для вдохновения
Rider
• Файлов: 200’000+
• Строчек кода: 20’000’000+
• Тестов: 100’000+
• Рантаймы внутри: JVM, .NET Framework/Mono
• Быстро работает на Windows, Linux, macOS
Хочется, чтобы Rider продолжал быстро работать...
5/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
• Performance-тесты на GUI
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
• Performance-тесты на GUI
• Нагрузочное тестирование (Яндекс.Танк, JMeter и т.д.)
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
• Performance-тесты на GUI
• Нагрузочное тестирование (Яндекс.Танк, JMeter и т.д.)
• Измерение Latency/Throughput
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
• Performance-тесты на GUI
• Нагрузочное тестирование (Яндекс.Танк, JMeter и т.д.)
• Измерение Latency/Throughput
• Автоматизированный поиск точек отказа (capacity planning)
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
• Performance-тесты на GUI
• Нагрузочное тестирование (Яндекс.Танк, JMeter и т.д.)
• Измерение Latency/Throughput
• Автоматизированный поиск точек отказа (capacity planning)
• Тестирование асимптотики
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
• Performance-тесты на GUI
• Нагрузочное тестирование (Яндекс.Танк, JMeter и т.д.)
• Измерение Latency/Throughput
• Автоматизированный поиск точек отказа (capacity planning)
• Тестирование асимптотики
• ...
6/30 1. Общая методология
Источники performance-данных: крупно
Специальные performance-тесты
• Холодный и горячий старт
• Микробенчмарки
• Performance-тесты на GUI
• Нагрузочное тестирование (Яндекс.Танк, JMeter и т.д.)
• Измерение Latency/Throughput
• Автоматизированный поиск точек отказа (capacity planning)
• Тестирование асимптотики
• ...
Обычные тесты
• Все тесты, которые у вас уже есть (>10ms)
6/30 1. Общая методология
Обычные тесты vs. Специальные тесты
Обычные тесты Специальные тесты
7/30 1. Общая методология
Обычные тесты vs. Специальные тесты
Обычные тесты Специальные тесты
Случайные машины Выделенные машины
7/30 1. Общая методология
Обычные тесты vs. Специальные тесты
Обычные тесты Специальные тесты
Случайные машины Выделенные машины
Виртуальное окружение Реальное железо
7/30 1. Общая методология
Обычные тесты vs. Специальные тесты
Обычные тесты Специальные тесты
Случайные машины Выделенные машины
Виртуальное окружение Реальное железо
Легко писать Сложно писать
7/30 1. Общая методология
Обычные тесты vs. Специальные тесты
Обычные тесты Специальные тесты
Случайные машины Выделенные машины
Виртуальное окружение Реальное железо
Легко писать Сложно писать
Много и бесплатно Мало и дорого
7/30 1. Общая методология
Поучительная история
Однажды, после перехода с Mono 4.9 на Mono 5.2 наши
perf-тесты стали падать . . .
8/30 1. Общая методология
Поучительная история
Однажды, после перехода с Mono 4.9 на Mono 5.2 наши
perf-тесты стали падать . . .
private readonly IList<object> array = new string[0];
[Benchmark]
public int CountProblem() => array.Count;
8/30 1. Общая методология
Поучительная история
Однажды, после перехода с Mono 4.9 на Mono 5.2 наши
perf-тесты стали падать . . .
private readonly IList<object> array = new string[0];
[Benchmark]
public int CountProblem() => array.Count;
Linux macOS
Mono 4.9 ≈5ns ≈5ns
Mono 5.2 ≈1400ns ≈2600ns
8/30 1. Общая методология
Источники performance-данных: мелко
Ветки
• Master-ветка
• Все ветки
• Заданные коммиты
9/30 1. Общая методология
Источники performance-данных: мелко
Ветки
• Master-ветка
• Все ветки
• Заданные коммиты
Метрики
• Время прохождения теста
• Время прохождения отдельных частей теста
• "Железные"данные: CPU, Memory, Disk, Network, . . .
• Характеристики рантайма (например, GC.CollectionCount)
9/30 1. Общая методология
Источники performance-данных: мелко
Ветки
• Master-ветка
• Все ветки
• Заданные коммиты
Метрики
• Время прохождения теста
• Время прохождения отдельных частей теста
• "Железные"данные: CPU, Memory, Disk, Network, . . .
• Характеристики рантайма (например, GC.CollectionCount)
Не забываем про проблему множественных сравнений
9/30 1. Общая методология
Оборона против performance-деградаций
10/30 1. Общая методология
Оборона против performance-деградаций
• Merge robot
Проверяем производительность на каждый мердж
10/30 1. Общая методология
Оборона против performance-деградаций
• Merge robot
Проверяем производительность на каждый мердж
• Daily tests
Запускаем тесты каждый день
10/30 1. Общая методология
Оборона против performance-деградаций
• Merge robot
Проверяем производительность на каждый мердж
• Daily tests
Запускаем тесты каждый день
• Retrospective
Анализируем исторические данные
10/30 1. Общая методология
Оборона против performance-деградаций
• Merge robot
Проверяем производительность на каждый мердж
• Daily tests
Запускаем тесты каждый день
• Retrospective
Анализируем исторические данные
• Check points
Проверяем опасные изменения
10/30 1. Общая методология
Оборона против performance-деградаций
• Merge robot
Проверяем производительность на каждый мердж
• Daily tests
Запускаем тесты каждый день
• Retrospective
Анализируем исторические данные
• Check points
Проверяем опасные изменения
• Pre-release
Проверяем регрессию перед самым релизом
10/30 1. Общая методология
Оборона против performance-деградаций
Обнаружение Точность Процесс
11/30 1. Общая методология
Оборона против performance-деградаций
Обнаружение Точность Процесс
Merge robot Вовремя Средняя Автоматический
11/30 1. Общая методология
Оборона против performance-деградаций
Обнаружение Точность Процесс
Merge robot Вовремя Средняя Автоматический
Daily tests Поздно Хорошая Полуручной
11/30 1. Общая методология
Оборона против performance-деградаций
Обнаружение Точность Процесс
Merge robot Вовремя Средняя Автоматический
Daily tests Поздно Хорошая Полуручной
Retrospective Слишком поздно Отличная Полуручной
11/30 1. Общая методология
Оборона против performance-деградаций
Обнаружение Точность Процесс
Merge robot Вовремя Средняя Автоматический
Daily tests Поздно Хорошая Полуручной
Retrospective Слишком поздно Отличная Полуручной
Check points Вовремя Отличная Ручной
11/30 1. Общая методология
Оборона против performance-деградаций
Обнаружение Точность Процесс
Merge robot Вовремя Средняя Автоматический
Daily tests Поздно Хорошая Полуручной
Retrospective Слишком поздно Отличная Полуручной
Check points Вовремя Отличная Ручной
Pre-release Совсем поздно Отличная Ручной
11/30 1. Общая методология
Оборона против performance-деградаций
Обнаружение Точность Процесс
Merge robot Вовремя Средняя Автоматический
Daily tests Поздно Хорошая Полуручной
Retrospective Слишком поздно Отличная Полуручной
Check points Вовремя Отличная Ручной
Pre-release Совсем поздно Отличная Ручной
И ещё несколько важных факторов:
• Время прогона
• Количество билд-агентов и их стоимость
• Спектр проблем, которые можно обнаружить
11/30 1. Общая методология
Alarm-критерии
12/30 1. Общая методология
Alarm-критерии
Ручной
• Специальный программист, который мониторит тесты 24/7
12/30 1. Общая методология
Alarm-критерии
Ручной
• Специальный программист, который мониторит тесты 24/7
Автоматизированный
12/30 1. Общая методология
Alarm-критерии
Ручной
• Специальный программист, который мониторит тесты 24/7
Автоматизированный
• Абсолютный timeout
12/30 1. Общая методология
Alarm-критерии
Ручной
• Специальный программист, который мониторит тесты 24/7
Автоматизированный
• Абсолютный timeout
• Относительный timeout
12/30 1. Общая методология
Alarm-критерии
Ручной
• Специальный программист, который мониторит тесты 24/7
Автоматизированный
• Абсолютный timeout
• Относительный timeout
• Исторические данные и статистика
12/30 1. Общая методология
Alarm-критерии
Ручной
• Специальный программист, который мониторит тесты 24/7
Автоматизированный
• Абсолютный timeout
• Относительный timeout
• Исторические данные и статистика
Полуавтоматизированный
• Система, которая формирует список performance-аномалий
• Специальный программист, который разбирает этот список
12/30 1. Общая методология
Часть 2
Ищем performance-аномалии
13/30 2. Ищем performance-аномалии
Виды performance-аномалий
14/30 2. Ищем performance-аномалии
Виды performance-аномалий
• Деградация производительности (резкая и постепенная)
14/30 2. Ищем performance-аномалии
Виды performance-аномалий
• Деградация производительности (резкая и постепенная)
• Деградация индивидуальная и групповая
14/30 2. Ищем performance-аномалии
Виды performance-аномалий
• Деградация производительности (резкая и постепенная)
• Деградация индивидуальная и групповая
• Внезапное улучшение производительности
14/30 2. Ищем performance-аномалии
Виды performance-аномалий
• Деградация производительности (резкая и постепенная)
• Деградация индивидуальная и групповая
• Внезапное улучшение производительности
• Разная производительность в зависимости от параметров и окружения
14/30 2. Ищем performance-аномалии
Виды performance-аномалий
• Деградация производительности (резкая и постепенная)
• Деградация индивидуальная и групповая
• Внезапное улучшение производительности
• Разная производительность в зависимости от параметров и окружения
• Большая дисперсия
14/30 2. Ищем performance-аномалии
Виды performance-аномалий
• Деградация производительности (резкая и постепенная)
• Деградация индивидуальная и групповая
• Внезапное улучшение производительности
• Разная производительность в зависимости от параметров и окружения
• Большая дисперсия
• Распределения странной формы (например, мультимодальные)
14/30 2. Ищем performance-аномалии
Виды performance-аномалий
• Деградация производительности (резкая и постепенная)
• Деградация индивидуальная и групповая
• Внезапное улучшение производительности
• Разная производительность в зависимости от параметров и окружения
• Большая дисперсия
• Распределения странной формы (например, мультимодальные)
• . . .
14/30 2. Ищем performance-аномалии
Борьба с performance-аномалиями
Наведение performance-чистоты позволяет:
15/30 2. Ищем performance-аномалии
Борьба с performance-аномалиями
Наведение performance-чистоты позволяет:
• Находить проблемы, на которые не стоят assert’ы
15/30 2. Ищем performance-аномалии
Борьба с performance-аномалиями
Наведение performance-чистоты позволяет:
• Находить проблемы, на которые не стоят assert’ы
• Ускорять билд
15/30 2. Ищем performance-аномалии
Борьба с performance-аномалиями
Наведение performance-чистоты позволяет:
• Находить проблемы, на которые не стоят assert’ы
• Ускорять билд
• Находить flaky-тесты
15/30 2. Ищем performance-аномалии
Борьба с performance-аномалиями
Наведение performance-чистоты позволяет:
• Находить проблемы, на которые не стоят assert’ы
• Ускорять билд
• Находить flaky-тесты
• Уменьшать количество тестов, которые в будущем помешают найти
действительно критичные проблемы
15/30 2. Ищем performance-аномалии
Маленькие деградации
16/30 2. Ищем performance-аномалии
Дисперсия
17/30 2. Ищем performance-аномалии
Анализ параметров
18/30 2. Ищем performance-аномалии
Анализ параметров
19/30 2. Ищем performance-аномалии
Анализ параметров
20/30 2. Ищем performance-аномалии
Мультимодальные распределения
21/30 2. Ищем performance-аномалии
Мультимодальные распределения
22/30 2. Ищем performance-аномалии
Проблемы агентов
23/30 2. Ищем performance-аномалии
Ложные друзья performance-инженера
24/30 2. Ищем performance-аномалии
Ложные друзья performance-инженера
• Изменения в тесте
24/30 2. Ищем performance-аномалии
Ложные друзья performance-инженера
• Изменения в тесте
• Изменения в порядке тестов
24/30 2. Ищем performance-аномалии
Ложные друзья performance-инженера
• Изменения в тесте
• Изменения в порядке тестов
• Изменения в агенте
24/30 2. Ищем performance-аномалии
Ложные друзья performance-инженера
• Изменения в тесте
• Изменения в порядке тестов
• Изменения в агенте
• Изменения в окружающем мире
24/30 2. Ищем performance-аномалии
Ложные друзья performance-инженера
• Изменения в тесте
• Изменения в порядке тестов
• Изменения в агенте
• Изменения в окружающем мире
• Любые изменения хоть в чём, кроме того, что вы
действительно тестируете
24/30 2. Ищем performance-аномалии
Часть 3
Performance Culture
25/30 3. Performance Culture
Performance Culture
Внутри команды должно быть единое понимание следующих
вещей:
• Performance-цели
• Идеальная степень performance-чистоты
• Кто за что ответственен
• Что считать регрессией или проблемой
• Что такое правильный tradeoff
26/30 3. Performance Culture
Performance Driven Development (PDD)
27/30 3. Performance Culture
Performance Driven Development (PDD)
• Пишем performance-тест
27/30 3. Performance Culture
Performance Driven Development (PDD)
• Пишем performance-тест
• Изучаем performance-пространство:
Min, Max, Mean, Median, Q1, Q3, Percentiles,
графики и тренды
27/30 3. Performance Culture
Performance Driven Development (PDD)
• Пишем performance-тест
• Изучаем performance-пространство:
Min, Max, Mean, Median, Q1, Q3, Percentiles,
графики и тренды
• Задаём reference state
27/30 3. Performance Culture
Performance Driven Development (PDD)
• Пишем performance-тест
• Изучаем performance-пространство:
Min, Max, Mean, Median, Q1, Q3, Percentiles,
графики и тренды
• Задаём reference state
• Делаем рефакторинг и оптимизации
27/30 3. Performance Culture
Performance Driven Development (PDD)
• Пишем performance-тест
• Изучаем performance-пространство:
Min, Max, Mean, Median, Q1, Q3, Percentiles,
графики и тренды
• Задаём reference state
• Делаем рефакторинг и оптимизации
• Проверяем performance-показатели
27/30 3. Performance Culture
Часть 4
Заключительные мысли
28/30 4. Заключительные мысли
Мораль
• Performance-тестирование — увлекательно, но сложно
• Набор проблем и решений специфичен для продукта.
Хорошие инструменты не помогут вам, если вы не понимаете
мат.части.
• Куча данных бесплатно валяется под ногами.
Нужно просто уметь их собрать!
29/30 4. Заключительные мысли
Вопросы?
Андрей Акиньшин
http://aakinshin.net
https://github.com/AndreyAkinshin
https://twitter.com/andrey_akinshin
andrey.akinshin@gmail.com
30/30 4. Заключительные мысли

More Related Content

What's hot

Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?OdessaQA
 
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Andrey Akinshin
 
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Yandex
 
Тестовый оракул: что, где, когда
Тестовый оракул: что, где, когдаТестовый оракул: что, где, когда
Тестовый оракул: что, где, когдаMarat Akhin
 
Нагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load RunnerНагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load RunnerSQALab
 
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
 Теория и практика .NET-бенчмаркинга (25.01.2017, Москва) Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)Andrey Akinshin
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительностиvyacheslavmaslov
 
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)SPB SQA Group
 
Регрессионное тестирование
Регрессионное тестированиеРегрессионное тестирование
Регрессионное тестированиеMarat Akhin
 
Случайное тестирование
Случайное тестированиеСлучайное тестирование
Случайное тестированиеMarat Akhin
 
Дебаггинг
ДебаггингДебаггинг
ДебаггингMarat Akhin
 
Грамотная работа с дефект-трекером
Грамотная работа с дефект-трекеромГрамотная работа с дефект-трекером
Грамотная работа с дефект-трекеромAlexey Lyanguzov
 
Тестирование ПО (2016)
Тестирование ПО (2016)Тестирование ПО (2016)
Тестирование ПО (2016)Marat Akhin
 
Оракулы в тестировании
Оракулы в тестированииОракулы в тестировании
Оракулы в тестированииSQALab
 
ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів» Lviv QA Day 2019
ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів»  Lviv QA Day 2019ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів»  Lviv QA Day 2019
ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів» Lviv QA Day 2019GoQA
 
Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?Mykhailo Poliarush
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 

What's hot (20)

Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
 
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
 
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
 
Тестовый оракул: что, где, когда
Тестовый оракул: что, где, когдаТестовый оракул: что, где, когда
Тестовый оракул: что, где, когда
 
Нагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load RunnerНагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load Runner
 
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
 Теория и практика .NET-бенчмаркинга (25.01.2017, Москва) Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
 
Automation testing desktop applications
Automation testing desktop applicationsAutomation testing desktop applications
Automation testing desktop applications
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
 
02-lection-ka
02-lection-ka02-lection-ka
02-lection-ka
 
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
"Опыт создания системы управления сборкой и тестированием" (слайдкаст)
 
Регрессионное тестирование
Регрессионное тестированиеРегрессионное тестирование
Регрессионное тестирование
 
Случайное тестирование
Случайное тестированиеСлучайное тестирование
Случайное тестирование
 
Дебаггинг
ДебаггингДебаггинг
Дебаггинг
 
Грамотная работа с дефект-трекером
Грамотная работа с дефект-трекеромГрамотная работа с дефект-трекером
Грамотная работа с дефект-трекером
 
Тестирование ПО (2016)
Тестирование ПО (2016)Тестирование ПО (2016)
Тестирование ПО (2016)
 
Оракулы в тестировании
Оракулы в тестированииОракулы в тестировании
Оракулы в тестировании
 
ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів» Lviv QA Day 2019
ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів»  Lviv QA Day 2019ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів»  Lviv QA Day 2019
ОЛЕКСАНДР ЄПІШЕВ «Мутаційне тестування: тести для тестів» Lviv QA Day 2019
 
Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 

Similar to Сложности performance-тестирования

Анализ конкурентов с помощью юзабилити-тестирования
Анализ конкурентов с помощью юзабилити-тестированияАнализ конкурентов с помощью юзабилити-тестирования
Анализ конкурентов с помощью юзабилити-тестированияYuri Vedenin
 
Victor Kuliamin.CSEDays
Victor Kuliamin.CSEDaysVictor Kuliamin.CSEDays
Victor Kuliamin.CSEDaysLiloSEA
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...QA Club Minsk
 
тестирование
тестированиетестирование
тестированиеYandex
 
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения Iosif Itkin
 
Марина Широчкина: Тестирование
Марина Широчкина: ТестированиеМарина Широчкина: Тестирование
Марина Широчкина: ТестированиеYandex
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестированияIgor Pozumentov
 
Илья Фомин - Проблемы автоматизируемости тестирования и их решения
Илья Фомин - Проблемы автоматизируемости тестирования и их решенияИлья Фомин - Проблемы автоматизируемости тестирования и их решения
Илья Фомин - Проблемы автоматизируемости тестирования и их решенияSQALab
 
Дмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестированияДмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестированияYandex
 
Автоматизация тестирования на крупных проектах
Автоматизация тестирования на крупных проектахАвтоматизация тестирования на крупных проектах
Автоматизация тестирования на крупных проектахIgor Khrol
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...SQALab
 
Обзор методов юзабилити-тестирования
Обзор методов юзабилити-тестированияОбзор методов юзабилити-тестирования
Обзор методов юзабилити-тестированияSQALab
 
Надежный тест-дизайн
Надежный тест-дизайнНадежный тест-дизайн
Надежный тест-дизайнSQALab
 
Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Yandex
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья ПастушковDevDay
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты7bits
 
ACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleSQALab
 
Test plan Толстова Ольга
Test plan Толстова ОльгаTest plan Толстова Ольга
Test plan Толстова ОльгаSmart-on-line
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
 

Similar to Сложности performance-тестирования (20)

Анализ конкурентов с помощью юзабилити-тестирования
Анализ конкурентов с помощью юзабилити-тестированияАнализ конкурентов с помощью юзабилити-тестирования
Анализ конкурентов с помощью юзабилити-тестирования
 
Victor Kuliamin.CSEDays
Victor Kuliamin.CSEDaysVictor Kuliamin.CSEDays
Victor Kuliamin.CSEDays
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
 
тестирование
тестированиетестирование
тестирование
 
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
 
Марина Широчкина: Тестирование
Марина Широчкина: ТестированиеМарина Широчкина: Тестирование
Марина Широчкина: Тестирование
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
 
Илья Фомин - Проблемы автоматизируемости тестирования и их решения
Илья Фомин - Проблемы автоматизируемости тестирования и их решенияИлья Фомин - Проблемы автоматизируемости тестирования и их решения
Илья Фомин - Проблемы автоматизируемости тестирования и их решения
 
Дмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестированияДмитрий Исаев - Теория тестирования
Дмитрий Исаев - Теория тестирования
 
Автоматизация тестирования на крупных проектах
Автоматизация тестирования на крупных проектахАвтоматизация тестирования на крупных проектах
Автоматизация тестирования на крупных проектах
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
 
Обзор методов юзабилити-тестирования
Обзор методов юзабилити-тестированияОбзор методов юзабилити-тестирования
Обзор методов юзабилити-тестирования
 
Надежный тест-дизайн
Надежный тест-дизайнНадежный тест-дизайн
Надежный тест-дизайн
 
Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
 
ACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом Google
 
Test plan Толстова Ольга
Test plan Толстова ОльгаTest plan Толстова Ольга
Test plan Толстова Ольга
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 

More from Andrey Akinshin

Сложности микробенчмаркинга
Сложности микробенчмаркингаСложности микробенчмаркинга
Сложности микробенчмаркингаAndrey Akinshin
 
Поговорим про память
Поговорим про памятьПоговорим про память
Поговорим про памятьAndrey Akinshin
 
Кроссплатформенный .NET и как там дела с Mono и CoreCLR
Кроссплатформенный .NET и как там дела с Mono и CoreCLRКроссплатформенный .NET и как там дела с Mono и CoreCLR
Кроссплатформенный .NET и как там дела с Mono и CoreCLRAndrey Akinshin
 
Продолжаем говорить про арифметику
Продолжаем говорить про арифметикуПродолжаем говорить про арифметику
Продолжаем говорить про арифметикуAndrey Akinshin
 
Let’s talk about microbenchmarking
Let’s talk about microbenchmarkingLet’s talk about microbenchmarking
Let’s talk about microbenchmarkingAndrey Akinshin
 
Поговорим про арифметику
Поговорим про арифметикуПоговорим про арифметику
Поговорим про арифметикуAndrey Akinshin
 
Подружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project RiderПодружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project RiderAndrey Akinshin
 
Что нам готовит грядущий C#7?
Что нам готовит грядущий C#7?Что нам готовит грядущий C#7?
Что нам готовит грядущий C#7?Andrey Akinshin
 
.NET 2015: Будущее рядом
.NET 2015: Будущее рядом.NET 2015: Будущее рядом
.NET 2015: Будущее рядомAndrey Akinshin
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийAndrey Akinshin
 
Распространённые ошибки оценки производительности .NET-приложений
Распространённые ошибки оценки производительности .NET-приложенийРаспространённые ошибки оценки производительности .NET-приложений
Распространённые ошибки оценки производительности .NET-приложенийAndrey Akinshin
 
Поговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложенийПоговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложенийAndrey Akinshin
 
Практические приёмы оптимизации .NET-приложений
Практические приёмы оптимизации .NET-приложенийПрактические приёмы оптимизации .NET-приложений
Практические приёмы оптимизации .NET-приложенийAndrey Akinshin
 
Поговорим о различных версиях .NET
Поговорим о различных версиях .NETПоговорим о различных версиях .NET
Поговорим о различных версиях .NETAndrey Akinshin
 
Низкоуровневые оптимизации .NET-приложений
Низкоуровневые оптимизации .NET-приложенийНизкоуровневые оптимизации .NET-приложений
Низкоуровневые оптимизации .NET-приложенийAndrey Akinshin
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с GitAndrey Akinshin
 
Сборка мусора в .NET
Сборка мусора в .NETСборка мусора в .NET
Сборка мусора в .NETAndrey Akinshin
 
Об особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NETОб особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NETAndrey Akinshin
 

More from Andrey Akinshin (19)

Сложности микробенчмаркинга
Сложности микробенчмаркингаСложности микробенчмаркинга
Сложности микробенчмаркинга
 
Поговорим про память
Поговорим про памятьПоговорим про память
Поговорим про память
 
Кроссплатформенный .NET и как там дела с Mono и CoreCLR
Кроссплатформенный .NET и как там дела с Mono и CoreCLRКроссплатформенный .NET и как там дела с Mono и CoreCLR
Кроссплатформенный .NET и как там дела с Mono и CoreCLR
 
Продолжаем говорить про арифметику
Продолжаем говорить про арифметикуПродолжаем говорить про арифметику
Продолжаем говорить про арифметику
 
Let’s talk about microbenchmarking
Let’s talk about microbenchmarkingLet’s talk about microbenchmarking
Let’s talk about microbenchmarking
 
Поговорим про арифметику
Поговорим про арифметикуПоговорим про арифметику
Поговорим про арифметику
 
Подружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project RiderПодружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project Rider
 
Что нам готовит грядущий C#7?
Что нам готовит грядущий C#7?Что нам готовит грядущий C#7?
Что нам готовит грядущий C#7?
 
.NET 2015: Будущее рядом
.NET 2015: Будущее рядом.NET 2015: Будущее рядом
.NET 2015: Будущее рядом
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложений
 
Распространённые ошибки оценки производительности .NET-приложений
Распространённые ошибки оценки производительности .NET-приложенийРаспространённые ошибки оценки производительности .NET-приложений
Распространённые ошибки оценки производительности .NET-приложений
 
Поговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложенийПоговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложений
 
Практические приёмы оптимизации .NET-приложений
Практические приёмы оптимизации .NET-приложенийПрактические приёмы оптимизации .NET-приложений
Практические приёмы оптимизации .NET-приложений
 
Поговорим о различных версиях .NET
Поговорим о различных версиях .NETПоговорим о различных версиях .NET
Поговорим о различных версиях .NET
 
Низкоуровневые оптимизации .NET-приложений
Низкоуровневые оптимизации .NET-приложенийНизкоуровневые оптимизации .NET-приложений
Низкоуровневые оптимизации .NET-приложений
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с Git
 
Сборка мусора в .NET
Сборка мусора в .NETСборка мусора в .NET
Сборка мусора в .NET
 
Об особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NETОб особенностях использования значимых типов в .NET
Об особенностях использования значимых типов в .NET
 
Phd presentation
Phd presentationPhd presentation
Phd presentation
 

Сложности performance-тестирования