Upload
sqalab
View
672
Download
3
Embed Size (px)
Citation preview
Непрерывная интеграция и автотесты. Сравнительный
анализ инструментов.Вадим Зубович
ISSoft / Coherent Solutions
О себеВадим Зубович
Automation Tech LeadISsoft / Coherent Solutions
www.coherentsolutions.comwww.comaqa.bywww.dpi.solutions
Continuous integrationНепрерывная интеграция – практика в разработке программного обеспечения, подразумевающая регулярную интеграцию кода в общий репозиторий, с последующей верификацией с помощью автоматической сборки.
Цели для разработчиков• Минимизация времени и трудозатрат на интеграцию кода
• Возможность в любой момент собрать работоспособный продукт, готовый к релизу
• Упрощение локализации ошибок на самых ранних стадиях разработки
CI для разработчиков• Регулярное добавление нового кода в общий репозиторий
• Проверка общего проекта на «собираемость»
• Запуск юнит-тестов
• Уведомление об ошибке сборки или об упавших юнит-тестах
• Необходимость оставаться на работе после чекина, пока не пройдет билд
Dev vs. Test
CI для автоматизатора• Регулярное добавление нового кода в общий репозиторий
• Проверка общего проекта на «собираемость»
• Запуск юнит-тестов
• Уведомление об ошибке сборки
• Запуск функциональных автотестов
• Генерация и сохранение отчетов с уведомлением о завершении тестирования
или об упавших юнит-тестах
Ну и зачем?Запускаете автотесты вручную?
Объединяем усилия с разработчиками
Цикл автоматизации
CI-Servers
Поддерживаемые VCSИнструмент Системы контроля версий
Git, Mercurial, Perforce, Subversion, TFS
Git, Perforce, Subversion, TFS
Git, Perforce, Subversion, TFS
Git, Mercurial, Perforce, Subversion, TFS
Git
Git, TFS
ЛицензииИнструмент Тип лицензии
Proprietary (бесплатно для open source-проектов)
Free
Free, open source
Proprietary (есть бесплатная версия)
Proprietary (есть бесплатная версия)
Proprietary
Поддерживаемые платформыИнструмент Платформы
Кросс-платформенная (Java-Based)
Кросс-платформенная (Java-Based)
Кросс-платформенная (Java-Based)
Кросс-платформенная (Java-Based)
Default Ubuntu
Windows
Поддерживаемые IDEИнструмент Java IDE
IntelliJ IDEA, Eclipse
Eclipse
IntelliJ IDEA, Eclipse, Net Beans
IntelliJ IDEA, Eclipse
Atom
Eclipse
Поддерживаемые Баг-трекерыИнструмент Bug-tracking systems
JIRA
-
Bugzilla, JIRA, Redmine, FindBugs, Mantis, Trac
JetBrains YouTrack, JIRA, Bugzilla, FindBugs
-
Team Foundation Server
УведомленияИнструмент Возможные типы уведомлений
XMPP, Google Talk, E-mail, RSS, Remote API
E-mail, CCTray
Android, E-mail, Google Calendar, IRC, XMPP, RSS, Twitter
E-mail, XMPP, RSS, IDE, SysTray
E-mail, SOAP
ИтогИнструмент Вывод
Хороший инструмент, но не имеет веских преимуществ перед бесплатными аналогами
Бесплатный, но не интегрируется с баг-трекерами и имеет небогатый выбор способов нотификации и совместимых IDE
Мощный многофункциональный инструмент с огромным количеством плагинов. Бесплатный
Не уступает Jenkins по мощности и гибкости, интеллектуальная автоматическая конфигурация
Примечателен тем, что является облачным CI-сервером, с предоставляемой машиной для
билда. Для бесплатного – 1 контейнер
Ориентирован прежде всего на стек Microsoft, поэтому для Java подходит меньше других
Спасибо за внимание
Вадим ЗубовичISSoft / Coherent Solutions
www.comaqa.bywww.dpi.solutions