КУРС «ВВЕДЕНИЕ В ТЕСТИРОВАНИЕ»

ЧТО ДАСТ ВАМ КУРС

Всего за 6 недель самостоятельной подготовки вы получите систематизированные базовые теоретические знания и практические навыки, необходимые для того, чтобы начать работать джуниор-тестировщиком и/или продолжать углубленное обучение. Предусловия:

  • Базовая компьютерная грамотность.

ЗАНЯТИЕ 1: ТЕСТИРОВАНИЕ И ТЕСТИРОВЩИКИ

  • Профессия тестировщик (QA)
  • Что изучить, чтобы понять азы тестирования
  • Что такое тестирование
  • Цели тестирования.
  • Принципы тестирования
  • Качество программного обеспечения
  • Валидация и верификация
  • Понятие ошибок, дефектов и сбоев, что такое Баг
  • Значение и классификация ошибок программного обеспечения
  • Причины возникновения багов

ЗАНЯТИЕ 2: ЖИЗНЕННЫЙ ЦИКЛ РАЗРАБОТКИ И ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

  • Что такое IT-проект?
  • Управление IT проектом
  • Жизненный цикл разработки программного обеспечения:
    1. Основные модели разработки программного обеспечения
    2. Гибкая методология разработки Agile
  • Жизненный цикл тестирования программного обеспечения
  • Методология управления проектами Scrum
  • Методология управления проектами Kanban
  • Управление проектами по гибкой методологии Agile
  • Что такое Jira?

ЗАНЯТИЕ 3: ТРЕБОВАНИЯ И ДОКУМЕНТАЦИЯ

  • Что такое «требование»
  • Классификация требований
  • Документация на ПО
  • Тестовая документацияест план, тест-кейс, чек-лист, баг-репорт)
  • Основы тестирования программного обеспечения
  • Планирование процесса тестирования

ЗАНЯТИЕ 4: ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

  • Основные понятия и определения
  • Виды тестирования программного обеспечения
  • Уровни тестирования программного обеспечения
  • Тест-дизайн
  • Процесс тестирования
  • Автоматизированное тестирование программного обеспечения

ЗАНЯТИЕ 5: МЕТРИКИ ПРОЦЕССА ТЕСТИРОВАНИЯ

  • Оценка результатов тестирования
  • Метрики тестирования и оценка трудозатрат.

ЗАНЯТИЕ 6: ИНСТРУМЕНТЫ, КОТОРЫЕ НЕОБХОДИМО ОСВОИТЬ

  • Java стабильно занимает первое место в индексе популярности языков программирования tiobe. Вы сможете использовать его для написания авто-тестов и в дальнейшем для разработки под любую платформу. Java — хороший язык для начала изучения программирования.
  • Visual Studio Code — редактор исходного кода, разработанный Microsoft для Windows, Linux и macOS.
  • Git - самая популярная система контроля версий, которой пользуется большинство разработчиков, в том числе создатели операционных систем Android, Linux. Система контроля версий позволяет работать над кодом проекта совместно, не переживая за потерю данных или конфликт версий.
  • PostgreSQL - свободная объектно-реляционная система управления базами данных. Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.
  • Selenium - фреймворк (программная библиотека) для автоматизации действий веб-браузера. Самый популярный инструмент для тестирования веб-приложений, предоставляя авто-тестам доступ к браузеру.
  • JSON — текстовый формат обмена данными, основанный на JavaScript.
  • IntelliJ IDEA - умная и удобная среда разработки для Java, включающая поддержку последних технологий и фреймворков. Предоставляет инструменты для продуктивной работы и подходит для создания коммерческих, мобильных и веб-приложений.
  • Swagger - это программная среда с открытым исходным кодом, опирающаяся на обширную экосистему инструментов, которая помогает разработчикам проектировать, создавать, документировать и использовать веб-сервисы RESTful.
  • Postman - HTTP-клиент для тестирования веб-сайтов. С его помощью можно составлять и редактировать простые или сложные HTTP-запросы.
  • JIRA - система, которая подходит для отслеживания ошибок и управления проектом в компании любого размера.
  • Apache Maven — фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM, являющемся подмножеством XML.

КУРС «ТЕСТИРОВАНИЕ ВЕБ-ПРИЛОЖЕНИЙ»

ЧТО ДАСТ ВАМ КУРС

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

  • Базовая компьютерная грамотность. Архитектура клиент и сервер.
  • Знание любого языка программирования на базовом уровне (Java, Python, Ruby или PHP), основы SQL.

ЗАНЯТИЕ 1: ОСНОВЫ ВЕБ-ПРИЛОЖЕНИЙ

  • Основные понятия в веб-разработке. Общая теория тестирования
  • Характеристики качества: что нужно тестировать?
  • Интерфейсы тестируемой программы, стимулы и реакции
  • Общее устройство браузера
  • Гипертекст, язык разметки HTML
  • Тестирование текстового содержимого страниц
    1. Тестирование текстовых полей
    2. Тестирование текста, чисел и дат с использованием граничных значений
  • Тестирование форм регистрации
  • Тестирование форм авторизации и восстановления паролей
  • Тестирование дополнительных элементов интерфейса
  • Тестирование навигации (переходов между страницами)

ЗАНЯТИЕ 2: АРХИТЕКТУРА КЛИЕНТ И СЕРВЕР

  • Клиент-серверная архитектура веб-приложений
  • Протокол HTTP
  • User Agent, браузеры и боты
  • Браузерные движки и кроссбраузерное тестирование
  • Анализ логов веб-сервера
  • Developer Tools / Network, анализ запросов и ответов
  • Перехват трафика между браузером и сервером
  • Отправка запросов произвольного вида
  • Domain Name Services (DNS)
  • Протоколы IPv4 и IPv6
  • Брандмауэры и прокси

ЗАНЯТИЕ 3: ДИНАМИЧЕСКАЯ ГЕНЕРАЦИЯ СТРАНИЦ

  • Сервер-приложений, языки программирования
  • Трехзвенная и четырехзвенная архитектура
  • Сервер баз данных
  • Язык запросов SQL
  • Кеширование на стороне сервера
  • Аутентификация и авторизация
  • Cookies
  • Внешняя аутентификация (OAuth)
  • Тестирование прав доступа
  • Тестирование производительности

ЗАНЯТИЕ 4: ПОЛУЧЕНИЕ ДАННЫХ ОТ ПОЛЬЗОВАТЕЛЯ

  • Формы, параметры запроса
  • Неявные параметры
  • GET и POST
  • Тестирование логики (функциональное тестирование)
  • Автоматизация тестирования
  • Тестирование производительности
  • Тестирование надежности
  • Тестирование защищенности

ЗАНЯТИЕ 5: ВЕРСТКА СТРАНИЦ

  • Основы языка разметки документов HTML
  • Основы языка оформления стилей документа CSS
  • Developer Tools / DOM, анализ свойств элементов
  • Основные тэги для вёрстки, Псевдоклассы и псевдоэлементы
  • Простая верстка
  • Адаптивная верстка
    1. Адаптивность. Десктоп и планшет.
    2. Адаптивность. Мобильные устройства.
  • Семантическая верстка
  • Совместимость с браузерами
  • Соответствие стандартам

ЗАНЯТИЕ 6: КАРТИНКИ И ДРУГИЕ УКРАШЕНИЯ

  • Размер, количество, производительность
  • Кеширование на стороне клиента
  • Content Delivery Network (CDN)
  • Спрайты, инлайн-картинки, шрифты
  • Адаптивная верстка
  • Типографика
  • Scalable Vector Graphics (SVG)
  • Canvas
  • Аудио и видео

ЗАНЯТИЕ 7: ИНТЕРАКТИВНОСТЬ

  • JavaScript: встроенный в браузер язык программирования
  • CSS Transform: анимация без JavaScript
  • Динамическая модификация страниц
  • Document Object Model (DOM)
  • Developer Tools / Console
  • JavaScript Debugger
  • Асинхронные запросы к серверу (AJAX)
  • REST API
  • SOAP API
  • WebSocket
  • Валидация данных
  • Динамическая подгрузка данных
  • Single Page Applications (SPA)

ЗАНЯТИЕ 8: ПОВТОРЕНИЕ ОСНОВ

  • Функциональное тестирование
  • Автоматизация функционального тестирования
  • Тестирование производительности, в том числе клиентской части
  • Тестирование защищенности
  • Тестирование надёжности
  • Тестирование удобства использования (usability)
  • Автоматизация тестирования вёрстки
  • Тестирование доступности (accessibility)
    1. Расширенные техники тестирования
    2. Тестовые сценарии. Позитивные и негативные тесты
    3. Кроссплатформенное и кроссбраузерное тестирование
    4. Дополнительные инструменты тестирования

ЗАНЯТИЕ 9: НЕФУНКЦИОНАЛЬНОЕ ТЕСТИРОВАНИЕ

  • Тестирование требований.
  • Тестирование UI, UX.
  • Приёмочное тестирование.
  • Тестирование безопасности. Серверные уязвимости.
  • Тестирование безопасности. Клиентские уязвимости.

КУРС «ТЕСТИРОВАНИЕ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ»

ЧТО ДАСТ ВАМ КУРС

Знания и умение организовать тестирование мобильных приложений, какое устройство выбрать для тестирования, получите представление о построении тестовых стратегий.
Предусловия:

  • Базовая компьютерная грамотность. Необходимо уметь работать с подключением телефонов с разными ОС к разным компьютерам, командной строкой, графическим и консольным интерфейсами, переменными окружения, различными файловыми системами, логами, IDE, клиент-серверной архитектурой, скриншотами и видео.
  • Знание любого языка программирования на базовом уровне (Java, Python, Ruby или PHP)

ЗАНЯТИЕ 1: ОСОБЕННОСТИ МОБИЛЬНОГО ТЕСТИРОВАНИЯ

  • Базовые понятия
  • Виды устройств Android. Разрешение и размеры экранов.
  • Архитектура процессоров Android устройств.
  • Версии ОС Android
  • Виды устройств iOS. Разрешения экранов
  • Архитектура процессоров iOS устройств)

ЗАНЯТИЕ 2: ОСОБЕННОСТИ МОБИЛЬНОГО ТЕСТИРОВАНИЯ

  • Тестирование связи (Wifi/2G/3G/LTE)
  • Тестирование прерываний
  • Взаимодействие с сенсорами положения и тач сенсором
  • Тестирование геолокации и GPS
  • Тестирование потребления ресурсов
  • Работа с клиент-серверными приложениями
  • Тестирование установки
  • Роль тестировщика в администрировании мобильных устройств
  • Списки тест-кейсов: чек-листы и мнемоники
  • Брандмауэры и прокси

ЗАНЯТИЕ 3: ЭМУЛЯТОРЫ И СИМУЛЯТОРЫ

  • Разница между симулятором iOS и эмулятором Android
  • Особенности тестирования на физических устройствах и эмуляторах/симуляторах
  • Фермы мобильных устройств
  • Достоинства и недостатки использования ферм
  • Пример использования мобильной фермы

ЗАНЯТИЕ 4: ТЕСТИРОВАНИЕ ANDROID-ПРИЛОЖЕНИЙ

  • Установка и настройка Android Studio
  • Создание и настройка эмулятора в Android Studio
  • Функционал эмулятора
  • Настройка Android Device Bridge
  • Установка приложений на эмулятор и реальное устройство
  • Анализ логов и снятие скриншотов
  • Жизненный цикл операции
  • Перехват трафика
  • Работа с GPS

ЗАНЯТИЕ 5: ТЕСТИРОВАНИЕ IOS-ПРИЛОЖЕНИЙ

  • Установка и настройка Xcode
  • Модуль 2: Функционал симулятора
  • Запуск приложения на симуляторе
  • Запуск приложения на реальном устройстве
  • Артефакты тестировании
  • Перехват трафика
  • Работа с GPX-путями

ЗАНЯТИЕ 6: ОРГАНИЗАЦИЯ ПРОЦЕССА ТЕСТИРОВАНИЯ

  • Выбор стратегии тестирования
  • Модуль 3: Гайдлайны для Android и iOS
  • Модуль 4: Разработка
  • Модуль 5: Monkey тестирование
  • Модуль 6: Выкладка
  • Мониторинг и поддержка
  • A/B тестирование

КУРС «АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ»

ЧТО ДАСТ ВАМ КУРС

  • Умение работать с обеими платформами – iOS и Android;
  • Выбирать правильные инструменты, подходящие именно под ваши задачи;
  • Настраивать среду автоматизации с нуля на различных операционных системах;
  • Писать качественные тесты, которые легко поддерживать и расширять;
  • Получите все необходимые знания для старта автоматизации в вашем проекте.

Предусловия:
  • Базовая компьютерная грамотность. Необходимо уметь работать с подключением телефонов с разными ОС к разным компьютерам, командной строкой, графическим и консольным интерфейсами, переменными окружения, различными файловыми системами, логами, IDE, клиент-серверной архитектурой, скриншотами и видео.
  • Знание любого языка программирования на базовом уровне (Java, Python, Ruby или PHP)
  • Понимание основ ООП. Надо понимать, что такое класс, метод класса и поле класса.
  • Основы Java. Надо знать базовые типа данных: int, char. Надо знать, что такое String и List.
  • Надо знать, что такое локатор и как составить просто XPath локатор.

ЗАНЯТИЕ 1: ВВЕДЕНИЕ В JAVA И JUNIT

  • Установка инструментов разработки IDE
  • Создание проекта в IntelliJ IDEA
  • Основы работы с Java - переменные и типы данных, функции
  • Основы работы с Java - классы, методы класса и объекты
  • Объектно-ориентированное программирование - наследование, инкапсуляция, полиморфизм
  • Модификаторы доступа в Java - public, private, protected
  • Поля класса - переменные внутри классов
  • Статические поля и методы - для чего нужны и как использовать
  • Азы работы с тестовым фреймворком JUnit
  • Создание простых тестов на JUnit
  • Статусы теста - success, skip, failed, error
  • Аннотации и описания к тестам
  • Проверки в тестах - assertTrue/assertFalse, assertEquals и так далее
  • Git и Github - выкладываем наши тесты в свой репозиторий

ЗАНЯТИЕ 2: УСТАНОВКА И НАСТРОЙКА ИНСТРУМЕНТОВ

  • Обзор инструментов мобильной автоматизации
  • Программное обеспечение для тренинга
  • Установка инструментов (Windows)
  • Установка инструментов (MacOS)
  • UIAutomatorViewer и Appium Viewer
  • Настойка тестового приложения
  • Packages and Capabilities
  • Создание нового проекта в IDE, подключение библиотек
  • Запуск первого теста на Android

ЗАНЯТИЕ 3: ПЕРВЫЕ ТЕСТЫ НА ANDROID

  • Типы свайпов и организация удобных методов для них
  • Ассерты - пишем свои методы для проверки состояния приложения
  • Повороты экрана и правильная подготовка эмулятора перед стартом тестов
  • Background apps - тестируем работоспособность приложения в фоновом режиме

ЗАНЯТИЕ 4: ПРОДВИНУТЫЕ ТЕСТЫ НА ANDROID

  • Типы свайпов и организация удобных методов для них
  • Ассерты - пишем свои методы для проверки состояния приложения
  • Повороты экрана и правильная подготовка эмулятора перед стартом тестов
  • Background apps - тестируем работоспособность приложения в фоновом режиме

ЗАНЯТИЕ 5: ПАТТЕРНЫ PAGEOBJECT, PAGEFACTORY И ДРУГИЕ

  • Page object model для организации тестов
  • Создание фабрики PageObject для кроссплатформенных тестов
  • Разбор других паттернов для разработки тестов
  • Подготовка окружения для тестов - класс TestBase и TestCore

ЗАНЯТИЕ 6: ПРОСТЫЕ ТЕСТЫ ДЛЯ IOS

  • Установка XCode и iOS-симуляторов
  • Запуск приложения на iOS-симуляторе
  • Appium Viewer для iOS - поиск локаторов
  • Подключение iOS-платформы к тестам
  • Базовые тесты для iOS-приложение

ЗАНЯТИЕ 7: СЛОЖНЫЕ ТЕСТЫ ДЛЯ IOS

  • Разработка кроссплатформенных тестов для iOS и Android
  • Работа с переменными окружения
  • Создание конфиг-класса Platform
  • Универсальные методы для swipe
  • Skip тестов для платформ

ЗАНЯТИЕ 8: MAVEN И CI СИСТЕМЫ НА ПРИМЕРЕ JENKINS

  • Запуск эмулятора из командной строки
  • Запуск Appium Server из командной строки
  • Установка Maven
  • Импорт проекта в IDEA
  • Установка Jenkins
  • Разработка bash-скриптов для Jenkins
  • Запуск тестов на iOS в Jenkins
  • Запуск тестов на Android в Jenkins
  • Добавление тестов в suite

ЗАНЯТИЕ 9: SELENIUM И ТЕСТЫ ДЛЯ WEB НА ПРИМЕРЕ MOBILE WEB ПРИЛОЖЕНИЯ

  • Запуск Selenium и Chrome Driver
  • Подготовка capabilities для Mobile Web
  • Создание базовых классов для Mobile Web приложения
  • Работа с инспектором Chrome DevTools
  • Подготовка тестов к запуску в Jenkins

Сделать запрос на IT-специалиста
ru_RURussian