Core Systems Transformation Solutions
Процесс тестирования в Agile
Оксана Набока
Сентябрь, 26, 2013
Confidential 1
О компании
Exigen Services
слияние с компанией
Return on Intelligence
Июнь 2013
Confidential 2
Об авторе
 Оксана Набока
– более 10 лет в IT: тестирование ПО, управление SCRUM
проектами (> 3х лет), внедрение процессов
– сертифицированный Scrum Master
– опыт проведения различных тренингов (тестирование ПП,
обеспечение качества ПП, Agile/SCRUM, навыки управления
проектами разработки ПП)
Confidential 3
О чем мы НЕ будем говорить
• О деталях процесса тестирования: например, как создавать
тест кейсы (процесс написания тест кейсов), как решать
стандартные проблемы тестирования (например, «что будет,
если не писать тест кейсы») и т.п. - только обзор основных
этапов
• О всех существующих подходах к тестированию - только один
из возможных
• Об автоматизация тестирования в деталях
• О «взаимосвязи процесса обеспечения качества с критериями
успешности agile проектов»
• О всех деталях, сложностях внедрения Agile на практике
• НЕ будет реальных примеров того, как используется JIRA
• НЕ будет всех ответов на всевозможные вопросы….только на
некоторые из них
Confidential 4
О чем мы будем говорить
1. Кратко о процессе
тестирования ПО:
основные цели и задачи,
этапы тестирования
2. Что такое Agile: основные
принципы (XP, SCRUM)
3. Тестирование в SCRUM
проекте: один из
возможных подходов .
4. Вопросы и ответы
• Об Agile и, в частности,
о SCRUM
• О том, как можно
организовать процесс
тестирования в SCRUM
проектах
• О том, какие
особенности могут быть
в процессе
тестирования в Agile
проектах
Confidential 5
Целевая аудитория
• Инженеры по тестированию (тестировщики):
• начинающие и специалисты,
• имеющие опыт работы в Agile проектах и без такого опыта
• Ведущие тестировщики (Test Leads)
• имеющие опыт работы в Agile проектах и без такого опыта
• Разработчики, менеджеры
• имеющие опыт работы в Agile проектах и без такого опыта
Confidential 6
Цели «вебинара» ‘Процесс тестирования в Agile’
• Поделиться информацией о том, что такое Agile - как это может
выглядеть на практике для тестировщиков в первую очередь
• Поделиться опытом работы в SCRUM проектах - как это может
выглядеть на практике для тестировщиков в первую очередь
• Рассказать о том, как может выглядеть процесс тестирования в
SCRUM проекте (один из вариантов)
Confidential 7
Процесс тестирования: основные цели и этапы
• Тестирование - это процесс проходящий сквозь все этапы
разработки ПО
• Основные цели тестирования - проверка соответствия продукта
требованиям, поиск ошибок
• В Agile проектах все тоже самое только в более сжатые сроки,
динамичнее и с учетом особенностей Agile
Confidential 8
Процесс тестирования: основные цели и этапы
• Уровни тестирования: модульное, интеграционное, системное,
приемочное
• Системное тестирование выполняется инженерами по
тестированию («тестировщики», «тестеры», software test
engineers (STEs), testers).
• Различают, как минимум, две роли: Tester («тестер»,
«тестировщик») и Test Lead («тест лид»)
Confidential 9
Процесс тестирования: основные цели и этапы
Планирование и подготовка
Разработка тест-кейсов
Приемка «билда»
Выполнение тест-кейсов и
запись отчетов об ошибках
Верификация ошибок
Сбор метрик и отчеты
Автоматизация тестирования
Confidential 10
Agile: основные принципы
Agile – манифест(www.agilemanifesto.org)
 Люди и взаимодействие
 Работающий продукт
 Сотрудничество с
клиентом
 Готовность к изменениям
процессов и инструментов
исчерпывающей документации
согласования условий
контракта
следования первоначальному
плану
важнее
важнее
важнее
важнее
Confidential 11
Agile: основные принципы
• Наивысшим приоритетом для нас является удовлетворение
потребностей заказчика, благодаря регулярной и ранней
поставке ценного программного обеспечения.
• Изменение требований приветствуется, даже на поздних
стадиях разработки. Agile-процессы позволяют использовать
изменения для обеспечения заказчику конкурентного
преимущества.
• Работающий продукт следует выпускать как можно чаще, с
периодичностью от пары недель до пары месяцев.
• На протяжении всего проекта разработчики и представители
бизнеса должны ежедневно работать вместе.
Confidential 12
Agile: основные принципы
• Над проектом должны работать мотивированные
профессионалы. Чтобы работа была сделана, создайте условия,
обеспечьте поддержку и полностью доверьтесь им.
• Непосредственное общение является наиболее практичным и
эффективным способом обмена информацией как с самой
командой, так и внутри команды.
• Работающий продукт — основной показатель прогресса.
• Инвесторы, разработчики и пользователи должны иметь
возможность
поддерживать постоянный ритм бесконечно. Agile помогает
наладить такой устойчивый процесс разработки.
Confidential 13
Agile: основные принципы
• Постоянное внимание к техническому совершенству и
качеству
проектирования повышает гибкость проекта.
• Простота — искусство минимизации лишней работы — крайне
необходима.
• Самые лучшие требования, архитектурные и технические
решения рождаются у самоорганизующихся команд.
• Команда должна систематически анализировать возможные
способы улучшения эффективности и соответственно
корректировать стиль своей работы.
Confidential 14
Agile: методологии
• XP (Extreme programming)
• Scrum
• Kanban
• Lean software development (Бережливая разработка программного
обеспечения)
• Agile Modeling
• Agile Unified Process (AUP)
• Agile Data Method
• DSDM (Dynamic Systems Development Method)
• Essential Unified Process (EssUP).
• Feature driven development (FDD)
• Getting Real
• OpenUP
• Crystal Clear
• Crystal Methods
• Graphical System Design (GSD)
• Velocity tracking
• Software Development Rhythms
Confidential 15
XP (Extreme programming)
Авторы методологии — Кент Бек, Уорд Каннингем, Мартин Фаулер и другие.
• Короткий цикл обратной связи (Fine scale feedback)
– Разработка через тестирование (Test driven development)
– Игра в планирование (Planning game)
– Заказчик всегда рядом (Whole team, Onsite customer)
– Парное программирование (Pair programming)
• Непрерывный, а не пакетный процесс
– Непрерывная интеграция (Continuous Integration)
– Рефакторинг (Design Improvement, Refactor)
– Частые небольшие релизы (Small Releases)
Confidential 16
XP (Extreme programming)
• Понимание, разделяемое всеми
– Простота (Simple design)
– Метафора системы (System metaphor)
– Коллективное владение кодом (Collective code ownership) или
выбранными шаблонами проектирования (Collective patterns
ownership)
– Стандарт кодирования (Coding standard or Coding conventions)
• Социальная защищенность программиста (Programmer welfare):
– 40-часовая рабочая неделя (Sustainable pace, Forty hour week)
Confidential 17
SCRUM
 В спорте SCRUM - «толкотня; схватка вокруг мяча» в регби
 В IT SCRUM - один из Agile подходов к разработке ПО
 Framework (роли, артефакты, ритуалы)–> нет подробных
рекомендаций, что и как делать, команда знает лучше, как решить
свои проблемы
 ―Framework for XP‖
Confidential 18
SCRUM
Основные характеристики
• Самоопределяющаяся команда
• Продукт разрабатывается в процессе серии итераций (sprints)
• Все требования записываются в виде единого списка (бэклог
продукта -―product backlog‖)
• Инженерные практики не являются частью SCRUM методологии
• Использует простые правила для создания гибкой среды
разработки проектов
Confidential 19
SCRUM (www.mountaingoatsoftware.com/scrum)
Confidential 20
SCRUM – команда, роли
• Product Owner - «владелец
продукта» - > отвечает за видение
продукта и приоритеты, принимает
работу
• Scrum Team - «скрам-команда» - >
отвечает за реализацию продукта
• Scrum Master - «скрам-мастер» ->
устраняет препятствия в работе и
руководит Scrum процессом
Confidential 21
SCRUM – команда, роли
 Размер – 7-9 человек
 Сочетающаяся
 Выделенная
 Сфокусированная на задаче
 Кросс-функциональная
 Самоорганизующаяся Пример возможной SCRUM команды
-> инженеры по тестированию - часть Scrum Team
Confidential 22
SCRUM – процесс разработки, артефакты, ритуалы
• Product backlog
• Sprint backlog
• Burndown charts
-> «бэклог» - требования к продукту -> информация для создания «тест кейсов»
Confidential 23
SCRUM – процесс разработки, артефакты, ритуалы
Confidential 24
SCRUM – процесс разработки, артефакты, ритуалы
Итерация = Sprint («спринт» - «рывок»)
 2-4 недели (максимум 1 календарный месяц)
 Планирование, анализ требований, разработка и тестирование
 В конце спринта – готовая функциональность
-> анализ требований, разработка
тест кейсов, выполнение тест кейсов,
результаты тестирования (статусы,
ошибки), верификация ошибок,
регрессионное тестирование,
автоматизация, и т.д.
Confidential 25
SCRUM – процесс разработки, артефакты, ритуалы
Итерация = Sprint («спринт»)
 Никаких изменений в течение спринта
 Длительность спринта не рекомендуется менять в течение проекта
 Спринт может быть отменен (PO)
 Emergency Procedure (выход из «аварийныхнепредвиденных»
ситуаций)
• попытайтесь сделать по-другому
• воспользуйтесь помощью кого-либо вне команды
• уменьшите «скоуп» спринта
• прервите спринт (Sprint Abnormal Termination)
Confidential 26
SCRUM – процесс разработки, артефакты, ритуалы
Планирование спринта (Sprint planning)
– Sprint backlog (список задач по каждой User Story: задачи для
разработчиков, тестировщиков и т.д.)
– Sprint Goal - цель спринта
– участвуют команда, scrum master, product owner
– анализ требований (user stories), декомпозиция
на задачи, оценка, фиксирование «скоупа» спринта
-> задачи по тестированию на спринт (объем тестирования) – это
часть «скоупа» спринта
Confidential 27
SCRUM – процесс разработки, артефакты, ритуалы
Обзор спринта (Sprint review)
– демонстрация результатов спринта: работающий продукт
новая функциональность, реализованная в спринте
полностью законченные User Stories
- команда демонстрирует результаты
- Product Owner принимает результаты
-> тестировщики заранее выполняют приемочные
тесты, определенные PO в начале спринта и
помогают в создании сценариев для демонстрации
результатов и в проведении ревью
- > разработчики создают и выполняют unit tests (возможна практика -
ревью тест кейсов, созданных тестировщиками и выполнение самых
важных)
Confidential 28
SCRUM – процесс разработки, артефакты, ритуалы
Спринт ретроспектива (Sprint retrospective)
– После каждого спринта (после Sprint review)
– Участвует вся команда, чтобы решить
• Что было хорошо
• Что можно улучшить
• Принимается решение о необходимости изменений в процессе для
улучшения производительности команды
-> возможные улучшения в процессе тестирования
Confidential 29
SCRUM – процесс разработки, артефакты, ритуалы
Ежедневный скрам-митинг (Daily scrum meeting) -
– поделиться информацией с коллегами, взять на себя обязательства
Что сделано вчера?
Что будет сделано сегодня?
С какими проблемами столкнулся?
– не предназначен для решения проблем (action item log)
– могут быть дополнительные митинги с product owner,
если онона находится не с вами и не в одной временной зоне.
+ ежедневная активность - обновление оставшегося
времени по задаче (Remaining time)
Confidential 30
SCRUM – процесс разработки
Confidential 31
Спасибо!
Вопросы?

Agile Testing Process

  • 1.
    Core Systems TransformationSolutions Процесс тестирования в Agile Оксана Набока Сентябрь, 26, 2013
  • 2.
    Confidential 1 О компании ExigenServices слияние с компанией Return on Intelligence Июнь 2013
  • 3.
    Confidential 2 Об авторе Оксана Набока – более 10 лет в IT: тестирование ПО, управление SCRUM проектами (> 3х лет), внедрение процессов – сертифицированный Scrum Master – опыт проведения различных тренингов (тестирование ПП, обеспечение качества ПП, Agile/SCRUM, навыки управления проектами разработки ПП)
  • 4.
    Confidential 3 О чеммы НЕ будем говорить • О деталях процесса тестирования: например, как создавать тест кейсы (процесс написания тест кейсов), как решать стандартные проблемы тестирования (например, «что будет, если не писать тест кейсы») и т.п. - только обзор основных этапов • О всех существующих подходах к тестированию - только один из возможных • Об автоматизация тестирования в деталях • О «взаимосвязи процесса обеспечения качества с критериями успешности agile проектов» • О всех деталях, сложностях внедрения Agile на практике • НЕ будет реальных примеров того, как используется JIRA • НЕ будет всех ответов на всевозможные вопросы….только на некоторые из них
  • 5.
    Confidential 4 О чеммы будем говорить 1. Кратко о процессе тестирования ПО: основные цели и задачи, этапы тестирования 2. Что такое Agile: основные принципы (XP, SCRUM) 3. Тестирование в SCRUM проекте: один из возможных подходов . 4. Вопросы и ответы • Об Agile и, в частности, о SCRUM • О том, как можно организовать процесс тестирования в SCRUM проектах • О том, какие особенности могут быть в процессе тестирования в Agile проектах
  • 6.
    Confidential 5 Целевая аудитория •Инженеры по тестированию (тестировщики): • начинающие и специалисты, • имеющие опыт работы в Agile проектах и без такого опыта • Ведущие тестировщики (Test Leads) • имеющие опыт работы в Agile проектах и без такого опыта • Разработчики, менеджеры • имеющие опыт работы в Agile проектах и без такого опыта
  • 7.
    Confidential 6 Цели «вебинара»‘Процесс тестирования в Agile’ • Поделиться информацией о том, что такое Agile - как это может выглядеть на практике для тестировщиков в первую очередь • Поделиться опытом работы в SCRUM проектах - как это может выглядеть на практике для тестировщиков в первую очередь • Рассказать о том, как может выглядеть процесс тестирования в SCRUM проекте (один из вариантов)
  • 8.
    Confidential 7 Процесс тестирования:основные цели и этапы • Тестирование - это процесс проходящий сквозь все этапы разработки ПО • Основные цели тестирования - проверка соответствия продукта требованиям, поиск ошибок • В Agile проектах все тоже самое только в более сжатые сроки, динамичнее и с учетом особенностей Agile
  • 9.
    Confidential 8 Процесс тестирования:основные цели и этапы • Уровни тестирования: модульное, интеграционное, системное, приемочное • Системное тестирование выполняется инженерами по тестированию («тестировщики», «тестеры», software test engineers (STEs), testers). • Различают, как минимум, две роли: Tester («тестер», «тестировщик») и Test Lead («тест лид»)
  • 10.
    Confidential 9 Процесс тестирования:основные цели и этапы Планирование и подготовка Разработка тест-кейсов Приемка «билда» Выполнение тест-кейсов и запись отчетов об ошибках Верификация ошибок Сбор метрик и отчеты Автоматизация тестирования
  • 11.
    Confidential 10 Agile: основныепринципы Agile – манифест(www.agilemanifesto.org)  Люди и взаимодействие  Работающий продукт  Сотрудничество с клиентом  Готовность к изменениям процессов и инструментов исчерпывающей документации согласования условий контракта следования первоначальному плану важнее важнее важнее важнее
  • 12.
    Confidential 11 Agile: основныепринципы • Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения. • Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества. • Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев. • На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.
  • 13.
    Confidential 12 Agile: основныепринципы • Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им. • Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды. • Работающий продукт — основной показатель прогресса. • Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.
  • 14.
    Confidential 13 Agile: основныепринципы • Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта. • Простота — искусство минимизации лишней работы — крайне необходима. • Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд. • Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.
  • 15.
    Confidential 14 Agile: методологии •XP (Extreme programming) • Scrum • Kanban • Lean software development (Бережливая разработка программного обеспечения) • Agile Modeling • Agile Unified Process (AUP) • Agile Data Method • DSDM (Dynamic Systems Development Method) • Essential Unified Process (EssUP). • Feature driven development (FDD) • Getting Real • OpenUP • Crystal Clear • Crystal Methods • Graphical System Design (GSD) • Velocity tracking • Software Development Rhythms
  • 16.
    Confidential 15 XP (Extremeprogramming) Авторы методологии — Кент Бек, Уорд Каннингем, Мартин Фаулер и другие. • Короткий цикл обратной связи (Fine scale feedback) – Разработка через тестирование (Test driven development) – Игра в планирование (Planning game) – Заказчик всегда рядом (Whole team, Onsite customer) – Парное программирование (Pair programming) • Непрерывный, а не пакетный процесс – Непрерывная интеграция (Continuous Integration) – Рефакторинг (Design Improvement, Refactor) – Частые небольшие релизы (Small Releases)
  • 17.
    Confidential 16 XP (Extremeprogramming) • Понимание, разделяемое всеми – Простота (Simple design) – Метафора системы (System metaphor) – Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership) – Стандарт кодирования (Coding standard or Coding conventions) • Социальная защищенность программиста (Programmer welfare): – 40-часовая рабочая неделя (Sustainable pace, Forty hour week)
  • 18.
    Confidential 17 SCRUM  Вспорте SCRUM - «толкотня; схватка вокруг мяча» в регби  В IT SCRUM - один из Agile подходов к разработке ПО  Framework (роли, артефакты, ритуалы)–> нет подробных рекомендаций, что и как делать, команда знает лучше, как решить свои проблемы  ―Framework for XP‖
  • 19.
    Confidential 18 SCRUM Основные характеристики •Самоопределяющаяся команда • Продукт разрабатывается в процессе серии итераций (sprints) • Все требования записываются в виде единого списка (бэклог продукта -―product backlog‖) • Инженерные практики не являются частью SCRUM методологии • Использует простые правила для создания гибкой среды разработки проектов
  • 20.
  • 21.
    Confidential 20 SCRUM –команда, роли • Product Owner - «владелец продукта» - > отвечает за видение продукта и приоритеты, принимает работу • Scrum Team - «скрам-команда» - > отвечает за реализацию продукта • Scrum Master - «скрам-мастер» -> устраняет препятствия в работе и руководит Scrum процессом
  • 22.
    Confidential 21 SCRUM –команда, роли  Размер – 7-9 человек  Сочетающаяся  Выделенная  Сфокусированная на задаче  Кросс-функциональная  Самоорганизующаяся Пример возможной SCRUM команды -> инженеры по тестированию - часть Scrum Team
  • 23.
    Confidential 22 SCRUM –процесс разработки, артефакты, ритуалы • Product backlog • Sprint backlog • Burndown charts -> «бэклог» - требования к продукту -> информация для создания «тест кейсов»
  • 24.
    Confidential 23 SCRUM –процесс разработки, артефакты, ритуалы
  • 25.
    Confidential 24 SCRUM –процесс разработки, артефакты, ритуалы Итерация = Sprint («спринт» - «рывок»)  2-4 недели (максимум 1 календарный месяц)  Планирование, анализ требований, разработка и тестирование  В конце спринта – готовая функциональность -> анализ требований, разработка тест кейсов, выполнение тест кейсов, результаты тестирования (статусы, ошибки), верификация ошибок, регрессионное тестирование, автоматизация, и т.д.
  • 26.
    Confidential 25 SCRUM –процесс разработки, артефакты, ритуалы Итерация = Sprint («спринт»)  Никаких изменений в течение спринта  Длительность спринта не рекомендуется менять в течение проекта  Спринт может быть отменен (PO)  Emergency Procedure (выход из «аварийныхнепредвиденных» ситуаций) • попытайтесь сделать по-другому • воспользуйтесь помощью кого-либо вне команды • уменьшите «скоуп» спринта • прервите спринт (Sprint Abnormal Termination)
  • 27.
    Confidential 26 SCRUM –процесс разработки, артефакты, ритуалы Планирование спринта (Sprint planning) – Sprint backlog (список задач по каждой User Story: задачи для разработчиков, тестировщиков и т.д.) – Sprint Goal - цель спринта – участвуют команда, scrum master, product owner – анализ требований (user stories), декомпозиция на задачи, оценка, фиксирование «скоупа» спринта -> задачи по тестированию на спринт (объем тестирования) – это часть «скоупа» спринта
  • 28.
    Confidential 27 SCRUM –процесс разработки, артефакты, ритуалы Обзор спринта (Sprint review) – демонстрация результатов спринта: работающий продукт новая функциональность, реализованная в спринте полностью законченные User Stories - команда демонстрирует результаты - Product Owner принимает результаты -> тестировщики заранее выполняют приемочные тесты, определенные PO в начале спринта и помогают в создании сценариев для демонстрации результатов и в проведении ревью - > разработчики создают и выполняют unit tests (возможна практика - ревью тест кейсов, созданных тестировщиками и выполнение самых важных)
  • 29.
    Confidential 28 SCRUM –процесс разработки, артефакты, ритуалы Спринт ретроспектива (Sprint retrospective) – После каждого спринта (после Sprint review) – Участвует вся команда, чтобы решить • Что было хорошо • Что можно улучшить • Принимается решение о необходимости изменений в процессе для улучшения производительности команды -> возможные улучшения в процессе тестирования
  • 30.
    Confidential 29 SCRUM –процесс разработки, артефакты, ритуалы Ежедневный скрам-митинг (Daily scrum meeting) - – поделиться информацией с коллегами, взять на себя обязательства Что сделано вчера? Что будет сделано сегодня? С какими проблемами столкнулся? – не предназначен для решения проблем (action item log) – могут быть дополнительные митинги с product owner, если онона находится не с вами и не в одной временной зоне. + ежедневная активность - обновление оставшегося времени по задаче (Remaining time)
  • 31.
    Confidential 30 SCRUM –процесс разработки
  • 32.