Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

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

395 visualizaciones

Publicado el

Доклад Виктории Костебеловой на конференции SQA Days-20. 24-26 ноября 2016. Минск
www.sqadays.com

Publicado en: Educación
  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

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

  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 Спасибо за внимание!

×