974fc28c62503870dd11f9e0dddd3275.ppt
- Количество слайдов: 17
Software quality assurance days 20 Международная конференция по вопросам качества ПО sqadays. com Костебелова Виктория Санкт-Петербургский Центр Разработок EMC, Россия Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 1 Минск. 24– 26 ноября 2016
Особенности тестируемой системы • Последовательность: одновременно может обрабатываться только один REST API запрос. • Ресурсоемкость: тестирование выполняется на определенной машине с настроенным окружением, увеличить производительные мощности сложно. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 2
Пути решения Распараллеливание Покупка тестов оборудования Анализ зависимостей между тестами ~3000 $ Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 3
Области применения • Тестирование систем связи • Тестирование мобильного приложения • Тестирование информационных систем управления • Любая система с ограниченными ресурсами, с строго заданной моделью и зависимыми объектами Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 4
Особенности тестового фреймворка Python, UST-test Framework (unittest 2, Py. Test) Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 5
Разработка подхода к оптимизации времени запуска тестов 1. Исключить все Tear. Down тестов. 2. Научить Set. Up тестов переиспользовать ресурсы на системе. 3. Определить оптимальный порядок запуска тестов. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 6
Графовые грамматики Графовой грамматикой называется четверка T, N, P, S , где • T – множество терминальных символов, • N – множество нетерминальных символов, • P – множество правил вида L R, причем L – непустая последовательность терминальных и нетерминальных символов, содержащая хотя бы один нетерминальный символ, R – любая последовательность терминальных и нетерминальных символов, • S N – стартовый (начальный) символ. Адаптивные звездные грамматики – это расширение графовых грамматик, использующееся для описания структуры объектно-ориентированных программ. Правила в данной грамматике на самом деле являются схемами, которые с помощью операции клонирования могут адаптироваться к нескольким контекстам 7 Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 7
Правила для создания, модификации и удаления объектов Создание Удаление Модификация Разработанная грамматика является контекстно-зависимой и содержит 90 правил. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 8
Пример 1. 3. 2. 4. 5. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 9
Тестовая модель • • 30 классов VNXe REST API модели 62 теста для тестирования реальной системы Синтаксический анализатор для разбора тестов Дополнение к фрэймворку UST Полный запуск тестов - 19588. 23 секунд (5 часов 26 минут), а на тестовой модели – менее 1 секунды. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 10
Результаты После выполнения шага 1 и 2 время выполнения всех тестов сократилось на 31, 8% и составило 13353. 45 секунд (3 часа 42 минуты). Проведено 20 000 опытов: Выигрыш после Наилучшее Жадный Вероятностный Среднее время работы тестов, c Алгоритм Наихудшее тестов, c 13545. 80 13877. 60 13711. 70 -192. 35 12633. 99 13998. 23 13353, 15 719. 46 использования алгоритма, c Вероятностный алгоритм дал выигрыш на 719, 46 секунды, что составляет 5. 38%. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 11
Результаты Количество запусков Время, c Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 12
Результаты Где - среднее время всех Test body, - среднее время всех Set. Up , k - коэффициент выигрыша (во сколько раз удалось уменьшить время работы тестового набора), n – количество тестов, g - отношение среднего времени Set. Up к среднему времени Test body. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 13
Советы разработчикам тестов для эффективного внедрения подхода • Необходимо разрабатывать небольшие группы тестов, использующие одни и те же ресурсы системы. • Каждый тест должен покрывать только один use case и выполнять для этого минимальный набор операций на системе. • Подготовка теста должна занимать времени не меньше, чем непосредственное выполнение операций внутри теста. Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 14
Достоинства и недостатки предложенного подхода + Сокращение времени запуска тестового набора из 62 тестов на 35, 58% (1 час 56 минут) ~ 750$ в месяц. + При добавлении новых тестов есть возможность автоматически найти зависимости между тестами и выставить их в оптимильном порядке + Можно применить также для параллельного запуска тестов на системе с ограниченными ресурсами - После введения зависимостей, если не пройдет один тест, могут также не пройти другие тесты -> использовать на этапе регрессионного тестирования, когда продукт стабилен - Грамматические правила индивидуальны для каждой системы/продукта, с добавлением тестов необходимо обновлять правила Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 15
Параллельный запуск тестов Предполагаемое суммарное сокращение времени ~ 80% Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 16
Спасибо за внимание! Оптимизация времени выполнения тестового набора на основе анализа зависимостей между тестами и построением графовых грамматик 17


