Целевая аудитория
Разработчики, тестировщики, менеджеры проектов, лидеры команд.
Описание тренинга
Agile методологии заставили инженеров всерьез задуматься о качестве выпускаемого продукта. Главной причиной этому есть сжатые сроки и требование к непрерывной поставке рабочей версии системы. Тактика водопада или мини-водопадов перестала давать требуемой эффективности. Ведь чем дольше мы разрабатываем и тестируем систему, тем больше риски, что этот продукт уже никому не будет нужен. В такой динамичной среде следует всерьез задуматься о тестировании.
Классическое тестирование в динамичной среде работает с минимальной эффективность и пора искать новые подходы, которые смогут повысить результативность команды и при этом выпускать продукт требуемого качества в срок. Многие, кто говорит об Agile разработке, пропускают тестирование или говорят о том, что нужно использовать автоматизацию и заставлять разработчиков писать автотесты. Это правда, но лишь отчасти. Инженер по тестированию в Agile команде может принести много пользы, но это требует определенной подготовки и навыков. Использование старых артефактов и подходов к тестированию может погубить проект или превратить его в бюрократическую машину, что приведет к старой модели мини-водопадов. Так же не стоит забывать, что Quality Assurance – это ответственность всей команды, а не отдельно-взятого человека.
Многие говорят, что Testing Is Dead, но мы с этим не согласны и считаем, что это очередной маркетинговый ход. Тестирование не умерло, оно эволюционировало в новую форму, информацию о которой мы и хотим вам донести на тренинге.
Детальная программа
День 1
Модуль 1
- Основы Agile Software Development
- Agile Manifesto
- Agile Principles
- Основные заблуждение в Agile философии
- Альтернативные Manifesto
Модуль 2
- Первые фазы проекта
- Идея
- Lean Canvas/Бизнес модель
- User Stories Workshop
- User Personas
- Specification by Example
- Story Mapping
- Minimal Working Product
- Acceptance Criteria
- Как тестировщики могут помочь в этом процессе?
Модуль 3
- Работа по методологии Scrum
- Что такое Scrum?
- Подготовка Product Backlog
- Sprint 0
- Sprint Backlog
- Этап планирования
- Что такое Story Point?
- Planning Poker
- Иерархия задач
- Оценки задач со стороны тестирования
- Почему Testability это важно и как этого добиваться?
- Практика: Эмитация Planning Poker для оценки в Story Points
- Что такое Acceptance Testing?
- Приемочный сценарии
- Gherkin синтаксис
- Практика: Написание приемочных тестов на подготовленные User Stories
- Стратегия тестирования продукта
- Нужен ли тест план?
- Что такое тестовая стратегия?
- SFDPOT
- Функциональная карта системы
- Практики тест дизайна
- Pairwise, Tractability и прочие матрицы
- Mockups
Модуль 4
- Автоматизация
- Классический подход к автоматизации в виде перевернутой пирамиды
- Тестирование по подходу правильной пирамиды
- Непрерывная интеграция
- Сборка и установка проекта
- Тестовое Покрытие
- Использование автоматизации для облегчения рутинных задач
- Должен ли тестировщик заниматься только автоматизацией на 100%?
Модуль 5
- Acceptance Test Driven Development
- Взаимодействие тестировщиков, аналитиков и программистов на ранних этапах разработки
- 3 Amigo Meetings
- Definition Of Done
- Что может делать тестировщик, когда тестировать нечего?
- Тщательный анализ документации
- Подготовка тестовых данных
- Создание Step Definitions для автоматизации
- Помните о ваших пользователях
- Демонстрация написания Acceptance Test на примере Cucumber-JVM
- Практика: Создание функциональной карты приложения
- Демонстрация программирования регрессионных тестов
- Тестирование
- Что такое тестирование?
- Что такое исследование?
- Что такое Exploratory Testing?
- Тестовые квадранты и их заблуждение
- Нахождение баланса между скриптовым и ad-hoc тестированием
- Отчетность и документация
- Нужны ли тест менеджеры?
- Session Based Test Management
- Взаимодействие тестировщиков и программистов на завершающих этапах разработки
- Командный подход к тестированию
Модуль 6
- Еще раз о критерии готовности – Definition Of Done
- Демо и какая роль тестировщика в нем
- Ретроспектива и о чем должен не забывать тестировщик
- Готовимся к релизу и кто за него должен отвечать?
- User Acceptance Testing
- Как лучше проводить Performance Testing?
- Когда начинать готовиться к Load Testing?
- Стоит ли тестировать Security?
- Pre-production
- Production
- Схема работы в Scrum командах 5-9 человек
- Подведение итогов первого дня
- Советы и рекомендации тренера
День 2
Модуль 7
- 10 принципов Agile тестировщика
- Одна итерация в жизни Scrum тестировщика
- Enterprise Scrum и проблемы с тестированием зависимостей
- Обязательные митинги для тестировщиков
- Варианты синхронизации с членами команды
- Рекомендуемые документы для работы
- Частые проблемы организации процесса тестирования в больших командах
Модуль 8
- Цель от бизнеса: делать поставку чаще
- Правила методологии Kanban
- Что ждет тестировщиков в еще более динамичном процессе?
- Больше дисциплины, культуры разработки и автоматизации в команде
- Определение частых застоев (bottlenecks) в процессе разработки
- Как избежать и решить застои?
- Как работать с WIP ограничениями?
Модуль 9
- Практика: Имитация процесса разработки в динамической среде
- Практика: Серия Debrief митингов
- Практика: Подготовка отчета о тестовой сессии
Модуль 10
- Процесс учета задач и конфигурация специализируемых систем
- Документация или как не превратиться в бардак или бюрократизированную машину?
- Как переходить к Agile разработке?
- Стоит ли переходить на Agile разработку?
- Agile анархисты и их истории
- Частые проблемы, с которыми может столкнуться тестировщик в новой среде
- Подведение итогов второго дня
- Рекомендации и советы тренера