Стратегия тестирования крупного проекта в условиях...
-
Upload
agiledays -
Category
Technology
-
view
547 -
download
3
description
Transcript of Стратегия тестирования крупного проекта в условиях...
Стратегия тестирования
крупного проекта в
условиях agile разработки.
Разработка и внедрение
системы регрессионного
тестирования
Евгений Тян
«Аскон»
Сложность
9!
Сложность
9! 10 46
Сложность
9! 10 46
∞?
Наш проект
Наш проект
Наш проект
Решение для архитектуры и
строительства
Срок разработки: 3-4 года
CLOC > 120 000
3D Проектирование
Максимальная свобода
UI
Integration
Unit tests
Как начинали
-Ручное
тестирование
- TDD, Покрытие
тестами ~40%
Unit тестов не достаточно
Сложно предусмотреть все возможные
варианты использования модуля
Unit тестов не достаточно
Сложно предусмотреть все возможные
варианты использования модуля
Unit тестов не достаточно
Сложно перейти от условий
ошибки к Unit-тесту
Unit тестов не достаточно
Сложно воспроизвести ошибку
Unit тестов не достаточно
Интеграционные тесты работают с
приложением на более высоком уровне
Unit тестов не достаточно
Интеграционные тесты работают с
приложением на более высоком уровне
Unit тестов не достаточно
Интеграционные тесты работают с
приложением на более высоком уровне
1 итерация
Проект буксует
1 итерация 2 итерация
Проект буксует
1 итерация 2 итерация 3 итерация
1
Проект буксует
1 итерация 2 итерация 3 итерация
Итерация 4
1
1 2
Итерация 5
1 3
Проект буксует
1 итерация 2 итерация 3 итерация
Итерация 4
1
1 2
Итерация 5
1 3
Итерация 6
1 2
3
Проект буксует
Стоимость исправлений
Что еще хуже
Что еще хуже
Что еще хуже
КАК ПОДДЕРЖИВАТЬ
КАЧЕСТВО ПРОДУКТА?
У нас нет столько
тестеров
Тестировать руками?
Рассматривали:
TestComplete
Squish
Автоматизация?
Выяснили:
Существуют риски с
поддержкой технологий
Зависимость от GUI
Медленно
Автоматизация?
Автоматизация?
Решение: собственная
система автоматизации
тестирования
Решение. Инструмент
Решение. Инструмент
Решение. Инструмент
Что такое тест?
Инструмент тестера
Решение. Инструмент
Code Review проведен
Unit test-ы написаны
Старые тесты работают
Приемочные тесты написаны
Код слит в основную ветку
Решение. DoD
Автоматизация
Проблемы внедрения
Хрупкость тестов на раннем этапе
разработки
Сложность анализа причин поломки теста
Долго не могли привыкнуть поддерживать
тесты
Хрупкость тестов на раннем этапе
разработки
Проблемы внедрения
Хрупкость тестов на раннем этапе
разработки
Проблемы внедрения
Проблемы внедрения. Анализ
Поддержка тестов
Поддержка тестов
• Каждый ответственен за то,
что его commit не ломает тесты
• Если тест нужно исправить, то этим
занимается разработчик, который
внес изменение
Собственная система интеграционного тестирования. Полный контроль
Скорость. За счет возможности отвязаться от GUI и запустить интеграционные тесты в несколько потоков. Прохождение 500 тестов ~ 3-4 мин.
Возможность запускать тесты на каждый commit
Система записи сценария встроена в приложение – любой пользователь может записать ошибку и отправить нам
Что получили
0
50
100
150
200
250
300
Время прохождения 500 сценариев, мин
Собственная утилита
Testcomplete
Затратили времени ~ 2 командо-месяца (5
человек)
Есть ошибки в самом инструменте
тестирования
Поддержка. Любые хотелки делаем сами
(форматы вывода результатов,
интерфейсные удобства, средства анализа)
Что получили
UI UI
Integration tests
Unit tests
Как сейчас
- Ручное тестирование
- TDD, более
1500 unit-тестов
Покрытие ~60%
- Автоматизированное
тестирование,
~500 сценариев
UI UI
Integration tests
Unit tests
Как сейчас
UI
Integration
Unit
1 итерация 2 итерация 3 итерация
1
Как сейчас
1 итерация 2 итерация 3 итерация
Итерация 4
1
2
Итерация 5
3
Итерация 6
Как сейчас
Не нужно оглядываться,
смотрим вперед,
движемся уверенней
Кому это надо?
Евгений Тян