19
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов. Вадим Зубович ISSoft / Coherent Solutions

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

Embed Size (px)

Citation preview

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

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

анализ инструментов.Вадим Зубович

ISSoft / Coherent Solutions

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

О себеВадим Зубович

Automation Tech LeadISsoft / Coherent Solutions

www.coherentsolutions.comwww.comaqa.bywww.dpi.solutions

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

Continuous integrationНепрерывная интеграция – практика в разработке программного обеспечения, подразумевающая регулярную интеграцию кода в общий репозиторий, с последующей верификацией с помощью автоматической сборки.

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

Цели для разработчиков• Минимизация времени и трудозатрат на интеграцию кода

• Возможность в любой момент собрать работоспособный продукт, готовый к релизу

• Упрощение локализации ошибок на самых ранних стадиях разработки

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

CI для разработчиков• Регулярное добавление нового кода в общий репозиторий

• Проверка общего проекта на «собираемость»

• Запуск юнит-тестов

• Уведомление об ошибке сборки или об упавших юнит-тестах

• Необходимость оставаться на работе после чекина, пока не пройдет билд

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

Dev vs. Test

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

CI для автоматизатора• Регулярное добавление нового кода в общий репозиторий

• Проверка общего проекта на «собираемость»

• Запуск юнит-тестов

• Уведомление об ошибке сборки

• Запуск функциональных автотестов

• Генерация и сохранение отчетов с уведомлением о завершении тестирования

или об упавших юнит-тестах

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

Ну и зачем?Запускаете автотесты вручную?

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

Объединяем усилия с разработчиками

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

Цикл автоматизации

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

CI-Servers

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

Поддерживаемые VCSИнструмент Системы контроля версий

Git, Mercurial, Perforce, Subversion, TFS

Git, Perforce, Subversion, TFS

Git, Mercurial, Perforce, Subversion, TFS

Git, Mercurial, Perforce, Subversion, TFS

Git

Git, TFS

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

ЛицензииИнструмент Тип лицензии

Proprietary (бесплатно для open source-проектов)

Free

Free, open source

Proprietary (есть бесплатная версия)

Proprietary (есть бесплатная версия)

Proprietary

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

Поддерживаемые платформыИнструмент Платформы

Кросс-платформенная (Java-Based)

Кросс-платформенная (Java-Based)

Кросс-платформенная (Java-Based)

Кросс-платформенная (Java-Based)

Default Ubuntu

Windows

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

Поддерживаемые IDEИнструмент Java IDE

IntelliJ IDEA, Eclipse

Eclipse

IntelliJ IDEA, Eclipse, Net Beans

IntelliJ IDEA, Eclipse

Atom

Eclipse

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

Поддерживаемые Баг-трекерыИнструмент Bug-tracking systems

JIRA

-

Bugzilla, JIRA, Redmine, FindBugs, Mantis, Trac

JetBrains YouTrack, JIRA, Bugzilla, FindBugs

-

Team Foundation Server

Page 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

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

ИтогИнструмент Вывод

Хороший инструмент, но не имеет веских преимуществ перед бесплатными аналогами

Бесплатный, но не интегрируется с баг-трекерами и имеет небогатый выбор способов нотификации и совместимых IDE

Мощный многофункциональный инструмент с огромным количеством плагинов. Бесплатный

Не уступает Jenkins по мощности и гибкости, интеллектуальная автоматическая конфигурация

Примечателен тем, что является облачным CI-сервером, с предоставляемой машиной для

билда. Для бесплатного – 1 контейнер

Ориентирован прежде всего на стек Microsoft, поэтому для Java подходит меньше других

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

Спасибо за внимание

Вадим ЗубовичISSoft / Coherent Solutions

www.comaqa.bywww.dpi.solutions