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.

Интеллектуальная система автоматизации тестирования на базе Groovy

707 views

Published on

Доклад Андрея Пахомова и Сергея Аксененко, SQA Days-13, 26-27 апреля 2013, www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

Интеллектуальная система автоматизации тестирования на базе Groovy

  1. 1. 1© Copyright 2013 EMC Corporation. All rights reserved.Интеллектуальная системаавтоматизации тестированияна базе GroovyАксененко СергейПахомов АндрейСанкт-Петербургский центр разработок ЕМС
  2. 2. 2© Copyright 2013 EMC Corporation. All rights reserved.О чем мы будем говорить:Зачем «изобретать велосипед»Как спроектировать систему тестированияИ как ее реализоватьИ о чем не будем:Универсальные решения на все случаижизниПроцессы тестированияКак мы все здорово протестировали
  3. 3. 3© Copyright 2013 EMC Corporation. All rights reserved.Зачем «изобретать велосипед»
  4. 4. 4© Copyright 2013 EMC Corporation. All rights reserved.Тестируемые продуктыVMAX
  5. 5. 5© Copyright 2013 EMC Corporation. All rights reserved.Тестовый стендApplicationData Center A Data Center BData Center CTestengine
  6. 6. 6© Copyright 2013 EMC Corporation. All rights reserved.Элементы идеальной тестовойсистемыСтруктура• Иерархия• ПараметризацияСценарии• Простота и гибкость• УниверсальностьСтруктура• Иерархия• ПараметризацияСценарии • Простота и гибкость• УниверсальностьМодель• Уровень абстракции• АдаптерыКонфигурация
  7. 7. 7© Copyright 2013 EMC Corporation. All rights reserved.Структура сценариевСтруктураСценарииМодельКонфигурация• Иерархия• Параметризация• Простота и гибкость• Универсальность• Уровень абстракции• Адаптеры
  8. 8. 8© Copyright 2013 EMC Corporation. All rights reserved.Структура блоков скриптовогосценарияSuiteScenarioTest CaseTest StepVerificationAction
  9. 9. 9© Copyright 2013 EMC Corporation. All rights reserved.Проектирования языка сценариевСтруктураСценарииМодельКонфигурация• Иерархия• Параметризация• Простота и гибкость• Универсальность• Уровень абстракции• Адаптеры
  10. 10. 10© Copyright 2013 EMC Corporation. All rights reserved.Предметно-ориентированныйязык (DSL)+ Разделение логикисценариев и среды дляих запуска+ Создание и изменениесценариев силами QA- Дополнительнаязатрата ресурсов наразработку скриптовогоязыка
  11. 11. 11© Copyright 2013 EMC Corporation. All rights reserved.Groovy как основа для созданияDSLИнтерпретация вместо компиляцииПолная интеграция с JAVAВозможность перегрузки стандартныхконструкций языкаЛаконичностьПоддержка со стороны основных IDE
  12. 12. 12© Copyright 2013 EMC Corporation. All rights reserved.Предметно-ориентированный языкКомпоненты предметно-ориентированного языкаgroovy.lang.ScriptBaseSriptScript EngineFiltersBlocksVerifications• Бесконтекстные операции• Операторы• Структура блоков
  13. 13. 13© Copyright 2013 EMC Corporation. All rights reserved.DSL как средство агрегациизнанийЗнанияDSLModelGroovyБиблиотеказнаний
  14. 14. 14© Copyright 2013 EMC Corporation. All rights reserved.Концепция фильтровДекларативно описывает свойства объектаВо время прогона теста выделяетколлекцию объектов моделиВозможность комбинировать вместенесколько фильтров
  15. 15. 15© Copyright 2013 EMC Corporation. All rights reserved.Операции над множествами+*-Доменная областьПримеры кода:• Figure.RED * Figure.Star• ((Figure.CIRCLE+ Figure.TRIANGLE)* Figure.GREEN)
  16. 16. 16© Copyright 2013 EMC Corporation. All rights reserved.expected events in 1.min {every Host.PRODUCTION => Event.10203}Логика проверокExpectedТемпоральныйоператорВремя Квантор ФильтрСобытие/состояние
  17. 17. 17© Copyright 2013 EMC Corporation. All rights reserved.Проверки (expected блок)Темпоральные операторы– States (n1, n2 => s1 , Δt)– Events (n1, n2=>e1 || e2 , Δt)– Stability (n1,n2 => s1, Δt)n1 s0 s1n2 s2 s1n1n2SatisfiedSatisfiedn1 e1n2 e2Satisfied
  18. 18. 18© Copyright 2013 EMC Corporation. All rights reserved.Модель тестового стендаСтруктураСценарииМодельКонфигурация• Иерархия• Параметризация• Простота и гибкость• Универсальность• Уровень абстракции• Адаптеры
  19. 19. 19© Copyright 2013 EMC Corporation. All rights reserved.Примерh1 h2 h3 h4 h5SW1 SW2TestenginePRODUCTION REPLICAЗаписьЧтениеРепликация
  20. 20. 20© Copyright 2013 EMC Corporation. All rights reserved.Пример скриптаscenario("WriteAndCheck") {Timeout writeTime = userVariable("writeTime", Timeout)Host.PRODUCTION.startWrites() //h1,h2,h3 start writingwriteTime.sleep()testStep(“switchDisaster”) {Switch.byHost(Host.PRODUCTION).disableLink() //SW1expected events in 15.seconds {Storage.PRODUCTION => Event.REPLICATION_FAILED}}
  21. 21. 21© Copyright 2013 EMC Corporation. All rights reserved.Пример скрипта (продолжение)testStep(“Disaster recovery”) {Switch.byHost(Host.PRODUCTION).enableLink()expected events in 1.min {Storage.PRODUCTION => Event.REPLICATION_RESTORED}expected states in 10.min {Storage.REPLICA => SyncState.SYNCHRONIZED}}Host.PRODUCTION.stopWrites()(Host.PRODUCTION + Host.REPLICA).checkConsistency()}
  22. 22. 22© Copyright 2013 EMC Corporation. All rights reserved.Конфигурация системыСтруктураСценарииМодельКонфигурация• Иерархия• Параметризация• Простота и гибкость• Универсальность• Уровень абстракции• Адаптеры
  23. 23. 23© Copyright 2013 EMC Corporation. All rights reserved.КонфигурацияКонфигурационный файл:Минимальный набор данныхоб оборудованииПодключение к API CХД иимпорт данных обокруженииПостроение топологии FCсети
  24. 24. 24© Copyright 2013 EMC Corporation. All rights reserved.Что дальше...ITE (Integrated TestingEnvironment)Непрерывная интеграцияВиртуальная/облачнаятестовая среда
  25. 25. 25© Copyright 2013 EMC Corporation. All rights reserved.ИтогиСоставляющиеэффективной тестовойсистемыБиблиотека знанийГибкоеконфигурирование

×