Upload
devday
View
663
Download
4
Embed Size (px)
DESCRIPTION
В свое время, когда мы только запускали API, всё было скромно: небольшая команда, комфортные требования, да и бизнес не требовал от нас подвигов. Но всё коренным образом изменилось, когда API разрослось до 30 серверных компонент в трёх датацентрах, а бизнес «порекомендовал» успевать с ответом в 200 мс и выкатывать релизы раз в неделю. На фоне роста проекта, росла команда и остро встали вопросы «как экологично встроить тестирование в большую scrum-команду большого проекта». Мы сфокусировались на трёх важных моментах: Планирование Большая команда → «большое» планирование. Тестирование планируется отдельно или вместе с разработчиками? Нужна ли выделенная роль крайнего за тестирование на проекте? Релиз Нужен ли крайний за релиз и кто отвечает за интеграционные зависимости? Когда надо остановиться и заморозить фичи? Кто и как мониторит продукт после релиза? Автоматизация — наше всё ;) Как не «захлебнуться» в регрессии: unit-тесты, json-схема. Как правильно выбрать фичи для автоматизации и как встроить автоматизацию в процесс тестирования.
Citation preview
Agile-тестирование по версии
API 2ГИС
Настасья «Горыныч» Огаркова
Ведущий тестировщик Стажёр
2 года в
Справочное API 2ГИС • Почти 1000 партнёров (Mail.ru,
2GIS.Online…);
• 3 ДЦ: Новосибирск, Москва, Дронтен;
• 700 rps на фронтэнд.
Как встроить тестирование в Scrum-команду?
Идеальный Scrum
Планирование Демо
Реальный Scrum
Планирование
Test
Реальный Scrum
Планирование
1d
Test
Работающий Scrum
sp1 sp2
sp1 (test)
Работающий Scrum / Планирование
sp1 sp2
sp1 (test)
6 часов планируемся планировались
Планирование / Решение
Свой человек
Планирование / Решение
Ведущий тестировщик
Планирование / Ведущий тестировщик
1. Планирование разработчиков
Планирование / Ведущий тестировщик
1. Планирование разработчиков 2. Согласование ребований, сроков
Планирование / Ведущий тестировщик
1. Планирование разработчиков 2. Согласование ребований, сроков 3. Планирование тестировщиков
Планирование / Ведущий тестировщик
1. Планирование разработчиков 2. Согласование ребований, сроков 3. Планирование тестировщиков 4. Взаимодействие с другими командами
Планирование / Решение
Большие уши
Планирование / Большие уши
1. Планирование разработчиков в комнате
Планирование / Большие уши
1. Планирование разработчиков в комнате
2. Тестируем и слушаем
Работающий Scrum / Планирование
sp1 sp2
sp1 (test)
Работающий Scrum / Планирование
sp1 sp2
sp1 (test)
Планирование / Профит
2.5h VS 6h
Работающий Scrum
sp1 sp2
sp1 (test)
sp1 sp2
sp1 (test)
2-3 sp
Работающий Scrum / Тестирование
3 дня регрессионного тестирования
Тестирование / Решение
Unit Tests
Тестирование / Решение
Unit Tests
Тестирование / Unit Tests
1. Наколбасил? – Запусти Unit Tests!
Тестирование / Unit Tests
1. Наколбасил? – Запусти Unit Tests! 2. Взял задачу в тестирование? – Запусти Unit Tests!
Тестирование / Unit Tests
1. Наколбасил? → Запусти Unit Tests! 2. Взял задачу в тестирование? → Запусти Unit Tests!
3. Регрессируешь? → Запусти Unit Tests!
Тестирование / Решение
Functional AutoTests
Тестирование / Решение
Functional AutoTests
Тестирование / Functional AutoTests
1. Тесты на новый функционал
Тестирование / Functional AutoTests
1. Тесты на новый функционал 2. Каждый спринт пишем тесты
Тестирование / Functional AutoTests
1. Тесты на новый функционал 2. Каждый спринт пишем тесты 3. Тесты на найденные ошибки
Тестирование / Решение
JSON Schema http://habrahabr.ru/company/2gis/blog/186768/
Тестирование / Решение
Автодокументация автотестов
PHPDoc
Тестирование / Автодокументация
Формат описания
• Заголовок (идея тест-кейса); • Шаги воспроизведения; • Проверки (ожидаемый результат); • Дополнительная информация (автор, дата).
/** * StationSearch. Единовременное использование
*project и where * * 1. Получаем некорретное значение с помощью метода
*getIncorrectValues и запоминаем его * 2. Параметру where присваиваем некорректное * значение из п.1 * 3. Делаем запрос * 4. Проверяем значения полей, содержащихся в ответе: * a. версия API равна указанной в запросе; * b. код отевета = 400; * * @author Ogarkova Anastasia <[email protected]> * @since 26.03.2012 */
Тестирование / Резюме
• Unit Tests; • Functional AutoTests; • Автоматизация тестирования документации; • Автоматизация внутренней документации.
Работающий Scrum / Тестирование
sp1 sp2
sp1 (test)
2-3 sp
sp1 sp2
sp1 (test)
Работающий Scrum / Тестирование
Тестирование / Профит
3h VS 3d регрессионного тестирования
Работающий Scrum
sp1 sp2
sp1 (test)
1 → 3 дата-центра 2 → 11 нод 3 часа приёмки →
Работающий Scrum / Релиз
sp1 sp2
sp1 (test)
15 часов — приёмка релиза
sp1 sp2
sp1 (test)
2-3 sp
Приёмка релиза / Решение
Smoke AutoTests
Приёмка релиза / Решение
Релиз-тестировщик
Приёмка релиза / Релиз-тестировщик
1. Подготовка релиза
Приёмка релиза / Релиз-тестировщик
1. Подготовка релиза 2. Процесс релиза
Приёмка релиза / Релиз-тестировщик
1. Подготовка релиза 2. Процесс релиза 3. Мониторинг боя
Приёмка релиза / Мониторинг боя
Приёмка релиза / Мониторинг боя
Приёмка релиза / Мониторинг боя
Работающий Scrum / Релиз
sp1 sp2
sp1 (test)
2-3 sp
sp1 sp2
sp1 (test)
Работающий Scrum / Релиз
Приёмка релиза / Профит
3h VS 15h
Планирование
• Отдельное планирование тестировщиков
• Свой человек на планировании разработчиков
• Тестировать и слушать
Ещё раз...
Тестирование
• Unit Tests • Functional AutoTests • Автоматизация тестирования документации
• Автоматизация внутренней документации
Ещё раз...
Релиз • Автоматизация Smoke-тестов
• Релиз-тестировщик
Ещё раз...
Роли • Ведущий тестировщик • Релиз-тестировщик • Тестировщик