Всё про автоматизацию тестирования
тренер: Баранцев Алексей
Продолжительность курса: от 8 до 32 часов
Предварительная программа состоит из восьми блоков, четыре “управленческих” (помечены буквой У) и четыре “инженерных” (помечены буквой И).
Каждый блок расчитан ориентировочно на 2-4 часа, включая выполнение упражнений. Длительность зависит от глубины изложения материала и количества упражнений.
Окончательную программу можно сформировать из этих блоков, указав для каждого из них “короткий” (поверхностный) или “длинный” (более глубокий) вариант изложения материала, и исключив нежелательные блоки.
(У) Блок 1, подготовка к внедрению автоматизации тестирования (2-4 часа)
-
Введение. Терминология автоматизированного тестирования. Ттестирование ли это вообще, в чём отличие автоматизированного от автоматического, как этот вид тестирования связан с ручным тестированием.
-
Различные цели автоматизированного тестирования. Скорость, покрытие, снижение затрат. Как поставить правильную цель.
-
Различные стратегии достижения поставленной цели. Стратегическое планирование автоматизации в контексте других работ по тестированию и в общем контексте проекта.
-
Тактическое планирование. Выбор тестов для автоматизации при использовании разных стратегий.
(И) Блок 2, понимание технических возможностей и ограничений автотестов (2-4 часа)
-
Как устроены автотесты. Как они взаимодействуют с тестируемой системой. Ключевые элементы стека автотестирования.
-
Типы интерфейсов взаимодействия с тестируемой системой и драйверы интерфейсов. Комбинированное использование различных интерфейсов в автотестах.
-
Тестовые фреймворки, их возможности. Разновидности тестовых фреймворков.
-
Стили написания тестов (язык программирования, Behavior Driven, Keyword Driven, Model Based Testing).
(И) Блок 3: инструменты автотестирования, классификация, оценка, выбор (2-4 часа)
-
Компоненты, из которых состоят инструменты автотестирования.
-
Комбинированные инструменты. Как выделить и распознать в них отдельные компоненты. Общая схема анализа инструментов.
-
Сравнение инструментов. Что можно сравнивать, а что нельзя. Функциональные и нефункциональные характеристики.
-
Оценка инструментов. Пилотный проект. Выбор инструмента по результатам пилотного проекта.
(И) Блок 4: тест-дизайн для автоматизации (2-4 часа)
-
Автоматизация тестов для новой функциональности.
-
Автоматизация регрессионных тестов.
-
Модульное тестирование (unit testing) и тестирование на более высоких уровнях. Использование симуляторов.
-
Особенности подготовки сценариев для автотестов по сравнению с ручным тестированием.
-
Особенности подготовки тестовых данных.
-
Способы выполнения проверок в тестах.
(И) Блок 5: тестовый стенд (2-4 часа)
-
Развёртывание тестируемого приложения и тестов. Сервер непрерывной интеграции. Виртуализация и контейнерные технологии.
-
Отчёты о результатах выполнения тестов.
-
Оптимизация времени выполнения тестов.
-
Сбои в работе тестов. Диагностика причин.
-
Нестабильность в работе тестов и способы борьбы с ней.
(У) Блок 6: поддержка и развитие автоматизированного тестирования (2-4 часа)
-
Оперативное планирование. Оценка сложности работ. Оценка сроков. Контроль за выполнением и оценка успешности выполнения работ.
-
Выбор тестов для автоматизации. Определение приоритетов.
-
Превентивная разработка автотестов: что можно успеть сделать до готовности тестируемой системы.
-
Устранение технического долга в автотестах.
(У) Блок 7: управление командой автоматизаторов (2-4 часа)
-
Роли участников процесса автоматизации тестирования. Проектирование тестов, кодирование тестов, архитектурный дизайн тестов, эксплуатация тестов, администрирование тестового стенда, управление процессом.
-
Разновидности команд: без выделения специальных людей, занятых исключительно автоматизацией тестирования, выделенные специалисты в составе проектной команды, автоматизация тестирования как сервис.
-
Организация взаимодействия внутри команды, информационные потоки.
-
Подбор и найм персонала. Обучение сотрудников, повышение квалификации.
(У) Блок 8: взаимодействие с руководством и коллегами (2-4 часа)
-
Управление ожиданиями руководства и заказчика относительно автоматизации тестирования.
-
Согласование с руководством целей, стратегии, стратегического плана.
-
Согласование действий с ручным тестированием. Согласование действий с разработчиками, занимающимися модульным тестированием.
-
Привлечение помощи со стороны разработчиков.
-
Разрешение конфликтов, связанных прямо или косвенно с автотестами, их разработкой или эксплуатацией.
-
Формирование у руководства и коллег правильного восприятия работ, связанных с автоматизацией тестирования. Пропаганда и евангелизм. Повышение прозрачности.