Download - Стратегия тестирования крупного проекта в условиях Agile разработки v2

Transcript
Page 1: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Стратегия тестирования

крупного проекта в

условиях agile разработки.

Разработка и внедрение

системы регрессионного

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

Евгений Тян

«Аскон»

[email protected]

Page 2: Стратегия тестирования крупного проекта в условиях Agile разработки v2
Page 3: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Сложность

9!

Page 4: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Сложность

9! 10 46

Page 5: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Сложность

9! 10 46

∞?

Page 6: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Наш проект

Page 7: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Наш проект

Наш проект

Решение для архитектуры и

строительства

Срок разработки: 3-4 года

CLOC > 120 000

Page 8: Стратегия тестирования крупного проекта в условиях Agile разработки v2

3D Проектирование

Page 9: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Максимальная свобода

Page 10: Стратегия тестирования крупного проекта в условиях Agile разработки v2

UI

Integration

Unit tests

Как начинали

-Ручное

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

- TDD, Покрытие

тестами ~40%

Page 11: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Unit тестов не достаточно

Сложно предусмотреть все возможные

варианты использования модуля

Page 12: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Unit тестов не достаточно

Сложно предусмотреть все возможные

варианты использования модуля

Page 13: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Unit тестов не достаточно

Сложно перейти от условий

ошибки к Unit-тесту

Page 14: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Unit тестов не достаточно

Сложно воспроизвести ошибку

Page 15: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Unit тестов не достаточно

Интеграционные тесты работают с

приложением на более высоком уровне

Page 16: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Unit тестов не достаточно

Интеграционные тесты работают с

приложением на более высоком уровне

Page 17: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Unit тестов не достаточно

Интеграционные тесты работают с

приложением на более высоком уровне

Page 18: Стратегия тестирования крупного проекта в условиях Agile разработки v2

1 итерация

Проект буксует

Page 19: Стратегия тестирования крупного проекта в условиях Agile разработки v2

1 итерация 2 итерация

Проект буксует

Page 20: Стратегия тестирования крупного проекта в условиях Agile разработки v2

1 итерация 2 итерация 3 итерация

1

Проект буксует

Page 21: Стратегия тестирования крупного проекта в условиях Agile разработки v2

1 итерация 2 итерация 3 итерация

Итерация 4

1

1 2

Итерация 5

1 3

Проект буксует

Page 22: Стратегия тестирования крупного проекта в условиях Agile разработки v2

1 итерация 2 итерация 3 итерация

Итерация 4

1

1 2

Итерация 5

1 3

Итерация 6

1 2

3

Проект буксует

Page 23: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Стоимость исправлений

Page 24: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Что еще хуже

Page 25: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Что еще хуже

Page 26: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Что еще хуже

Page 27: Стратегия тестирования крупного проекта в условиях Agile разработки v2

КАК ПОДДЕРЖИВАТЬ

КАЧЕСТВО ПРОДУКТА?

Page 28: Стратегия тестирования крупного проекта в условиях Agile разработки v2

У нас нет столько

тестеров

Тестировать руками?

Page 29: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Рассматривали:

TestComplete

Squish

Автоматизация?

Page 30: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Выяснили:

Существуют риски с

поддержкой технологий

Зависимость от GUI

Медленно

Автоматизация?

Page 31: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Автоматизация?

Решение: собственная

система автоматизации

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

Page 32: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Решение. Инструмент

Page 33: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Решение. Инструмент

Page 34: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Решение. Инструмент

Page 35: Стратегия тестирования крупного проекта в условиях Agile разработки v2

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

Page 36: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Инструмент тестера

Page 37: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Решение. Инструмент

Page 38: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Code Review проведен

Unit test-ы написаны

Старые тесты работают

Приемочные тесты написаны

Код слит в основную ветку

Решение. DoD

Page 39: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Автоматизация

Page 40: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Проблемы внедрения

Хрупкость тестов на раннем этапе

разработки

Сложность анализа причин поломки теста

Долго не могли привыкнуть поддерживать

тесты

Page 41: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Хрупкость тестов на раннем этапе

разработки

Проблемы внедрения

Page 42: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Хрупкость тестов на раннем этапе

разработки

Проблемы внедрения

Page 43: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Проблемы внедрения. Анализ

Page 44: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Поддержка тестов

Page 45: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Поддержка тестов

• Каждый ответственен за то,

что его commit не ломает тесты

• Если тест нужно исправить, то этим

занимается разработчик, который

внес изменение

Page 46: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Собственная система интеграционного тестирования. Полный контроль

Скорость. За счет возможности отвязаться от GUI и запустить интеграционные тесты в несколько потоков. Прохождение 500 тестов ~ 3-4 мин.

Возможность запускать тесты на каждый commit

Система записи сценария встроена в приложение – любой пользователь может записать ошибку и отправить нам

Что получили

Page 47: Стратегия тестирования крупного проекта в условиях Agile разработки v2

0

50

100

150

200

250

300

Время прохождения 500 сценариев, мин

Собственная утилита

Testcomplete

Page 48: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Затратили времени ~ 2 командо-месяца (5

человек)

Есть ошибки в самом инструменте

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

Поддержка. Любые хотелки делаем сами

(форматы вывода результатов,

интерфейсные удобства, средства анализа)

Что получили

Page 49: Стратегия тестирования крупного проекта в условиях Agile разработки v2

UI UI

Integration tests

Unit tests

Как сейчас

- Ручное тестирование

- TDD, более

1500 unit-тестов

Покрытие ~60%

- Автоматизированное

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

~500 сценариев

Page 50: Стратегия тестирования крупного проекта в условиях Agile разработки v2

UI UI

Integration tests

Unit tests

Как сейчас

UI

Integration

Unit

Page 51: Стратегия тестирования крупного проекта в условиях Agile разработки v2

1 итерация 2 итерация 3 итерация

1

Как сейчас

Page 52: Стратегия тестирования крупного проекта в условиях Agile разработки v2

1 итерация 2 итерация 3 итерация

Итерация 4

1

2

Итерация 5

3

Итерация 6

Как сейчас

Page 53: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Не нужно оглядываться,

смотрим вперед,

движемся уверенней

Page 54: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Кому это надо?

Page 55: Стратегия тестирования крупного проекта в условиях Agile разработки v2
Page 56: Стратегия тестирования крупного проекта в условиях Agile разработки v2

Евгений Тян

[email protected]