Ближайшая дата начала курса

тренер: Баранцев Алексей

Можно ли представить себе хорошего линуксового системного администратора, который не знает общую теорию операционных систем и сетей, не подозревает о существовании Windows и MacOS, не умеет пользоваться для настройки системы консолью так же хорошо, как графической оболочкой? Можно ли считать хорошим инженером-строителем человека, который не владеет сопроматом, не знает про современные строительные материалы и особенности их применения, даже если на текущем объекте строительства они не используются? Можно ли признать хорошим актёром того, кто день за днём играет одну и ту же роль, не знает о современных тенденциях в театральном искусстве и не пытается попробовать себя в других амплуа?

Хороший специалист должен обладать достаточно широкими знаниями. Да, он глубоко изучает какую-то одну тему, специализируется в каком-то направлении, но при этом он должен представлять себе общую картину своей профессиональной области. Если он не будет это делать -- мир уйдёт вперёд, его узкая тема окажется устаревшей и невостребованной, а он ничего другого не знает и не умеет.

Умение создавать автоматизированные тесты предполагает владение специализированными инструментами, которые так и называются "инструменты для автоматизации тестирования". Но знания хорошего специалиста должны охватывать всю область автоматизации. Какие вообще инструменты бывают? Для чего они предназначены? В какой ситуации следует (или наоборот не следует) использовать тот или иной инструмент? Как выбрать наиболее подходящий для решения задачи инструмент среди множества похожих?

И конечно же надо уметь делать хорошие автотесты. Да, сначала надо научиться понимать, чем "хорошие" автотесты отличаются от "плохих". А потом -- научиться делать "хорошие". Эти правила являются общими, независимыми от конкретного используемого инструмента.

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

Целевая аудитория:

  • инженеры; для менеджеров у нас есть учебный курс Организация автоматизированного тестирования,
  • начинающие специалисты; тем, кто не умеет программировать, может быть не всё будет понятно во второй половине курса, но первая даст достаточно хорошее общее представление об области автоматизации, и вы сможете более осознанно выбрать, в каком направлении продолжить углублённое изучение,
  • практикующие автоматизаторы: расширение кругозора, раскладывание имеющихся практических знаний по полочкам, повышение квалификации

Цели и задачи курса:

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

Требования к участникам:

  • умение достаточно хорошо обращаться с операционной системой (как минимум умение пользоваться консолью, устанавливать значения системных переменных окружения, устанавливать и удалять программы),
  • понимание общих принципов тестирования,
  • для некоторых тем курса требуется знание какого-либо языка программирования (те, кто не знает, могут эти темы пропустить)

1. Теория

Что такое "автоматизированный тест"?

Как автотест взаимодействует с тестируемой системой?

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

Жизненный цикл автотестов

Морально-физическая подготовка

Поддержка руководства и коллег

Реалистичные ожидания

2. Взаимодействие автотестов с тестируемой системой

Интерфейсы (API, CLI, GUI и другие)

Особенности работы с мобильными приложениями

"Удалённое" тестирование

Уровни взаимодействия (модульный, интеграционный, cистемный)

Комбинирование способов взаимодействия

Мульти-технологичные приложения

Язык написания тестов

3. Инструменты: классификация и обзор

Драйверы и надстройки

  • Синаксический сахар
  • Повышение уровня абстрактности
  • Унификаторы
  • Валидаторы
  • Фреймворки

xUnit: есть ли альтернативы?

  • Model-based testing
  • Мутационное тестирование
  • Pex

Супер-фреймворки

  • Keyword-driven testing
  • Behavior-driven testing
  • Model-based testing

Комбайны

Инфраструктура

  • Тестовая лаборатория
  • Эмуляторы смежных систем
  • Сервер непрерывной интеграции
  • Отчёты и оповещения

4. Правила разработки автотестов

Подготовка

  • Выбор инструментов
  • Пилотный проект
  • Выбор сценариев для автоматизации
  • Чем отличается тест-кейс от тестового сценария?
  • Рекордеры: добро или зло?

Разработка

  • Критерии качества автотестов
  • Фикстуры и сценарии
  • Тестовые данные
  • Формирование архитектуры тестов
  • Шаблоны проектирования тестов
  • "Самодельный фреймворк"

Эксплуатация

  • Анализ сбоев
  • Протоколирование
  • Видеозапись
  • Отладка тестов
  • Игнорирование тестов
  • Повышение стабильности
  • Рефакторинг

Организация тестов

  • Группировка тестов
  • Упорядочение и зависимости
  • Документирование автотестов

5. Нюансы

Автоматизация регрессионных тестов

Одноразовая автоматизация

Правило одной проверки

Простые и сложные сценарии

Ошибки первого и второго рода

Масштабируемость

Тестопригодность

Ближайшая дата начала курса

Go to top