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 <a.ogarkova@2gis.ru>
* @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-
тестов
•  Релиз-тестировщик
Ещё раз...
Роли
•  Ведущий тестировщик
•  Релиз-тестировщик
•  Тестировщик
Всё!
Спасибо за внимание!
Вопросы?
a.ogarkova@2gis.ru @gorynych3003

«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС