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.

Оптимизация времени выполнения тестового набора

285 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 Костебелова Виктория Санкт-Петербургский Центр Разработок EMC, Россия Оптимизация времени выполнения тестового набора 1
  2. 2. Оптимизация времени выполнения тестового набора 2 Особенности тестируемой системы • Одновременно может обрабатываться только один REST API запрос. • Тестирование выполняется на определенной машине с настроенным окружением
  3. 3. Оптимизация времени выполнения тестового набора 3 Пути решения Распараллеливание тестов Анализ зависимостей между тестами Покупка оборудования ~3000 $
  4. 4. Оптимизация времени выполнения тестового набора 4 • Тестирование систем связи • Тестирование мобильного приложения • Тестирование информационных систем управления Области применения Любая система с ограниченными ресурсами, с строго заданной моделью и зависимыми объектами
  5. 5. Оптимизация времени выполнения тестового набора 5 Особенности тестового фреймворка Python, UST-test Framework (unittest2, PyTest)
  6. 6. Оптимизация времени выполнения тестового набора 6 Разработка подхода к оптимизации времени запуска тестов 1. Исключить все TearDown тестов. 2. Научить SetUp тестов переиспользовать ресурсы на системе. 3. Определить оптимальный порядок запуска тестов.
  7. 7. Оптимизация времени выполнения тестового набора 7 Графовые грамматики 7 Графовой грамматикой называется четверка (T, N, P, S ), где •T – множество терминальных символов, •N – множество нетерминальных символов, •P – множество правил вида L → R, причем L – непустая последовательность терминальных и нетерминальных символов, содержащая хотя бы один нетерминальный символ, R – любая последовательность терминальных и нетерминальных символов, •S ∈ N – стартовый (начальный) символ. T = {'0','1','2','3','4','5','6','7','8','9','+','-','*','/','(',')'} N = { ФОРМУЛА, ЗНАК, ЧИСЛО, ЦИФРА } P = { ФОРМУЛА → ФОРМУЛА ЗНАК ФОРМУЛА, ФОРМУЛА → ЧИСЛО ЗНАК → + | - | * | / ЧИСЛО → ЦИФРА ЦИФРА → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9} S = ФОРМУЛА
  8. 8. Оптимизация времени выполнения тестового набора 8 Правила для создания, модификации и удаления объектов В общей сложности 90 правил Создание Модификация Удаление
  9. 9. Оптимизация времени выполнения тестового набора 9 Пример 1. 3. 2. 4. 5.
  10. 10. Оптимизация времени выполнения тестового набора 10 Тестовая модель • 30 классов VNXe REST API модели • 62 теста для тестирования реальной системы • Синтаксический анализатор для разбора тестов • Дополнение к фрэймворку UST Полный запуск тестов - 19588.23 секунд (5 часов 26 минут), а на тестовой модели – менее 1 секунды.
  11. 11. Оптимизация времени выполнения тестового набора 11 Результаты После выполнения шага 1 и 2 время выполнения всех тестов сократилось на 31,8% и составило 13353.45 с. (3 часа 42 минуты). Проведено 20 000 опытов: Алгоритм Наилучшее время работы тестов, c Наихудшее время работы тестов, c Среднее время работы тестов, c Выигрыш после использования алгоритма, c Жадный 13545.80 13877.60 13711.70 -192.35 Вероят- ностный 12633.99 13998.23 13353,15 719.46 Вероятностный алгоритм ускорил время запуска на 719,46 с (5.38%).
  12. 12. Оптимизация времени выполнения тестового набора 12 Результаты Время, c Количество опытов
  13. 13. Оптимизация времени выполнения тестового набора 13 Результаты Где - среднее время всех Test body, - среднее время всех SetUp , k - коэффициент выигрыша (во сколько раз удалось уменьшить время работы тестового набора), n – количество тестов, g - отношение среднего времени SetUp к среднему времени Test body.
  14. 14. Оптимизация времени выполнения тестового набора 14 Советы разработчикам тестов для эффективного внедрения подхода • Небольшие группы тестов, использующие одни и те же ресурсы системы. • 1 тест - 1 use case, минимальный набор операций • Лучше более длительный SetUp (подготовка теста) и быстрый test body (исполнение теста), чем наоборот
  15. 15. Оптимизация времени выполнения тестового набора 15 Достоинства и недостатки предложенного подхода + Время сократилось на 35,58% (1 час 56 минут) + Автоматизация подхода + Можно адаптировать для параллельного запуска тестов - Если не прошел один тест, могут не пройти другие тесты → использовать на этапе регрессионного тестирования - Грамматические правила индивидуальны для каждой системы/продукта
  16. 16. Оптимизация времени выполнения тестового набора 16 Параллельный запуск тестов Для двух потоков ~ 2,7 раза
  17. 17. Оптимизация времени выполнения тестового набора 17 Спасибо за внимание!

×