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 (Extreme programming)
Авторы методологии — Кент Бек, Уорд Каннингем, Мартин Фаулер и другие.
• Короткий цикл обратной связи (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 (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)
18. Confidential 17
SCRUM
В спорте SCRUM - «толкотня; схватка вокруг мяча» в регби
В IT SCRUM - один из Agile подходов к разработке ПО
Framework (роли, артефакты, ритуалы)–> нет подробных
рекомендаций, что и как делать, команда знает лучше, как решить
свои проблемы
―Framework for XP‖
19. Confidential 18
SCRUM
Основные характеристики
• Самоопределяющаяся команда
• Продукт разрабатывается в процессе серии итераций (sprints)
• Все требования записываются в виде единого списка (бэклог
продукта -―product backlog‖)
• Инженерные практики не являются частью SCRUM методологии
• Использует простые правила для создания гибкой среды
разработки проектов
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
-> «бэклог» - требования к продукту -> информация для создания «тест кейсов»
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)