Тестирование в Гибких проектах - Agile Testing

Целевая аудитория
Разработчики, тестировщики, менеджеры проектов, лидеры команд.

Описание тренинга
Agile методологии заставили инженеров всерьез задуматься о качестве выпускаемого продукта. Главной причиной этому есть сжатые сроки и требование к непрерывной поставке рабочей версии системы. Тактика водопада или мини-водопадов перестала давать требуемой эффективности. Ведь чем дольше мы разрабатываем и тестируем систему, тем больше риски, что этот продукт уже никому не будет нужен. В такой динамичной среде следует всерьез задуматься о тестировании.

Классическое тестирование в динамичной среде работает с минимальной эффективность и пора искать новые подходы, которые смогут повысить результативность команды и при этом выпускать продукт требуемого качества в срок. Многие, кто говорит об Agile разработке, пропускают тестирование или говорят о том, что нужно использовать автоматизацию и заставлять разработчиков писать автотесты. Это правда, но лишь отчасти. Инженер по тестированию в Agile команде может принести много пользы, но это требует определенной подготовки и навыков. Использование старых артефактов и подходов к тестированию может погубить проект или превратить его в бюрократическую машину, что приведет к старой модели мини-водопадов. Так же не стоит забывать, что Quality Assurance – это ответственность всей команды, а не отдельно-взятого человека.

Многие говорят, что "Testing Is Dead", но мы с этим не согласны и считаем, что это очередной маркетинговый ход. Тестирование не умерло, оно эволюционировало в новую форму, информацию о которой мы и хотим вам донести на тренинге.
Детальная программа

День I

Модуль 1
Модуль 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 человек
  • Подведение итогов первого дня
  • Советы и рекомендации тренера

День II

Модуль 7
  • 10 принципов Agile тестировщика
  • Одна итерация в жизни Scrum тестировщика
  • Enterprise Scrum и проблемы с тестированием зависимостей
    • Обязательные митинги для тестировщиков
    • Варианты синхронизации с членами команды
    • Рекомендуемые документы для работы
  • Частые проблемы организации процесса тестирования в больших командах 
Модуль 8
  • Цель от бизнеса: делать поставку чаще
  • Правила методологии Kanban
  • Что ждет тестировщиков в еще более динамичном процессе?
  • Больше дисциплины, культуры разработки и автоматизации в команде
  • Определение частых застоев(bottlenecks) в процессе разработки
  • Как избежать и решить застои?
  • Как работать с WIP ограничениями?
Модуль 9
  • Практика: Имитация процесса разработки в динамической среде
  • Практика: Серия Debrief митингов
  • Практика: Подготовка отчета о тестовой сессии
Модуль 10
  • Процесс учета задач и конфигурация специализируемых систем
  • Документация или как не превратиться в бардак или бюрократизированную машину?
  • Как переходить к Agile разработке?
  • Стоит ли переходить на Agile разработку?
  • Agile анархисты и их истории
  • Частые проблемы, с которыми может столкнуться тестировщик в новой среде
  • Подведение итогов второго дня
  • Рекомендации и советы тренера


Продолжительность
16 часов (2 дня)