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

31
Тестирование веб-проектов в Agile Асхат Уразбаев, ScrumTrek

description

Асхат Уразбаев - Доклад на конференции SQA Days-3

Transcript of Тестирование веб-проектов в Agile

Page 1: Тестирование веб-проектов в Agile

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

Асхат Уразбаев, ScrumTrek

Page 2: Тестирование веб-проектов в Agile

Содержание

• Специфика веб-проектов• Коротко об Agile• Тестирование в Agile• Виды качества• Практики тестирования

Page 3: Тестирование веб-проектов в Agile

Специфика веб-проектов

• Короткий цикл выкладки• Деплой на сервера (без

обновления клиентских машин)• Легкие технологии, относительно

простая архитектура• Относительно невысокая

связанность кода

Page 4: Тестирование веб-проектов в Agile

Специфика тестирования

• Низкий уровень документирования• Тестирование на разных броузерах• Testing Environment <> Production

Environment

Page 5: Тестирование веб-проектов в Agile

Немного об Agile и Scrum

Page 6: Тестирование веб-проектов в Agile

Итеративная разработка

© ScrumTrek, 2008

Page 7: Тестирование веб-проектов в Agile

© ScrumTrek.ru, 2008

СкрамSCRUM каждые 24 часа

Итерация

КонцепцияБаклог

Отобранный баклог

План итерации

Новая функциональность

Page 8: Тестирование веб-проектов в Agile

Тестирование в Agile

Page 9: Тестирование веб-проектов в Agile

Цикл тестирования

• Каждый разработчик делает свою фичу

Development

Page 10: Тестирование веб-проектов в Agile

Цикл тестирования

• Если не успевают – не успевают все три!

Development

Page 11: Тестирование веб-проектов в Agile

Цикл тестирования

• Фичи делаются в порядке приоритета• Три разработчика делают одну фичу• Фичи тестируются сразу

Development

Page 12: Тестирование веб-проектов в Agile

Цикл тестирования

• Не успеваем только низкоприоритетные!

Development

Page 13: Тестирование веб-проектов в Agile

«Все в порядке, сейчас пофиксим!»

Page 14: Тестирование веб-проектов в Agile

Программисты против Тестировщиков

• Программисты слишком полагаются на тестировщиков

• Снижается ответственность за код

Page 15: Тестирование веб-проектов в Agile

Структура команды

• Команда состоит из разработчиков и тестировщиков

• За качество отвечает вся команда• Значит и за объем работ отвечает

вся команда

Page 16: Тестирование веб-проектов в Agile

Тестировщик

• Тестировщик – член команды• Участвует в планировании

итераций• Тесно общается с заказчиками• Помогает документировать

требования к коду• Частично берет на себя функции

аналитика

Page 17: Тестирование веб-проектов в Agile

Цикл регресионного тестирования

• Пронос на Test Environment в конце итерации• Создается ветка (branch) «Test»• Тестирование • Баги исправляются в основной ветке и

делается merge в Test (или наоборот)

Development

Testing

Page 18: Тестирование веб-проектов в Agile

Цикл регресионного тестирования

• А если баги в Production?

Development

Testing

Page 19: Тестирование веб-проектов в Agile

Цикл регресионного тестирования

• Тестирование не прекращается никогда• Выберите удобный ритм тестирования• Работать в одной ветке

Development

Testing

Page 20: Тестирование веб-проектов в Agile

Что такое качество?

Качество

заказчика

Внутреннее

качество

Page 21: Тестирование веб-проектов в Agile

Качество с точки зрения заказчика

• Качеством управляет заказчик!– В этой итерации сделайте самую

простую версию– Будем исходить из 10000

пользователей в день– Пока просто текстбокс, AJAX потом

добавим

Page 22: Тестирование веб-проектов в Agile

Качество заказчика

• Заказчик осуществляет приемку каждую итерацию

• Постоянная обратная связь от рынка

Page 23: Тестирование веб-проектов в Agile

Баги должны приоритезироваться!

• Разработчики НЕ должны исправлять все баги, найденные тестерами

• Баги должны быть приоритезированы Product Owner– Реальные ошибки– Улучшения – фичи– Не баги

Page 24: Тестирование веб-проектов в Agile

Внутреннее качество

• Качество кода– Простота, читаемость

• Качество архитектуры и дизайна

• Agile:– Внутренним качеством управляет

команда!– Внутреннее качество должно быть

высоким

Page 25: Тестирование веб-проектов в Agile

Затраты на качество продукта

Размер продукта

Затраты на полное регресионное тестирование

• Автоматизация тестирования– Снизить стоимость изменений– Сократить цикл тестирования

Page 26: Тестирование веб-проектов в Agile

Какие препятствия вы можете преодолеть не снижая скорости?

Page 27: Тестирование веб-проектов в Agile

Тестирование

• Continuous Integration– Сборка после каждого коммита, прогон

Smoke Unit Tests (=Build Acceptance Tests)

• Nightly Builds– Ночная сборка для всей системы, прогон

всех Unit Tests и интеграционных тестов

• Regression Testing– Частое регрессионное ручное тестирование

всей системы

Page 28: Тестирование веб-проектов в Agile

Виды автоматизации тестирования

• Unit Tests– Дешевые в создании, быстрые при прогоне– Не используют базу данных и сеть

• Интеграционные тесты– Более дорогие в создании, медленнее при прогоне– Проходят весь цикл, включая работу с БД и сетью

• Тесты пользовательского интерфейса– Проходят через пользовательский интерфейс– Неустойчивые, медленные

Page 29: Тестирование веб-проектов в Agile

Стадии развития проекта

Без тестеров

Тестеры внутри команды

Тестеры в отдельной команде

Page 30: Тестирование веб-проектов в Agile

Независимый отдел тестирования

• Слабая связь разработчиков и тестеров• Низкий уровень документирования

=>• Низкое качество и производительность

тестирования• (например, тестеры находят в основном

баги верстки)

Page 31: Тестирование веб-проектов в Agile

СПАСИБО!