Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

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

707 vues

Publié le

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

Publié dans : Formation
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Интеллектуальная система автоматизации тестирования на базе 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.ИтогиСоставляющиеэффективной тестовойсистемыБиблиотека знанийГибкоеконфигурирование

×