Software quality assurance days International Conference of Software Quality Assurance sqadays.com Minsk. May 29–30 2015 Коваленко Андрей Lohika. Одесса, Украина Путь к тестированию производительности. Как его пройти от автоматизированных тестов.
Performance testing for Automation QA – why and how? Андрей Коваленко 6 последних лет в ИТ 3 года в разработке и внедрении распределённых защищённых сетей 3 последних года- инженер по анализу и тестированию производительности kovalenko.andrey.odessa О докладчике
Performance testing for Automation QA – why and how? Что такое производительность? Нагрузочное тестирование – оценка поведения приложения/системы под заданной ожидаемой нагрузкой. Стресс-тестирование - определение надёжности системы во время экстремальных или диспропорциональных нагрузок. Тестирование стабильности - Тестирование стабильности проводится с целью убедиться в том, что приложение выдерживает ожидаемую нагрузку в течение длительного времени.
Performance testing for Automation QA – why and how? Зачем нужно тестировать производительность?
Performance testing for Automation QA – why and how? Тестирование производительности VS функциональности Строятся на не-функциональных спецификациях Должно выполняться после мануального тестирования Практически всегда может быть выполнено только с использованием автоматизированных инструментов Отвечает на вопрос «КАК ХОРОШО»? Строятся на функциональных спецификациях Выполняется первым Выполняется мануально Отвечает на вопрос «ЧТО?» Функциональное мануальное Функциональное мануальное Тестирование производительности Тестирование производительности Функциональное автоматизированное Функциональное автоматизированное Строятся на функциональных спецификациях Должно выполняться после мануального тестирования Может быть выполнено только с использованием автоматизированных инструментов Отвечает на вопрос «ЧТО?»
Performance testing for Automation QA – why and how? Жизненный цикл тестирования
Performance testing for Automation QA – why and how? Жизненный цикл тестирования производительности 1. Определение спецификаций 1. Функционал влияющий на производительность – совместно с разработчиками 2. Модули влияющие на производительность – совместно с разработчиками и FA/SA 3. Анализ уровней приложения 2. Приёмочные критерии (KPI производительности): 1. Основные значения TRT – совместно с FA и на основе публичной информации 2. Граничные значения потребления системных ресурсов – из собственного опыта
Performance testing for Automation QA – why and how? Жизненный цикл тестирования производительности 3. Планирование и дизайн: 1. Пользовательский сценарий – совместно с FA 2. 2. Выделение транзакций Выделение транзакций – совместно с FA 3. Написание скриптов 4. 4. Создание тестового окружения Создание тестового окружения , аналогичного клиентскому 5. 5. Создание мониторов системных ресурсов и ресурсов приложения Создание мониторов системных ресурсов и ресурсов приложения
Performance testing for Automation QA – why and how? Жизненный цикл тестирования производительности 4. Выполнение и анализ 1. Выполнение нагрузочного сценария 2. Сбор результатов 3. Анализ результатов, сравнение с KPI 4. 4. Анализ всех доступных логов системы (GC log, DB logs, dumps…) Анализ всех доступных логов системы (GC log, DB logs, dumps…) 5. 5. Профилирование приложения для выявления узких мест системы Профилирование приложения для выявления узких мест системы 6. 6. Создание рекомендаций для настройки приложения и окружения Создание рекомендаций для настройки приложения и окружения 7. Подготовка отчёта
Performance testing for Automation QA – why and how? Автоматизация VS Производительность Многопользовательский сценарий Валидация спецификаций производительности Должен выполняться на окружении максимально схожем с пользовательским Необходимо собирать максимум информации о системе Один пользователь Валидация функциональных спецификаций Может выполняться на любом окружении Нет необходимости в подробном мониторинге поведения системы Автоматизация Автоматизация Производительность Производительность