SlideShare a Scribd company logo
1 of 38
Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Дмитрий Химион
Avito. Москва, Россия
Ядро автоматизации тестирования
под µ-сервисную архитектуру
Ядро автоматизации тестирования под микро-сервисную архитектуру
Дмитрий Химион
Head of quality assurance
Avito
Докладчик на конференциях:
62 проектов по автоматизации тестирования
+9 прототипов инструментов АТ
• SQA Days 13
• ITSM Forum
• SQA Days 14
• SQA Days 15
• SQA Days 16
• CodeFest 2015
• SQA Days 17
• Quality days
• SQA Days 18
• CodeFest 2016
• SQA Days 19
• QA FEST 2016
• SQA Days 20
Введение
"an implementation should be
conservative in its sending
behavior, and liberal in its
receiving behavior"
Ядро автоматизации тестирования под микро-сервисную архитектуру
Jon Postel
Введение
"an implementation should be
conservative in its sending
behavior, and liberal in its
receiving behavior"
Ядро автоматизации тестирования под микро-сервисную архитектуру
+ µServices =Avito
Jon Postel
• Что такое µ-сервисная архитектура
• Контракты для µ-сервисной архитектуры
• Предикаты для CDC-testing
• Имплементация автоматизации под CDC
• Учесть при разработке
• Итоги
• Вопросы
Ядро автоматизации тестирования под микро-сервисную архитектуру
План доклада
Ядро автоматизации тестирования под микро-сервисную архитектуру
Что такое µ-сервисная архитектура?
External
Service
Front-end
• Небольшая функция
• ≈ 500 LoC
Ядро автоматизации тестирования под микро-сервисную архитектуру
Переход к µ-сервисам
Back-endFront-end
External
Service
Monolithic
Ядро автоматизации тестирования под микро-сервисную архитектуру
Back-end
µS4
µS2µS1
µS3
µS9
µS5µS6
µS8
µS10
µS7
Переход к µ-сервисам
Ядро автоматизации тестирования под микро-сервисную архитектуру
µS4
µS2µS1 µS3
µS9
µS5 µS6
µS8 µS10µS7
Front-
end DB2
DB1
External
Service
Переход к µ-сервисам
Ядро автоматизации тестирования под микро-сервисную архитектуру
µS4
µS2µS1 µS3
µS9
µS5 µS6
µS8µS7
Front-
end DB2
DB1
External
Service
Переход к µ-сервисам
µS10
Ядро автоматизации тестирования под микро-сервисную архитектуру
µS4
µS2µS1 µS3
µS9
µS5 µS6
µS8µS7
Front-
end DB2
DB1
External
Service
Переход к µ-сервисам
µS10
Ядро автоматизации тестирования под микро-сервисную архитектуру
Контракты для µ-сервисной архитектуры
ServiceY
«Classic» Contracts
Ядро автоматизации тестирования под микро-сервисную архитектуру
Контракты для µ-сервисной архитектуры
µS10
ServiceY
«Classic» Contracts Consumer Driven Contracts
Consumer
Consumer
Consumer
Provider
Ядро автоматизации тестирования под микро-сервисную архитектуру
Контракты для µ-сервисной архитектуры
µS10
Consumer Driven Contracts
CDC
Ядро автоматизации тестирования под микро-сервисную архитектуру
Контракты для µ-сервисной архитектуры
µS10
Consumer Driven Contracts
CDC
CDC-testing
(для команды тестирования)
Ядро автоматизации тестирования под микро-сервисную архитектуру
Предикаты для CDC-testing
1. Наличие контрактов в
разработке
2. Договорённость работать по
CDC
Ядро автоматизации тестирования под микро-сервисную архитектуру
Предикаты для CDC-testing
Repository
push
Post-hook
auto-test
Jira task
1.
2.
?
1. Наличие контрактов в
разработке
2. Договорённость работать по
CDC
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Test Automation
PACT framework
µS6
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Test Automation
PACT framework
µS6
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Test Automation
PACT framework
µS6
Test_1
Test…
Test_X
External service
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Test Automation
Logger
PACT framework
µS6
Test_1
Test…
Test_X
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
PACT framework
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Logger
PACT framework
UP TO YOU
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Test Automation
Logger
PACT framework
Config
reader
µS6
Test_1
Test…
Test_X
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Test Automation
Logger
PACT framework
Config
reader
µS6
State
:request
:response
Pact files
Test_1
Test…
Test_X
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
:request
:response
Pact files
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
:request
:response
Pact files
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
State
:request
:response
Pact files
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Test Automation
Logger
PACT framework
Suite
runner
Config
reader
µS6
trigger
Test_1
Test…
Test_X
State
:request
:response
Pact files
event
Ядро автоматизации тестирования под микро-сервисную архитектуру
µS4
µS2µS1 µS3
µS9
µS5 µS6
µS8µS7
Front-
end DB2
DB1
External
Service
Перехода к µ-сервисам
µS10
Ядро автоматизации тестирования под микро-сервисную архитектуру
Имплементация автоматизации под CDC
Mocks/Stubs
Test Automation
PACT framework
µS6
µS8
µS10
µSX
µSY
Pact files
state
Ядро автоматизации тестирования под микро-сервисную архитектуру
Учесть при имплементации
• Контейнеры для изоляции тестирования
• Актуализация «Pact file» требований по контрактам
• Ввести процесс актуализации «States» и «Data Suites»
Ядро автоматизации тестирования под микро-сервисную архитектуру
Учесть при имплементации
• Контейнеры для изоляции тестирования
• Актуализация «Pact file» - требований по контрактам
• Ввести процесс актуализации «States» и «Data Suites»
Ядро автоматизации тестирования под микро-сервисную архитектуру
Учесть при имплементации
• Контейнеры для изоляции тестирования
• Актуализация «Pact file» требований по контрактам
• Ввести процесс актуализацию «States» и «Data Suites»
Pact files
Test Automation
Logger
PACT framework
Suite
runner
Config
reader
Data Suites = Data Driven Testing
•Positive
•Boundary
•Negative
Ядро автоматизации тестирования под микро-сервисную архитектуру
Учесть при имплементации
• Контейнеры для изоляции тестирования
• Актуализация «Pact file» требований по контрактам
• Ввести процесс актуализации «States» и «Data Suites»
Pact files
State
Test Automation
Logger
PACT framework
Suite
runner
Config
reader
State = • Precondition
• SetUp
• Fixture
Ядро автоматизации тестирования под микро-сервисную архитектуру
Итоги
• Post-hooks – часть решения
• CDC pattern в разработке – это необходимость
• Снижение склонности системы к появлению дефектов
• Возможность уйти от ручного тестирования изменений
Вопросы?
Picasso-key
dmitry.khimion@gmail.com
dmitry.khimion
Ядро автоматизации тестирования под микро-сервисную архитектуру
uestions
nswers
Ядро автоматизации тестирования под микро-сервисную архитектуру
The benefits to this approach are that you know who all the consumers of your
service are, you’ll know when you make breaking changes so it is easier to make
changes and the contract is also a form of documentation. Secondly, you’ll know
exactly what functionality needs to be provided so you can implement the right
services needed by your consumers and can follow the YAGNI principle
Ruby Pact: https://github.com/realestate-com-au/pact
JVM Pact: https://github.com/DiUS/pact-jvm
.Net Pact: https://github.com/SEEK-Jobs/pact-net
Pact Go: https://github.com/pact-foundation/pact-go
Pact.js: https://github.com/pact-foundation/pact-js
Pact Swift: https://github.com/DiUS/pact-consumer-swift
Pact Python: https://github.com/pact-foundation/pact-python

More Related Content

What's hot

Kubernetes
KubernetesKubernetes
KubernetesSQALab
 
Использование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовИспользование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовSQALab
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикSQALab
 
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...SQALab
 
Тестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиТестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиSQALab
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demandSQALab
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
Let's Talk About Junit 5
Let's Talk About Junit 5Let's Talk About Junit 5
Let's Talk About Junit 5SQALab
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...SQALab
 
Внедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеВнедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеSQALab
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
Как это будет: ASP.NET Core
Как это будет: ASP.NET CoreКак это будет: ASP.NET Core
Как это будет: ASP.NET CoreDotNetConf
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandexaviatakz
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 
Continuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxContinuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxDotNetConf
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковSQALab
 
Инфраструктура в Java-проекте
Инфраструктура в Java-проектеИнфраструктура в Java-проекте
Инфраструктура в Java-проектеExpress 42
 
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)aviatakz
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 

What's hot (20)

Kubernetes
KubernetesKubernetes
Kubernetes
 
Использование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовИспользование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестов
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
 
Тестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиТестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностями
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demand
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Let's Talk About Junit 5
Let's Talk About Junit 5Let's Talk About Junit 5
Let's Talk About Junit 5
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
 
Внедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеВнедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной Шине
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Как это будет: ASP.NET Core
Как это будет: ASP.NET CoreКак это будет: ASP.NET Core
Как это будет: ASP.NET Core
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Continuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под LinuxContinuous Delivery для ASP.NET MVC проекта под Linux
Continuous Delivery для ASP.NET MVC проекта под Linux
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиков
 
Инфраструктура в Java-проекте
Инфраструктура в Java-проектеИнфраструктура в Java-проекте
Инфраструктура в Java-проекте
 
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 

Viewers also liked

Testing is magic!
Testing is magic!Testing is magic!
Testing is magic!SQALab
 
Соль мобильного тестирования
Соль мобильного тестированияСоль мобильного тестирования
Соль мобильного тестированияSQALab
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийSQALab
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияSQALab
 
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOSСупер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOSSQALab
 
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...SQALab
 
Скандалы, расследования, тестирование
Скандалы, расследования, тестированиеСкандалы, расследования, тестирование
Скандалы, расследования, тестированиеSQALab
 
50 оттенков тестирования
50 оттенков тестирования50 оттенков тестирования
50 оттенков тестированияSQALab
 

Viewers also liked (8)

Testing is magic!
Testing is magic!Testing is magic!
Testing is magic!
 
Соль мобильного тестирования
Соль мобильного тестированияСоль мобильного тестирования
Соль мобильного тестирования
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложений
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOSСупер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
 
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
Как мы добавляли UX-исследования в мобильные приложения Aviasales и что из эт...
 
Скандалы, расследования, тестирование
Скандалы, расследования, тестированиеСкандалы, расследования, тестирование
Скандалы, расследования, тестирование
 
50 оттенков тестирования
50 оттенков тестирования50 оттенков тестирования
50 оттенков тестирования
 

Similar to Ядро автоматизации под микро-сервисную архитектуру

Демонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОДДемонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОДCisco Russia
 
Обзор решения по управлению унифицированными коммуникациями Cisco
Обзор решения по управлению унифицированными коммуникациями CiscoОбзор решения по управлению унифицированными коммуникациями Cisco
Обзор решения по управлению унифицированными коммуникациями CiscoCisco Russia
 
Использование технологий виртуализации Vmware
Использование технологий виртуализации VmwareИспользование технологий виртуализации Vmware
Использование технологий виртуализации VmwareКРОК
 
Единый центр технической поддержки
Единый центр технической поддержкиЕдиный центр технической поддержки
Единый центр технической поддержкиIT Frio Development Group
 
Web application testing architecture
Web application testing architectureWeb application testing architecture
Web application testing architectureAndrey Lazarev
 
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...De Novo
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Cisco Russia
 
Триада - решения АСУ ТП для нефтегаза
Триада - решения АСУ ТП для нефтегазаТриада - решения АСУ ТП для нефтегаза
Триада - решения АСУ ТП для нефтегазаAPPAU_Ukraine
 
VMDC: Архитектура для ITaaS
VMDC: Архитектура для ITaaSVMDC: Архитектура для ITaaS
VMDC: Архитектура для ITaaSCisco Russia
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATCodeFest
 
Практическое использование фабрики ACI
Практическое использование фабрики ACIПрактическое использование фабрики ACI
Практическое использование фабрики ACICisco Russia
 
Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...
Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...
Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...Cisco Russia
 
Инфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформыИнфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформыCisco Russia
 
Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик Cisco Russia
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложенийJack Chikovany
 
Qulix Systems | Автоматизация функционального тестирования
Qulix Systems | Автоматизация функционального тестированияQulix Systems | Автоматизация функционального тестирования
Qulix Systems | Автоматизация функционального тестированияQulix Systems
 

Similar to Ядро автоматизации под микро-сервисную архитектуру (20)

Демонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОДДемонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОД
 
Обзор решения по управлению унифицированными коммуникациями Cisco
Обзор решения по управлению унифицированными коммуникациями CiscoОбзор решения по управлению унифицированными коммуникациями Cisco
Обзор решения по управлению унифицированными коммуникациями Cisco
 
Использование технологий виртуализации Vmware
Использование технологий виртуализации VmwareИспользование технологий виртуализации Vmware
Использование технологий виртуализации Vmware
 
Единый центр технической поддержки
Единый центр технической поддержкиЕдиный центр технической поддержки
Единый центр технической поддержки
 
Web application testing architecture
Web application testing architectureWeb application testing architecture
Web application testing architecture
 
MS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектураMS TFS 2010 - Обзор и архитектура
MS TFS 2010 - Обзор и архитектура
 
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
Виктор Подкорытов, Cisco: "EnterpriseCloudSuite: задачи и примеры использован...
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
 
Триада - решения АСУ ТП для нефтегаза
Триада - решения АСУ ТП для нефтегазаТриада - решения АСУ ТП для нефтегаза
Триада - решения АСУ ТП для нефтегаза
 
VMDC: Архитектура для ITaaS
VMDC: Архитектура для ITaaSVMDC: Архитектура для ITaaS
VMDC: Архитектура для ITaaS
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&AT
 
Практическое использование фабрики ACI
Практическое использование фабрики ACIПрактическое использование фабрики ACI
Практическое использование фабрики ACI
 
Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...
Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...
Использование Cisco Prime Infrastructure для мониторинга, управления и оптими...
 
Инфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформыИнфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформы
 
Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик Cisco Cloud Center - управление приложениями в облаках при помощи политик
Cisco Cloud Center - управление приложениями в облаках при помощи политик
 
Описание и архитектура TFS 2008
Описание и архитектура TFS 2008Описание и архитектура TFS 2008
Описание и архитектура TFS 2008
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
 
Qulix Systems | Автоматизация функционального тестирования
Qulix Systems | Автоматизация функционального тестированияQulix Systems | Автоматизация функционального тестирования
Qulix Systems | Автоматизация функционального тестирования
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Ядро автоматизации под микро-сервисную архитектуру

  • 1. Software quality assurance days 21 Международная конференция по вопросам качества ПО sqadays.com Москва. 26–27 мая 2017 Дмитрий Химион Avito. Москва, Россия Ядро автоматизации тестирования под µ-сервисную архитектуру
  • 2. Ядро автоматизации тестирования под микро-сервисную архитектуру Дмитрий Химион Head of quality assurance Avito Докладчик на конференциях: 62 проектов по автоматизации тестирования +9 прототипов инструментов АТ • SQA Days 13 • ITSM Forum • SQA Days 14 • SQA Days 15 • SQA Days 16 • CodeFest 2015 • SQA Days 17 • Quality days • SQA Days 18 • CodeFest 2016 • SQA Days 19 • QA FEST 2016 • SQA Days 20
  • 3. Введение "an implementation should be conservative in its sending behavior, and liberal in its receiving behavior" Ядро автоматизации тестирования под микро-сервисную архитектуру Jon Postel
  • 4. Введение "an implementation should be conservative in its sending behavior, and liberal in its receiving behavior" Ядро автоматизации тестирования под микро-сервисную архитектуру + µServices =Avito Jon Postel
  • 5. • Что такое µ-сервисная архитектура • Контракты для µ-сервисной архитектуры • Предикаты для CDC-testing • Имплементация автоматизации под CDC • Учесть при разработке • Итоги • Вопросы Ядро автоматизации тестирования под микро-сервисную архитектуру План доклада
  • 6. Ядро автоматизации тестирования под микро-сервисную архитектуру Что такое µ-сервисная архитектура? External Service Front-end • Небольшая функция • ≈ 500 LoC
  • 7. Ядро автоматизации тестирования под микро-сервисную архитектуру Переход к µ-сервисам Back-endFront-end External Service Monolithic
  • 8. Ядро автоматизации тестирования под микро-сервисную архитектуру Back-end µS4 µS2µS1 µS3 µS9 µS5µS6 µS8 µS10 µS7 Переход к µ-сервисам
  • 9. Ядро автоматизации тестирования под микро-сервисную архитектуру µS4 µS2µS1 µS3 µS9 µS5 µS6 µS8 µS10µS7 Front- end DB2 DB1 External Service Переход к µ-сервисам
  • 10. Ядро автоматизации тестирования под микро-сервисную архитектуру µS4 µS2µS1 µS3 µS9 µS5 µS6 µS8µS7 Front- end DB2 DB1 External Service Переход к µ-сервисам µS10
  • 11. Ядро автоматизации тестирования под микро-сервисную архитектуру µS4 µS2µS1 µS3 µS9 µS5 µS6 µS8µS7 Front- end DB2 DB1 External Service Переход к µ-сервисам µS10
  • 12. Ядро автоматизации тестирования под микро-сервисную архитектуру Контракты для µ-сервисной архитектуры ServiceY «Classic» Contracts
  • 13. Ядро автоматизации тестирования под микро-сервисную архитектуру Контракты для µ-сервисной архитектуры µS10 ServiceY «Classic» Contracts Consumer Driven Contracts Consumer Consumer Consumer Provider
  • 14. Ядро автоматизации тестирования под микро-сервисную архитектуру Контракты для µ-сервисной архитектуры µS10 Consumer Driven Contracts CDC
  • 15. Ядро автоматизации тестирования под микро-сервисную архитектуру Контракты для µ-сервисной архитектуры µS10 Consumer Driven Contracts CDC CDC-testing (для команды тестирования)
  • 16. Ядро автоматизации тестирования под микро-сервисную архитектуру Предикаты для CDC-testing 1. Наличие контрактов в разработке 2. Договорённость работать по CDC
  • 17. Ядро автоматизации тестирования под микро-сервисную архитектуру Предикаты для CDC-testing Repository push Post-hook auto-test Jira task 1. 2. ? 1. Наличие контрактов в разработке 2. Договорённость работать по CDC
  • 18. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Test Automation PACT framework µS6
  • 19. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Test Automation PACT framework µS6
  • 20. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Test Automation PACT framework µS6 Test_1 Test… Test_X External service
  • 21. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Test Automation Logger PACT framework µS6 Test_1 Test… Test_X
  • 22. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC PACT framework
  • 23. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Logger PACT framework UP TO YOU
  • 24. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Test Automation Logger PACT framework Config reader µS6 Test_1 Test… Test_X
  • 25. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Test Automation Logger PACT framework Config reader µS6 State :request :response Pact files Test_1 Test… Test_X
  • 26. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC :request :response Pact files
  • 27. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC :request :response Pact files
  • 28. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC State :request :response Pact files
  • 29. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Test Automation Logger PACT framework Suite runner Config reader µS6 trigger Test_1 Test… Test_X State :request :response Pact files event
  • 30. Ядро автоматизации тестирования под микро-сервисную архитектуру µS4 µS2µS1 µS3 µS9 µS5 µS6 µS8µS7 Front- end DB2 DB1 External Service Перехода к µ-сервисам µS10
  • 31. Ядро автоматизации тестирования под микро-сервисную архитектуру Имплементация автоматизации под CDC Mocks/Stubs Test Automation PACT framework µS6 µS8 µS10 µSX µSY Pact files state
  • 32. Ядро автоматизации тестирования под микро-сервисную архитектуру Учесть при имплементации • Контейнеры для изоляции тестирования • Актуализация «Pact file» требований по контрактам • Ввести процесс актуализации «States» и «Data Suites»
  • 33. Ядро автоматизации тестирования под микро-сервисную архитектуру Учесть при имплементации • Контейнеры для изоляции тестирования • Актуализация «Pact file» - требований по контрактам • Ввести процесс актуализации «States» и «Data Suites»
  • 34. Ядро автоматизации тестирования под микро-сервисную архитектуру Учесть при имплементации • Контейнеры для изоляции тестирования • Актуализация «Pact file» требований по контрактам • Ввести процесс актуализацию «States» и «Data Suites» Pact files Test Automation Logger PACT framework Suite runner Config reader Data Suites = Data Driven Testing •Positive •Boundary •Negative
  • 35. Ядро автоматизации тестирования под микро-сервисную архитектуру Учесть при имплементации • Контейнеры для изоляции тестирования • Актуализация «Pact file» требований по контрактам • Ввести процесс актуализации «States» и «Data Suites» Pact files State Test Automation Logger PACT framework Suite runner Config reader State = • Precondition • SetUp • Fixture
  • 36. Ядро автоматизации тестирования под микро-сервисную архитектуру Итоги • Post-hooks – часть решения • CDC pattern в разработке – это необходимость • Снижение склонности системы к появлению дефектов • Возможность уйти от ручного тестирования изменений
  • 38. Ядро автоматизации тестирования под микро-сервисную архитектуру The benefits to this approach are that you know who all the consumers of your service are, you’ll know when you make breaking changes so it is easier to make changes and the contract is also a form of documentation. Secondly, you’ll know exactly what functionality needs to be provided so you can implement the right services needed by your consumers and can follow the YAGNI principle Ruby Pact: https://github.com/realestate-com-au/pact JVM Pact: https://github.com/DiUS/pact-jvm .Net Pact: https://github.com/SEEK-Jobs/pact-net Pact Go: https://github.com/pact-foundation/pact-go Pact.js: https://github.com/pact-foundation/pact-js Pact Swift: https://github.com/DiUS/pact-consumer-swift Pact Python: https://github.com/pact-foundation/pact-python

Editor's Notes

  1. Микро-сервисная архитектура – это современное представление SOA, с девизом микро-сервис = одна функция, один целостный функционал. В чем идея – выкатывать много изменений функциональности быстро, изолированно от всего остального
  2. Шашлык или шпажка с едой В чем идея – выкатывать много изменений функциональности быстро, изолированно от всего остального
  3. В чем идея – выкатывать много изменений функциональности быстро, изолированно от всего остального как выглядит – нарисовать распил на микро-сервисы Как работает – описать работу на картинке
  4. В чем идея – выкатывать много изменений функциональности быстро, изолированно от всего остального как выглядит – нарисовать распил на микро-сервисы Как работает – описать работу на картинке
  5. В чем идея – выкатывать много изменений функциональности быстро, изолированно от всего остального как выглядит – нарисовать распил на микро-сервисы Как работает – описать работу на картинке
  6. В чем идея – выкатывать много изменений функциональности быстро, изолированно от всего остального как выглядит – нарисовать распил на микро-сервисы Как работает – описать работу на картинке
  7. Что такое контракты – шаблон или методология разработки в рамках парадигмы микро-сервисов. Есть сервис и он описывает контракт и что он по нему предоставляет. CDC для µ-серсисов – меняет подход и говорит, что Consumer запрашивает от Provider что ему необходимо от его сервиса, и Provider для окружающих делает то, что им нужно, а не то что он думает, что от его сервиса надо.
  8. Что такое контракты – шаблон или методология разработки в рамках парадигмы микро-сервисов. Есть сервис и он описывает контракт и что он по нему предоставляет. CDC для µ-серсисов – меняет подход и говорит, что Consumer запрашивает от Provider что ему необходимо от его сервиса, и Provider для окружающих делает то, что им нужно, а не то что он думает, что от его сервиса надо.
  9. Что такое контракты – шаблон или методология разработки в рамках парадигмы микро-сервисов. Есть сервис и он описывает контракт и что он по нему предоставляет. CDC для µ-серсисов – меняет подход и говорит, что Consumer запрашивает от Provider что ему необходимо от его сервиса, и Provider для окружающих делает то, что им нужно, а не то что он думает, что от его сервиса надо.
  10. Что такое контракты – шаблон или методология разработки в рамках парадигмы микро-сервисов. Есть сервис и он описывает контракт и что он по нему предоставляет. CDC для µ-серсисов – меняет подход и говорит, что Consumer запрашивает от Provider что ему необходимо от его сервиса, и Provider для окружающих делает то, что им нужно, а не то что он думает, что от его сервиса надо.
  11. Требования к используемой методологии разработки - CDC Требования к процессу разработки – коммит-хуки на добавление файлов контрактов
  12. Требования к используемой методологии разработки - CDC Требования к процессу разработки – коммит-хуки на добавление файлов контрактов
  13. Тестирвоание API – упомянуть, что оно почти тоже самое cdc только немного под соусом Описать тут про реализации PACT решений – их много и разные Упомянуть, что много логики может быть реализовано на уровне клиента Описать требования и учесть при реализации прямо тут
  14. Тестирвоание API – упомянуть, что оно почти тоже самое cdc только немного под соусом Описать тут про реализации PACT решений – их много и разные Упомянуть, что много логики может быть реализовано на уровне клиента Описать требования и учесть при реализации прямо тут
  15. Тестирвоание API – упомянуть, что оно почти тоже самое cdc только немного под соусом Описать тут про реализации PACT решений – их много и разные Упомянуть, что много логики может быть реализовано на уровне клиента Описать требования и учесть при реализации прямо тут
  16. В чем идея – выкатывать много изменений функциональности быстро, изолированно от всего остального как выглядит – нарисовать распил на микро-сервисы Как работает – описать работу на картинке