QA
Automation
Юрій Вороненко
Automation QA Tech Lead у CyberVision

40 занять
[щовівторка та щочетверга]
Комплексний курс про те, як написати програму, що самостійно запускатиме тести за заданим графіком, зможе імітувати багаторазові одноманітні дії користувача та тисячі сеансів одночасно. За 20 тижнів ви ознайомитеся з базовим синтаксисом Java та опануєте всі інструменти для планування та запуску автотестів.
*курс викладається українською мовою
щоб дізнатися, як оперативно тестувати великі обсяги даних та заощадити час, якщо один і той самий функціонал потрібно тестувати десятки разів поспіль. Ви на практиці розберете, як влаштовані автотести, і навчитеся покривати ними свої проєкти.
щоб одразу перейти в автоматизацію, опанувати сучасні інструменти та фреймворки для запуску автотестів, а також навчитися робити зрозумілі звіти для розробників. В результаті ви отримаєте цінні скіли та одразу підвищите вашу цінність на ринку праці.

Цей курс про те, як запустити перевірку сотень опцій ІТ-продукту одночасно, натиснувши всього лиш одну кнопку. І про те, який код лежить в основі цієї магічної функції.
За 20 тижнів ми детально розглянемо процес автоматизації: від запуску локальної версії програми до оформлення тестового звіту. Вивчимо базовий синтаксис Java та навчимося кодити програми для автоматизованого тестування.
Опустимо зайву теорію та розглянемо лише ті інструменти та технології, які дійсно застосовуються в роботі. В результаті ― пропишемо алгоритм тестування під реальний продукт, налаштуємо запуск автотестів та звітів за графіком.
- вивчите базовий синтаксис Java та принципи ООП
- навчитесь працювати з фреймворками JUnit/TestNG
- будуватимете селектори XPath і CSS для Web UI тестування, писатимете тести для API в Postman
- писатимете код на Java, який запускатиме процес тестування і шукатиме баги замість вас
- навчитесь імітувати багаторазові одноманітні дії користувача та проводити навантажувальні тестування
- перевірятимете багатомовні інтерфейси, швидко знаходитимете помилки та описуватимете їх у звітах
- за допомогою автотестів зможете тестувати великі обсяги даних
- оптимізуєте рутинні процеси та перерозподілите час на користь пріоритетних завдань
- підвищите кваліфікацію, перейдете в автоматизацію та зможете отримати високооплачуванішу роботу

Теми:
- Переваги та недоліки автоматизованого тестування порівняно з ручним
- Типи автоматизованих тестів
- Тестова піраміда в контексті автоматизації
Результати:
- Знаєте, які переваги має автоматизоване тестування.
- Розумієте, як оптимізувати свою роботу завдяки переходу в автоматизацію.
Теми:
- Робота з Git
- Робота з Docker
- Формати зберігання та передачі даних
Результати:
- Розумієте, як працює система контролю версій Git.
- Вмієте створювати публічний репозиторій у Git.
- Розумієте, як працює контейнеризація.
- Вмієте працювати з Docker та запускати програми в ньому.
- Вмієте читати та складати основні формати репрезентації даних.
- Знаєте, в якому разі який формат краще застосовувати.
Теми:
- Вступ до мови програмування Java
- Робота з операторами Java
- Умови на Java
- Цикли на Java
- Множинні типи даних для автоматизації тестування
- Поля обʼєкта
- Методи об'єкта
- Перелічуваний тип ENUM
- Інкапсуляція
- Абстракція та інтерфейси
- Наслідування та поліморфізм
- Обробка помилок
- Робота з файлами
- Анотації, generics та streams
- Дизайн Java-застосунку
- Maven
Результати:
- Знаєте базовий синтаксис Java.
- Розумієте, як працює об'єктна модель у Java.
- Вмієте застосовувати основні оператори присвоєння та модифікації.
- Вмієте будувати складні алгоритми на основі умов.
- Знаєте, як писати оптимальні та читані умови.
- Вмієте будувати алгоритми, засновані на повтореннях, а також логічні конструкції всередині циклів.
- Знаєте, як зберігати множинні дані в Java.
- Вмієте додавати, вилучати та модифікувати дані.
- Декларуєте класи Java, готові перейти від процедурного програмування до ООП.
- Знаєте, що таке тип ENUM і в яких випадках його варто застосовувати.
- Будуєте логічно безпечні алгоритми й правильні класи відповідно до ООП-моделі.
- Вмієте працювати з абстрактними класами й інтерфейсами.
- Розумієте, що таке наслідування та поліморфізм, і вмієте будувати багаторівневі програми з меншим обсягом коду.
- Вмієте правильно обробляти помилки та використовувати їх як засіб зворотної комунікації.
- Працюєте з файловою системою з Java-коду.
- Розумієте код, який містить анотації та generics.
- Вмієте створювати генералізований метод та клас.
- Знаєте ознаки поганого коду.
- Вмієте писати реалізації Singleton та Builder.
- Керуєте залежностями за допомогою Maven.
Теми:
- Тестові фреймворки JUnit/TestNG
- Data-driven testing
- Тестовий звіт
- Просунутий тестовий репорт Allure
- Робота з базами даних із Java (JDBC) на прикладі postgreSQL
- Просунута робота з базами даних. Бібліотека JDBI
Результати:
- Працюєте з фреймворками JUnit/TestNG.
- Розумієте, як тести взаємодіють із кодом програми.
- Вмієте писати готові до виконання тести.
- Знаєте, як підготувати тестове оточення.
- Вмієте писати тести, які виконуються одним й тим самим кодом, але з різними наборами даних.
- Знаєте, як побудувати зрозумілу тестову структуру.
- Будуєте тести таким чином, щоби було зрозуміло, на якому етапі сталася помилка.
- Вмієте налаштовувати тестовий звіт, який зрозумілий всім.
- Знаєте, як налаштовувати Allure.
- Вмієте виконувати основні операції з базою даних у Java.
- Працюєте з бібліотекою JDBI.
Теми:
- Selenium WebDriver
- Локатори елементів XPath
- CSS Selector
- Selenide
- Cucumber
Результати:
- Запускаєте різні браузери для виконання тестів.
- Вмієте виконувати простий пошук елементів сторінки та взаємодіяти із цими елементами.
- Будуєте селектори XPath для пошуку елементів за різними ознаками.
- Вмієте шукати елементи в динамічній структурі документа.
- Знаєте, як перевірити складений селектор XPath за допомогою плагіна до Google Chrome.
- Вмієте будувати CSS-селектори для пошуку елементів за базовими атрибутами.
- Вмієте взаємодіяти та перевіряти елементи в Selenide.
- Знаєте, як писати Web UI тести з використанням Selenide.
- Пишете прості, параметризовані та data-driven тести з Cucumber.
- Запускаєте тести засобами Idea та Maven.
Теми:
- HTTP + Postman
- REST Assured
- Awaitility
Результати:
- Знаєте, як працює HTTP.
- Розумієте суть ресурсного підходу.
- Вмієте працювати з HTTP-ендпоінтами через Postman.
- Пишете API-тести, які виконують послідовність HTTP-запитів.
- Розумієте модель тестування Given-When-Then.
- Вмієте писати API для систем зі станом, що динамічно змінюється, і асинхронною обробкою даних.
- Знаєте, як налаштувати затримку та інтервал очікування, щоби не перевантажувати тестовану систему.
Теми:
- Види навантажувального тестування, його задачі та вплив на бізнес
- JMeter
Результати:
- Розумієте цілі та завдання навантажувального тестування.
- Проводите навантажувальне тестування.
- Знайомі з основними елементами тесту на JMeter.
- Можете написати тест для перевірки продуктивності web-сервісу за допомогою JMeter.
- Пишете складні тести навантаження для web-сервісів, які виконують послідовність залежних запитів.
- Вмієте валідувати результати запитів, виконаних у процесі тестування.
Теми:
- Огляд актуальних систем, SaaS CI
- Jenkins
- Підсумки, перспективи карʼєри в QA Automation
Результати:
- Розумієте різницю між SaaS CI та hosted CI.
- Знайомі з основними системами CI.
- Знаєте, як описуються завдання Jenkins через декларативний підхід.
- Вмієте налаштувати Jenkins для виконання простих завдань.
- Налаштовуєте Jenkins для роботи з кодом у Git-репозиторії.
- Розумієте свої перспективи у сфері QA Automation.