Kotlin QA Engineer

Научитесь разрабатывать тесты для всех платформ где используется Kotlin

25 апреля

4 месяца

Онлайн

Пн/Чт 20:00 Мск

Для кого этот курс?

Курс подойдет разработчикам на любом ООП-языке программирования с опытом работы от 1-го года, желающих улучшить свои навыки в автоматизации тестирования и создании CI/CD. Также подойдет тестировщикам с опытом работы от 1-го года, которые хотели бы научиться создавать автоматические тесты для всех уровней приложения (включая интеграционные тесты).

Необходимые знания:

  • знать любой ООП-язык программирования
  • понимать виды тестирования и методы подготовки тестовых значений
  • знать основы архитектуры распределенных сетевых приложений и REST API
  • распределенные системы контроля версий (git)
  • основы реляционных баз данных и языка SQL
При поддержке
логотип партнера

Что вам даст этот курс?

Вы получите знания и практический опыт разработки тестов и рефакторинга кроссплатформенных приложений на языке Kotlin для мобильных, веб-платформ, систем Enterprise-уровня и решений для встраиваемых систем. Мы рассмотрим на примерах реальных проектов основные идеи и сложные практические вопросы при проектировании и разработке автоматических тестов пользовательского интерфейса, бизнес-логики и API, оценки производительности, проверки стиля кода и наличия уязвимостей. 

Ключевые особенности курса:

  • актуальные возможности Kotlin для создания максимально полного покрытия тестами сложных многокомпонентных приложений
  • тестирование интерфейсов на Jetpack Compose с инъекцией зависимостей через Hilt
  • полное встраивание тестов в конвейер непрерывной интеграции
  • автоматическая проверка домашних заданий на статическом анализаторе

После обучения вы сможете:

  • создавать тестовые данные и использовать инъекции зависимостей для подмены объектов при выполнении тестирования
  • выполнять нагрузочное тестирование
  • выполнять автоматические тесты на наличие уязвимостей
  • выполнять проверку соответствия стиля кода принятым правилам
  • встраивать Automation QA в конвейер сборки в наиболее востребованных системах непрерывной интеграции

Дополнительно вы научитесь:

  • применять механизмы синхронизации при тестировании асинхронных компонентов и распределенных систем
  • владеть основными системами сборки приложений
  • реализовывать в тестах сложные сценарии

Цель курса


Объединяющей целью курса является всесторонняя автоматизация и использование тестов в системах непрерывной интеграции

Процесс обучения

Все обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в закрытом Telegram чате, сдача домашних работ и получение обратной связи от преподавателей. Вебинары идут два раза в неделю по 2 академических часа. Все записи вебинаров будут доступны в личном кабинете. Домашнее задание выдается в среднем раз в 1 неделю, а его выполнение занимает 2-3 часа.

Проект

 

Разработаете полноценный набор тестов для реальных приложений

Практика


Автоматическая проверка ДЗ на статистическом анализе

Перспективы


Увеличите свой потенциал разработчика, архитектора и DevOps

Трудоустройство

  • Оформите резюме и портфолио:
    HR-специалист поможет оформить резюме 
  • Научитесь проходить собеседования:
    руководитель курса и HR-специалист научат вас проходить собеседования
  • Рекомендательное письмо:
    лучшие студенты получат персональное рекомендательное письмо от компании OTUS
  • Разместите резюме в базе OTUS:
    так наши партнёры смогут пригласить вас на интервью

QA Automation Engineer (Kotlin)

Перспективы направления
Средний уровень зарплат в Москве:
90 000Junior+ специалист
150 000Middle+ специалист
546
актуальных вакансий

Работодатели курса

Формат обучения

Интерактивные вебинары

2 занятия по 2 ак.часа в неделю
Доступ к записям и материалам остается навсегда

Обратная связь

Развернутый фидбэк по домашним заданиям от преподавателей 

Активное комьюнити


Общайтесь с преподавателями голосом на вебинарах и в закрытой Telegram группе

Программа

Введение в Kotlin

В модуле изучаем важные функциональные и синтаксические особенности Kotlin, разбираем принципы сборки приложений на основе дополнения Gradle. Вы получите знания, необходимые для дальнейшего написания кода и для его тестирования.

Тема 1: Kotlin в сравнении с Java и другими ООП-языками

Тема 2: Коллекции, generic-типы и лямбда-выражения

Тема 3: Функции-расширения, делегаты, DSL

Тема 4: Настройка тестирования в сборке Gradle

Тема 5: Взаимодействие с СУБД для заполнения тестовых данных

Тема 6: Консультация по пройденному материалу и ДЗ

Тема 7: Подготовка (генерация) и хранение тестовых данных

Фреймворки тестирования

В модуле изучаются основные подходы к тестированию отдельных частей приложения: модулей, спецификаций, компонентов и анализ аспектов качества кода: безопасности, производительности.

Тема 1: Выбор тестовых данных

Тема 2: Модульные тесты

Тема 3: BDD-тестирование

Тема 4: Статический анализ кода и уязвимостей

Тема 5: Тестирование приложений на Spring Framework

Тема 6: Тестирование производительности и профилирование

Тема 7: Практика

Тема 8: Консультация по пройденному материалу и ДЗ

Рефакторинг и архитектура приложений

В модуле рассматриваются темы тестирования сложных приложений на Kotlin, использующих механизмы потоков (Flow), корутин (coroutines), очередей сообщений.

Тема 1: Инъекция зависимостей и создание моков

Тема 2: Корутины и тестирование асинхронного кода на примере SQL-запросов к базе данных

Тема 3: Тестирование Flow и изменяемых состояний

Тема 4: Тестирование асинхронных распределенных систем (очереди сообщений)

Тема 5: Консультация по пройденному материалу и ДЗ

Разработка и тестирование мобильных приложений

Модуль направлен на изучение подходов к тестированию приложений для мобильных операционных систем (Android / iOS), в том числе использующих сетевое взаимодйествие с сервером.

Тема 1: Основы Android-приложений, обнаружение элементов на Espresso

Тема 2: Тестовые фреймворки Kakao, Kaspresso, расширение Hamcrest

Тема 3: Тестирование приложений на Jetpack Compose

Тема 4: Тестирование Accessibility

Тема 5: Тестирование сетевого слоя

Тема 6: Кроссплатформенное тестирование интерфейса методом "черного ящика"

Тема 7: Практика по тестированию реального приложения

Мультиплатформенная разработка и тестирование

В модуле рассматриваются вопросы тестирования мультиплатформенных приложений, в т.ч. веб-приложений, серверной реализации, интеграций с нативным кодом.

Тема 1: Kotlin for Backend, автоматизация тестирования API (RestAssured, Postman)

Тема 2: KotlinJS разработка для web

Тема 3: Разработка нативного кода в KotlinNative

Тема 4: Нагрузочное тестирование (Gatling)

Тема 5: Практика

Инфраструктура тестирования

В модуле рассматриваются технологические решения автоматизации тестирования и управления тестовым окружением.

Тема 1: Настройка Jenkins для запуска тестов

Тема 2: Использование Docker для создания тестовых данных

Тема 3: Интеграция тестов в Gitlab, Github, Bitbucket

Тема 4: Практика

Подготовка к поиску работы

В этом модуле мы начнём готовиться к поиску работы. Оформим резюме с HR-специалистом. Подготовимся к прохождению собеседований с HR и техническому интервью. По итогу модуля вы будете уже готовы к поиску первой работы.

Тема 1: Как правильно оформить резюме чтобы найти работу?

Тема 2: Как подготовиться к собеседованию и техническому интервью?

Итоговый проект

Заключительный месяц курса посвящен итоговому проекту — это то, что интересно создавать студенту на основе знаний, полученных на курсе. В процессе работы над проектом можно получить консультации преподавателей.

Тема 1: Консультация по проектам и домашним заданиям

Тема 2: Защита проектных работ

Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит

Выпускной проект


Финальный месяц обучения посвящен выпускному проекту. Вам будут предложено несколько тем проектов, но вы можете выбрать любую распределенную систему с мобильным приложением (включая свой pet-проект или любой доступный open source-проект). Домашние работы направлены на выработку навыков создания тестов, для них будет использоваться два предварительно разработанных приложения. Защита проекта будет проходить перед экспертами в профессии.

Преподаватели

Руководитель курса

Дмитрий Свиридов

ex-Avito Tech

Senior QA Automation Engineer

3 года в Otus
42 занятия
779 студентов

В 2016-ом году окончил магистратуру ИТМО по специальности "Физика низких температур". Работы для инженера-криогенщика было не густо, в связи с чем решил вспомнить школьное увлечение программированием и связать профессиональную деятельность с IT. Изначально нравились мобильные приложения, поэтому в начале 2018-го года пришел сначала в ручное тестирование нативных и кросс-платформенных приложений, затем разобрался с их автоматизацией. Постоянно изучая новые области, перешел в разработку автотестов для серверных приложений, чем преимущественно и занимается последние 1,5 года. За все время приходилось пощупать множество технологий: Kotlin, Swift, PHP, JS, Python. - Опыт работы в IT более 7-ми лет - Опыт работы в мобильном тестировании более 5-ти лет - Последние 1.5 года занимается автотестами сервисных приложений

Преподает на курсах

  • Kotlin QA Engineer
  • Java QA Engineer. Professional
  • Java QA Engineer. Basic

Дмитрий Золотов

Yandex

Flutter+Kotlin Developer

4 года в Otus
397 занятий
3150 студентов

Закончил Российский Государственный Педагогический Университет в 2002-ом году - учитель физики. Руководил межфакультетской лабораторией перспективных информационных технологий в РГПУ им. А. И. Герцена. Участвовал в создании и масштабировании ресурсов для электронного обучения (в т.ч. проект "Российская электронная школа"). Проектировал и разрабатывал высоконагруженные веб-приложения и системы автоматизации. Контрибьютор в проект ReOpenLdap. Разрабатывал архитектуру отказоустойчивых конфигураций гибридного облака на основе Consul и Kubernetes, сервисных сетей, интеграционных платформ с использованием AMQP. Также являюсь преподавателем по компьютерным сетям, DevOps, операционным системам, мультимедиа-технологиям. Руководил отделом автоматизации процессов в финансовой организации, в которой был консультантом и DevOps по миграции систем с использованием облачных технологий, а также разработчиком для Android/iOS. Автор серии вебинаров по Kubernetes и кроссплатформенной разработке: https://www.youtube.com/channel/UCs_AMB-HbhHzMhE0VdBZByg - Опыт работы 23 года - FullStack разработчик (Flutter/Python/Kotlin/GoLang/C++) - DevOps, Системный администратор - Приглашенный преподаватель в ИТМО - Исследователь технологий электронного обучения

Преподает на курсах

  • Инфраструктурная платформа на основе Kubernetes
  • Highload Architect
  • DevOps практики и инструменты
  • Python QA Engineer
  • Kotlin QA Engineer
  • QA Engineer. Basic
  • Flutter Mobile Developer
  • Специализация DevOps

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Ближайшие мероприятия

Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.

Разработка сервиса для генерации тестовых данных на Spring Framework
Дмитрий Свиридов
На занятии поговорим о сервисах, создаваемых для нужд тестирования (заглушки, генераторы данных) и на упрощенном примере реализуем сервис для генерации тестовых пользователей, попутно рассуждая об устройстве Spring Framework.

Основные темы открытого урока:
- Использование тестовых сервисов для нужд тестирования
- Устройство Spring Framework
- Реализация Rest API
...
28 марта в 17:00
Открытый вебинар
Тестирование сервисов на Spring Framework
Дмитрий Свиридов
Поговорим об инструментарии для тестирования приложений на Spring Framework. Напишем unit-тесты с использованием моков и интеграционные тесты.

Основные темы открытого урока:
- Написание unit-тестов, использование моков
- Написание интеграционных тестов
...
4 апреля в 17:00
Открытый вебинар
Использование KSP2 для тестирования на Kotlin
Дмитрий Золотов
На открытом уроке мы рассмотрим возможности новой версии Kotlin Symbol Processing и возможные сценарии их использования для генерации тестовых данных и сценариев

Основные темы открытого урока:
- Принципы анализа исходных текстов и кодогенерации на KSP (PSI-дерево)
- Новые возможности KSP2 и их применение в юнит-тестах для генерации тестовых наборов и кода на основе исходных текстов
...
18 апреля в 17:00
Открытый вебинар

Прошедшие
мероприятия

Анастасия Ахраменко
Открытый вебинар
Взаимодействие с СУБД для заполнения тестовых данных на Kotlin
Дмитрий Синицын
Открытый вебинар
Тестирование приложений на Jetpack Compose
Оставьте заявку, чтобы получить доступ ко всем записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке

Корпоративное обучение для ваших сотрудников

Отус помогает развивать высокотехнологичные Команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Андрей Чемисов

28.03.2022
Прежде всего, огромное спасибо всем преподавателям и организаторам данного Курса. Затронуты именно злободневные темы. В результате очень расширил свой кругозор. Да, были некоторые методические недочеты. Но они не помешали учиться. Спасибо, спасибо, спасибо!!!

Сертификат о прохождении курса

OTUS осуществляет лицензированную образовательную деятельность.
В конце обучения вы получите сертификат OTUS о прохождении курса

После обучения вы:

  • получите репозиторий на GitHub с примерами тестов
  • сохраните видеозаписи занятий и презентации
  • сможете решать любые задачи автоматизатора тестирования
  • получите сертификат об окончании курса

Частые вопросы

Что, если в середине курса я не смогу продолжать обучение?
У вас есть право одного бесплатного трансфера в другую группу
Обязательно ли защищать выпускной проект?
Для получения сертификата OTUS необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
Я могу вернуть деньги?
Да, вы можете сделать возврат средств пропорционально оставшимся месяцам обучения.