SlideShare una empresa de Scribd logo
1 de 22
Infrastructure for
Automation testing
About
Ihor Dodukh
Automation QA Lead in P2H
QA since 2015
Leading AQA team
Built over 10 projects from scratch
Worked with
● Infrastructure
● Goals
● Tools
● Configuration example
● Bottlenecks
● Tests scaling
● Collaboration
Agenda
Infrastructure?
Goals
1
Tests
Goals
1 2
Tests Store
Goals
1 2 3
Tests Store CI/CD
Goals
1 2 3 4
Tests Store Execute
CI/CD
Goals
1 2 3 4
Tests Store Execute Report
5
CI/CD
Tools
1
Tests
Language
Test framework
Code editor / IDE
Tools
1
2
Store
1
Tools
1
3
CI/CD
1
Tools
1
1
4
Execute
Locally
Server
Docker+Kubernetes
Selenium Grid
1
Tools
1
1
1
5
Report
HTML
Allure
Email
Chat
Tools
1 2 3 4
Tests Store Execute Report
5
CI/CD
Configuration example
Tests
Push
Server A
1 2 3
Build Test Report
GitLab
Images
Docker
PyCharm
Allure
Reports
#channels
Slack
Chrome Firefox
Safari
Selenoid
Microservice #1
Server C
Microservice #2
Microservice #N
Mock service
Tested System
Server B
Bottlenecks
● Browser instances
● Tests architecture
● CPU/RAM consumption
● Browser timeouts
● Access
Selenoid
● Results history
● Reports structure
● CPU/RAM consumption
● Access
Bottlenecks
Allure
● 3rd-party services
● Mock service
● Scaling
● CPU/RAM consumption
● DB connections limit
● Access
Bottlenecks
Tested system
Tests scaling
● Number of tests
● Test suites
● Test design techniques
● Parallel run
Collaboration
● DevOps
● Customer
● Manual QA
● Developers
Questions
?

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Agile QA presentation
Agile QA presentationAgile QA presentation
Agile QA presentation
 
QA process Presentation
QA process PresentationQA process Presentation
QA process Presentation
 
Knowledge sharing for QA teams
Knowledge sharing for QA teamsKnowledge sharing for QA teams
Knowledge sharing for QA teams
 
ОЛЬГА МАЛІНІНА «Тестування Usability: дешево, сердито та об’єктивно» Online Q...
ОЛЬГА МАЛІНІНА «Тестування Usability: дешево, сердито та об’єктивно» Online Q...ОЛЬГА МАЛІНІНА «Тестування Usability: дешево, сердито та об’єктивно» Online Q...
ОЛЬГА МАЛІНІНА «Тестування Usability: дешево, сердито та об’єктивно» Online Q...
 
Test Automation
Test AutomationTest Automation
Test Automation
 
СВЯТ ЛОГІН «На які головні місця не звертає увагу тестувальник» Online QADay...
СВЯТ ЛОГІН «На які головні місця не звертає увагу тестувальник»  Online QADay...СВЯТ ЛОГІН «На які головні місця не звертає увагу тестувальник»  Online QADay...
СВЯТ ЛОГІН «На які головні місця не звертає увагу тестувальник» Online QADay...
 
TCoE
TCoETCoE
TCoE
 
Testing Services
Testing ServicesTesting Services
Testing Services
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 
Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil Karade
 
Gatling
Gatling Gatling
Gatling
 
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
 
How Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlHow Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian Karl
 
Performance testing and reporting with JMeter
Performance testing and reporting with JMeterPerformance testing and reporting with JMeter
Performance testing and reporting with JMeter
 
Performance Testing Cloud-Based Systems
Performance Testing Cloud-Based SystemsPerformance Testing Cloud-Based Systems
Performance Testing Cloud-Based Systems
 
Emerging QA COE Practice by Mukund Wangikar
Emerging QA COE Practice by Mukund WangikarEmerging QA COE Practice by Mukund Wangikar
Emerging QA COE Practice by Mukund Wangikar
 
Agile Testing
Agile Testing Agile Testing
Agile Testing
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
 

Similar a ІГОР ДОДУХ «Інфраструктура для автотестів. Практичний досвід» Online QADay 2022 #2

Docsvision Кирильчук Сергій
Docsvision Кирильчук СергійDocsvision Кирильчук Сергій
Docsvision Кирильчук Сергій
Dokymentoznavstvo111
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
HRdepartment
 

Similar a ІГОР ДОДУХ «Інфраструктура для автотестів. Практичний досвід» Online QADay 2022 #2 (20)

РОМАН МЕЛЬНИК «Testing in CD_ how we implement it, risks etc.» Online QADay 2...
РОМАН МЕЛЬНИК «Testing in CD_ how we implement it, risks etc.» Online QADay 2...РОМАН МЕЛЬНИК «Testing in CD_ how we implement it, risks etc.» Online QADay 2...
РОМАН МЕЛЬНИК «Testing in CD_ how we implement it, risks etc.» Online QADay 2...
 
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
 
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
 
Як покращити Python web UI тести
Як покращити Python web UI тестиЯк покращити Python web UI тести
Як покращити Python web UI тести
 
PMLab. Алена Прихнич и Ірина Пашко "Як масштабувати agile на великі проекти"
PMLab. Алена Прихнич и Ірина Пашко "Як масштабувати agile на великі проекти"PMLab. Алена Прихнич и Ірина Пашко "Як масштабувати agile на великі проекти"
PMLab. Алена Прихнич и Ірина Пашко "Як масштабувати agile на великі проекти"
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
 
"Bringing Flutter to Tide: a case study of a leading fintech platform in the ...
"Bringing Flutter to Tide: a case study of a leading fintech platform in the ..."Bringing Flutter to Tide: a case study of a leading fintech platform in the ...
"Bringing Flutter to Tide: a case study of a leading fintech platform in the ...
 
Golang
GolangGolang
Golang
 
Любов Самойлова - Чутки про смерть PMBoK Guide сильно перебільшені
Любов Самойлова - Чутки про смерть PMBoK Guide сильно перебільшеніЛюбов Самойлова - Чутки про смерть PMBoK Guide сильно перебільшені
Любов Самойлова - Чутки про смерть PMBoK Guide сильно перебільшені
 
Docsvision Кирильчук Сергій
Docsvision Кирильчук СергійDocsvision Кирильчук Сергій
Docsvision Кирильчук Сергій
 
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
 
Nikita Zahurdaiev: PMO Tools and Technologies (UA)
Nikita Zahurdaiev: PMO Tools and Technologies (UA)Nikita Zahurdaiev: PMO Tools and Technologies (UA)
Nikita Zahurdaiev: PMO Tools and Technologies (UA)
 
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
Lviv PMDay 2015 S Михайло Попчук: “Синхронізація декількох Agile команд в про...
 
СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»
СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»
СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»
 
Artem Ternov: Побудова платформи під DataEngineering та DataScience в ентерпр...
Artem Ternov: Побудова платформи під DataEngineering та DataScience в ентерпр...Artem Ternov: Побудова платформи під DataEngineering та DataScience в ентерпр...
Artem Ternov: Побудова платформи під DataEngineering та DataScience в ентерпр...
 
Usage of plickers
Usage of plickersUsage of plickers
Usage of plickers
 
РОМАН МАРІНСЬКИЙ «Організація та покращення QA Center of Excellence» QADay
РОМАН МАРІНСЬКИЙ «Організація та покращення QA Center of Excellence» QADayРОМАН МАРІНСЬКИЙ «Організація та покращення QA Center of Excellence» QADay
РОМАН МАРІНСЬКИЙ «Організація та покращення QA Center of Excellence» QADay
 

Más de GoQA

Más de GoQA (20)

Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
 
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
 
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
 
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
 
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
 
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
 
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
 
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
 
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
 
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
 
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
 
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
 
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
 
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
 
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
 
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
 
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
 
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
 
ВЯЧЕСЛАВ САХАРОВ “Баги, хотфікси та воркераунди в космічній галузі. Вчимось н...
ВЯЧЕСЛАВ САХАРОВ “Баги, хотфікси та воркераунди в космічній галузі. Вчимось н...ВЯЧЕСЛАВ САХАРОВ “Баги, хотфікси та воркераунди в космічній галузі. Вчимось н...
ВЯЧЕСЛАВ САХАРОВ “Баги, хотфікси та воркераунди в космічній галузі. Вчимось н...
 

ІГОР ДОДУХ «Інфраструктура для автотестів. Практичний досвід» Online QADay 2022 #2

Notas del editor

  1. Навіть наприклад в jenkins по дефолту генерується HTML репорт у форматі Junit
  2. Tests architecture - структура і логіка виконання тестів можуть бути не готовими до паралельного запуску. Наприклад обмеження в тестових даних. Залежності між тестами. Available browser instances - що це означає? Коли ви налаштовуєте Селеноід для роботи з тестами, cpu/RAM - як варіант можна після налаштування запустити максимальне навантаження і перевірити стабільність роботи Timeout limits - таймаут браузера в селеніум грід може випадково бути меншим за таймаут очікування в тестах. Таким чином наприклад тести можуть чекати якийсь елемент умовно 1 хв, а браузер після 30 секунд бездіяльності автоматично закривається. Ці цифри умовні і від реальних можуть відрізнятись, але варто тримати в голові подібний розвиток подій. Access - як від тестів до селеноіда, так і з селеноїда до всіх сервісів системи яку ми тестуємо.
  3. Особливістю роботи Алюр репорту, який не плагін в Jenkins а окремий сервіс, складається в тому що кожні наступні результати генеруються наступним чином. Алюр оперує даними у форматі JSON. Так от, щоб згенерувати новий репорт беруться всі JSON файли попередніх репортів до них додаються JSON результати з нового прогону і далі відправляється команда generate report. І з кожним наступним прогоном навантаження на Алюр збільшується і він їсть більше ресурсів. І в якийсь момент ресурси закінчуються (здається найбільше страждає RAM). Тому важливо слідкувати за тим скільки ви хочете бачити результатів останніх запусків і слідкувати за доступністю ресурсів. Reports structure - всі кроки в тестах мають бути протегані алюр анотаціями і всі перевірки мають бути всередині алюр кроків. В іншому випадку алюр стає менш інформативним і ми не побачимо на якому кроці звалився тест і яка перевірка не була пройдена. Буде просто упавший тест без деталей. Access - якщо у вас гітлаб і алюр на різних серверах, або навіть в різних інфраструктурах (так також буває), то важливо перевіряти доступ між цими серверами. Зазвичай проблеми якщо і є то вирішуються на етапі налаштування. Але бувають різні випадки, інфраструктуру можуть змінювати, і т.д.
  4. 3rd-party services - автотестам не потрібно залазити на чужу територію. Якщо є 3rd-party service - його потрібно заміняти моком. Mock service - зачасту це допоміжний сервіс який не супер оптимізований і коли автотести починають часто до нього звертатися, мок може не витримувати і або довго відповідає або взагалі падає. Scaling - тестове оточення може бути досить стабільним коли тестувати на ньому вручну. Але коли працюють автотести, частота запитів на систему значно вища і деякі частини системи можуть потребувати скейлінг. Тобто щоб кілька копій одного компоненту працювали в парі і паралельно обробляли запити. CPU/RAM consumption - насправді не тільки вони а ще черги які можуть забиватися Access - Це не вичерпний список можливих вразливих місць. Але з цими даними вже можна полегшити собі життя при пошуку причин нестабільності системи.
  5. Tests scaling - під цим мається на увазі розростання кількості тестів з часом. В цьому випадку час на виконання тестів збільшується і потрібно шукати шляхи прискорення. В нашому випадку найоптимальнішим варіантом виявився паралельний запуск тестів по сьютам. В такому разі варто враховувати що навантаження як на систему яку тестуємо так і на тестові інструменти зростає. Тут ми знову перетинаємось з тими вразливими місцями (bottlenecks) які бачили на попередніх слайдах.
  6. Зараз не говоримо шляхи і причини колаборації при повному процесі розробки. Мова йде тільки про інфраструктуру. І саме тому на першому місці я поставив DevOps. DevOps - це ті з ким вам потрібно обовʼязково товаришувати. В першу чергу якщо щось йде не так ви звертаєтесь до девопс. Знаю кейси коли саме через напруженість у комунікації між девопсами і AQA було важко запросити якісь невеликі правки в інфраструктурі. Звичайно це їх робота і вони мають це зробити, але в них досить довго знаходились більш пріоритетні задачі доки проблема не була ескальована вище. Так, це вже більше про софт скіли і комунікацію, але на практиці пункт досить важливий. Customer. Чим Customer може допомогти в інфраструктурі? Ресурсами. Наприклад виділити сервер під селеніум грід або через клієнта запросити більше RAM бо репортинг система почала споживати більше ресурсів. Manual QA - може допомогти з чим… Вони перетестували всю систему вздовж і впоперек, знають більшість вразливих і повільних місць і ще навіть на етапі планування автоматизації можуть підказати де може не вистачати ресурсів на конкретних частинах системи. Схожа історія і з дев командою. Вони знають як написана та чи інша частина сервісів, як ведеться взаємодія між різними частинами системи і можуть бути корисними в підвищенні стабільності системи особливо при масштабуванні автотестів.