Непрерывная интеграция и автотесты.
Сравнительный анализ инструментов.
Вадим Зубович
ISSoft / Coherent Solutions
О себе
Вадим Зубович
Automation Tech Lead
ISsoft / Coherent Solutions
www.coherentsolutions.com
www.comaqa.by
www.dpi.solutions
Continuous integration
Непрерывная интеграция – практика в разработке
программного обеспечения, подразумевающая регулярную
интеграцию кода в общий репозиторий, с последующей
верификацией с помощью автоматической сборки.
Цели для разработчиков
• Минимизация времени и трудозатрат на интеграцию кода
• Возможность в любой момент собрать работоспособный продукт,
готовый к релизу
• Упрощение локализации ошибок на самых ранних стадиях
разработки
CI для разработчиков
• Регулярное добавление нового кода в общий репозиторий
• Проверка общего проекта на «собираемость»
• Запуск юнит-тестов
• Уведомление об ошибке сборки или об упавших юнит-тестах
• Необходимость оставаться на работе после чекина, пока не пройдет
билд
Dev vs. Test
CI для автоматизатора
• Регулярное добавление нового кода в общий репозиторий
• Проверка общего проекта на «собираемость»
• Запуск юнит-тестов
• Уведомление об ошибке сборки
• Запуск функциональных автотестов
• Генерация и сохранение отчетов с уведомлением о завершении
тестирования
или об упавших юнит-тестах
Ну и зачем?
Запускаете автотесты вручную?
Объединяем усилия с разработчиками
Цикл автоматизации
CI-Servers
Поддерживаемые VCS
Инструмент Системы контроля версий
Git, Mercurial, Perforce,
Subversion, TFS
Git, Perforce, Subversion, TFS
Git, Mercurial, Perforce,
Subversion, TFS
Git, Mercurial, Perforce,
Subversion, TFS
Git
Git, TFS
Лицензии
Инструмент Тип лицензии
Proprietary (бесплатно для open
source-проектов)
Free
Free, open source
Proprietary (есть бесплатная
версия)
Proprietary (есть бесплатная
версия)
Proprietary (Free since 2015)
Поддерживаемые платформы
Инструмент Платформы
Кросс-платформенная (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,
Mantis, 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
E-mail, SOAP
Итог
Инструмент Вывод
Хороший инструмент, но не имеет веских
преимуществ перед бесплатными аналогами
Бесплатный, но не интегрируется с баг-
трекерами и имеет небогатый выбор способов
нотификации и совместимых IDE
Мощный многофункциональный инструмент с
огромным количеством плагинов. Бесплатный
Не уступает Jenkins по мощности и гибкости,
интеллектуальная автоматическая конфигурация
Примечателен тем, что является облачным CI-
сервером, с предоставляемой машиной для
билда. Для бесплатного – 1 контейнер
Ориентирован прежде всего на стек Microsoft,
поэтому для Java подходит меньше других
Спасибо за внимание
Вадим Зубович
ISSoft / Coherent Solutions
www.comaqa.by
www.dpi.solutions

Непрерывная интеграция и автотесты. Сравнительный анализ инструментов

  • 1.
    Непрерывная интеграция иавтотесты. Сравнительный анализ инструментов. Вадим Зубович ISSoft / Coherent Solutions
  • 2.
    О себе Вадим Зубович AutomationTech Lead ISsoft / Coherent Solutions www.coherentsolutions.com www.comaqa.by www.dpi.solutions
  • 3.
    Continuous integration Непрерывная интеграция– практика в разработке программного обеспечения, подразумевающая регулярную интеграцию кода в общий репозиторий, с последующей верификацией с помощью автоматической сборки.
  • 4.
    Цели для разработчиков •Минимизация времени и трудозатрат на интеграцию кода • Возможность в любой момент собрать работоспособный продукт, готовый к релизу • Упрощение локализации ошибок на самых ранних стадиях разработки
  • 5.
    CI для разработчиков •Регулярное добавление нового кода в общий репозиторий • Проверка общего проекта на «собираемость» • Запуск юнит-тестов • Уведомление об ошибке сборки или об упавших юнит-тестах • Необходимость оставаться на работе после чекина, пока не пройдет билд
  • 6.
  • 7.
    CI для автоматизатора •Регулярное добавление нового кода в общий репозиторий • Проверка общего проекта на «собираемость» • Запуск юнит-тестов • Уведомление об ошибке сборки • Запуск функциональных автотестов • Генерация и сохранение отчетов с уведомлением о завершении тестирования или об упавших юнит-тестах
  • 8.
    Ну и зачем? Запускаетеавтотесты вручную?
  • 9.
    Объединяем усилия сразработчиками
  • 10.
  • 11.
  • 12.
    Поддерживаемые VCS Инструмент Системыконтроля версий Git, Mercurial, Perforce, Subversion, TFS Git, Perforce, Subversion, TFS Git, Mercurial, Perforce, Subversion, TFS Git, Mercurial, Perforce, Subversion, TFS Git Git, TFS
  • 13.
    Лицензии Инструмент Тип лицензии Proprietary(бесплатно для open source-проектов) Free Free, open source Proprietary (есть бесплатная версия) Proprietary (есть бесплатная версия) Proprietary (Free since 2015)
  • 14.
    Поддерживаемые платформы Инструмент Платформы Кросс-платформенная(Java- Based) Кросс-платформенная (Java- Based) Кросс-платформенная (Java- Based) Кросс-платформенная (Java- Based) Default Ubuntu Windows
  • 15.
    Поддерживаемые IDE Инструмент JavaIDE IntelliJ IDEA, Eclipse Eclipse IntelliJ IDEA, Eclipse, Net Beans IntelliJ IDEA, Eclipse Atom Eclipse
  • 16.
    Поддерживаемые Баг-трекеры Инструмент Bug-trackingsystems JIRA - Bugzilla, JIRA, Redmine, FindBugs, Mantis, Trac JetBrains YouTrack, JIRA, Bugzilla, Mantis, FindBugs - Team Foundation Server
  • 17.
    Уведомления Инструмент Возможные типыуведомлений 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 E-mail, SOAP
  • 18.
    Итог Инструмент Вывод Хороший инструмент,но не имеет веских преимуществ перед бесплатными аналогами Бесплатный, но не интегрируется с баг- трекерами и имеет небогатый выбор способов нотификации и совместимых IDE Мощный многофункциональный инструмент с огромным количеством плагинов. Бесплатный Не уступает Jenkins по мощности и гибкости, интеллектуальная автоматическая конфигурация Примечателен тем, что является облачным CI- сервером, с предоставляемой машиной для билда. Для бесплатного – 1 контейнер Ориентирован прежде всего на стек Microsoft, поэтому для Java подходит меньше других
  • 19.
    Спасибо за внимание ВадимЗубович ISSoft / Coherent Solutions www.comaqa.by www.dpi.solutions