eXtreme BankingВадим Герасимов
Андрей Солнцев
Интернет-банкБСПБ
i.bspb.ruдемо-версия: idemo.bspb.ru
В ТОП-3 российских ИБ по версии Markswebb
Интернет-банк в цифрах
4 программера
0 архитекторов
0 архитекторов 0 аналитиков
0 архитекторов 0 аналитиков
0 релиз- менеджеров
0 архитекторов 0 аналитиков
0 тестировщиков 0 релиз- менеджеров
GA спустя 5 месяцев после старта
первый in-house релиз через месяц
Релиз каждые 2-3 дня
180 UI тестов за 4 минуты!
Как мы до такого докатились
Java платформа
НО без энтерпрайз фанатизма
● EJB● ESB● JMS● Spring● WebLogic, Websphere,
JBoss● WAR● EAR
Простой
Наш выбор:
Простой Быстрый в разработке
Наш выбор:
Простой Быстрый в разработке
ИнспирированRoR-ом
Наш выбор:
Простой Быстрый в разработке
Перезагрузка классов на лету
ИнспирированRoR-ом
Наш выбор:
Простой Быстрый в разработке
Перезагрузка классов на лету
Легко масштабируемый
ИнспирированRoR-ом
Наш выбор:
для изменений базы данных
для написания UI тестов
Дисциплины и техники
Парное программирование
Пацан накодил-
пацан протестил
Парное программирование
TDDПацан накодил-
пацан протестил
Парное программирование
TDD
KISS
Пацан накодил-
пацан протестил
Парное программирование
TDD
Частые pair switching
KISS
Пацан накодил-
пацан протестил
Парное программирование
TDD
Частые pair switching
KISScontinuous refactoring
Пацан накодил-
пацан протестил
Прямое общение с заказчиком
Прямое общение с заказчиком
два раза в неделю skype стендапы
Прямое общение с заказчиком
два раза в неделю skype стендапы
раз в 1-1.5 месяца on-site встречи
Прямое общение с заказчиком
два раза в неделю skype стендапы
раз в 1-1.5 месяца on-site встречи
8 x 5 коммуникация через Skype
Минимум документацииDocument driven development
Интерактивная и самотестируемая документация
для интеграции онлайн продавцов с Интернет-банком
It’s DEMO time!
Сколько должно быть тестов?
● Unit● UI● Integration● ...
Unit
UI
Integration
Не жалей!
Unit
UI
Integration
Не жалей!
Бизнес-чувствительная функциональность, базовые сценарии
Unit
UI
Integration
Не жалей!
Бизнес-чувствительная функциональность, базовые сценарии
Критичная функциональность, есть возможность управлять состояниями в backend-ах (или не требует)
Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация
Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация
UI тесты: не покрывают backend
Что и как мы тестируемUnit тесты: интеграция с backend-ом, валидация
UI тесты: не покрывают backend
Интеграционные тесты: минимальный набор критических функций
Быстрые UI тесты
Свой in-memory backend
Быстрые UI тесты
Свой in-memory backend Переиспользуем сессию
Быстрые UI тесты
Свой in-memory backend Переиспользуем сессию
Быстрый логин
Быстрые UI тесты
Запускаем только под Chrome
Свой in-memory backend Переиспользуем сессию
Быстрый логин
Быстрые UI тесты
Запускаем только под Chrome
Свой in-memory backend Переиспользуем сессию
Быстрый логин
Оптимизация работы LESS
Билд и релиз
Jenkins CI
Билд и релиз
Jenkins CI
Zero branching
Билд и релиз
Jenkins CI
Zero branching
ранняя доступностьдля альфа-тестеров
Билд и релиз
Jenkins CI
UI тесты часть билда
Zero branching
ранняя доступностьдля альфа-тестеров
Билд и релиз
Jenkins CI
UI тесты часть билдаГотовность в любой момент выслать билд
Zero branching
ранняя доступностьдля альфа-тестеров
Билд и релиз
Jenkins CI
UI тесты часть билдаГотовность в любой момент выслать билд
Zero branchinggit log как release notes
ранняя доступностьдля альфа-тестеров
Итого
● Делай просто
Итого
● Делай просто
● Релизь часто
“Правопорядок в стране определяется не наличием воров, а умением властей их обезвреживать.”
Глеб Жеглов
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
● Не раздувай команду
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
● Не раздувай команду
● Тесты - наше всё
Итого
● Делай просто
● Релизь часто
● Ты и клиент - единое целое
● Не раздувай команду
● Тесты - наше всё
● UI тесты должны быть быстрыми
Разработка Интернет-банка для нового клиента
Следующие шаги:
Разработка Интернет-банка для нового клиента
Сохранение и развитие единой платформы
Следующие шаги:
XP работает!
Андрей Солнцев
http://blog.codeborne.com/2012/12/5.html
Вадим Герасимов
Top Related