Введение в непрерывную интеграцию

Содержание

Слайд 2

Руденко Виктория
Опыт в тестировании – 4 года
Должность – QA Lead
Отдел QA –

Руденко Виктория Опыт в тестировании – 4 года Должность – QA Lead
8 человек
тестирование
контроль качества на всех этапах жизненного цикла ПО
непрерывная интеграция - с 2009 г.

Немного о себе

Введение в непрерывную интеграцию

Ardas Group
Программное обеспечение, сайты
Независимое тестирование

Web: http://ardas.dp.ua
E-mail: [email protected]

Слайд 3

Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая

Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая
заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. [Википедия]

Определение

Введение в непрерывную интеграцию

Слайд 4

Проблемы

проблема интеграции
позднее обнаружение дефектов
поддержка и запуск существующих тестов

Проблемы проблема интеграции позднее обнаружение дефектов поддержка и запуск существующих тестов и
и проверок
рутина
актуальность тестируемой среды

Введение в непрерывную интеграцию

Слайд 5

«Continuous Integration» — это лекарство от страха. Помогает при программировании. Dr. Zoidberg

«Continuous Integration» — это лекарство от страха. Помогает при программировании. Dr. Zoidberg
©

Введение в непрерывную интеграцию

Решение

Слайд 6

Этапы непрерывной интеграции

Введение в непрерывную интеграцию

Этапы непрерывной интеграции Введение в непрерывную интеграцию

Слайд 7

Интеграционная сборка может осуществляться:
по внешнему запросу
по расписанию
по факту обновления

Интеграционная сборка может осуществляться: по внешнему запросу по расписанию по факту обновления
репозитория

Обновление

Введение в непрерывную интеграцию

Commit

Слайд 8

Работа с репозиторием

все данные хранятся в репозитории
частые коммиты
локальная сборка

Работа с репозиторием все данные хранятся в репозитории частые коммиты локальная сборка
перед коммитом
предкоммитная сборка на интеграционном сервере (TeamCity)
исправление поломанного кода – приоритетная задача
прекращение работы с репозиторием до исправления сборки

Введение в непрерывную интеграцию

Слайд 9

автоматизированная
быстрая:
ресурсы компьютера
разбиение на подмодули
поэтапная
критичные проверки сначала

автоматизированная быстрая: ресурсы компьютера разбиение на подмодули поэтапная критичные проверки сначала выделенная
выделенная машина

Сборка

Введение в непрерывную интеграцию

Слайд 10

Введение в непрерывную интеграцию

“Это работает на моей машине!”

Введение в непрерывную интеграцию “Это работает на моей машине!”

Слайд 11

Программисты пишут код для тестирования программного кода.
QA: Все тесты включены в сборку

Программисты пишут код для тестирования программного кода. QA: Все тесты включены в
быстрое обнаружение дефектов
упрощение рефакторинга

Модульное тестирование

Введение в непрерывную интеграцию

Слайд 12

проверка соблюдения стандартов
проведение статического анализа
измерение метрик
Метрики:
процент покрытия тестами

проверка соблюдения стандартов проведение статического анализа измерение метрик Метрики: процент покрытия тестами
мера сложности программ
число строк кода

Инспекция кода

Введение в непрерывную интеграцию

Слайд 13

автоматизированное
указание версии

Развертывание

Введение в непрерывную интеграцию

автоматизированное указание версии Развертывание Введение в непрерывную интеграцию

Слайд 14

функциональные тесты (Selenium, TestComplete, Watir)
тесты на нагрузку (JMeter, LoadRunner)
QA
запуск

функциональные тесты (Selenium, TestComplete, Watir) тесты на нагрузку (JMeter, LoadRunner) QA запуск
по расписанию
реальные условия

Приемочное тестирование

Введение в непрерывную интеграцию

Слайд 15

сохранение архивов
указание версии и даты сборки
QA
экономия времени
тестирование

Архивирование

Введение

сохранение архивов указание версии и даты сборки QA экономия времени тестирование Архивирование Введение в непрерывную интеграцию
в непрерывную интеграцию

Слайд 16

Генерация отчета

Введение в непрерывную интеграцию

Активное оповещение:
email
sms
система мгновенных сообщений
Пассивное оповещение:

Генерация отчета Введение в непрерывную интеграцию Активное оповещение: email sms система мгновенных
публикация на web
файловый сервер

Слайд 17

CruiseControl — сервер интеграции для Java (бесплатный)
http://cruisecontrol.sourceforge.net/

Серверы непрерывной интеграции

Введение в непрерывную интеграцию

CruiseControl.NET

CruiseControl — сервер интеграции для Java (бесплатный) http://cruisecontrol.sourceforge.net/ Серверы непрерывной интеграции Введение
— сервер интеграции для .NET (бесплатный)
http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET

CruiseControl — сервер интеграции для Ruby (бесплатный)
http://cruisecontrolrb.thoughtworks.com/

Слайд 18

Hudson — open-source сервер интеграции, создан как альтернатива CruiseControl.
http://hudson-ci.org/

Серверы непрерывной интеграции

Введение в

Hudson — open-source сервер интеграции, создан как альтернатива CruiseControl. http://hudson-ci.org/ Серверы непрерывной
непрерывную интеграцию

TeamCity — коммерческий сервер интеграции от компаниии JetBrains для java и .NET (есть бесплатная версия).
http://www.jetbrains.com/teamcity/

Bamboo — коммерческий сервер интеграции от компаниии Attlassian для java, .NET и Ruby.
http://www.atlassian.com/software/bamboo/

Слайд 19

web-приложения на Java
инструменты сборки maven, ant
unit тесты
Selenium тесты

web-приложения на Java инструменты сборки maven, ant unit тесты Selenium тесты сервер
сервер НИ CruiseControl

Как это у нас

Введение в непрерывную интеграцию

Слайд 20

Сборка после каждого коммита (Быстрая)
компиляция
unit тесты
сохранение архивов
email

Сборка после каждого коммита (Быстрая) компиляция unit тесты сохранение архивов email для
для QA – оповещение о новых архивах
email всем – в случае поломки или исправлении сборки
Ночная сборка (Медленная)
компиляция
развертывание
Selenium-тесты
еmail с отчетом
сохранение более подробного отчета на файловом сервере

Как это у нас

Введение в непрерывную интеграцию

Слайд 21

CruiseControl

Введение в непрерывную интеграцию

CruiseControl Введение в непрерывную интеграцию

Слайд 22

Рекомендации

Введение в непрерывную интеграцию

Martin Fowler “Continuous Integration “ http://www.martinfowler.com/articles/continuousIntegration.html
Paul M. Duvall “Continuous

Рекомендации Введение в непрерывную интеграцию Martin Fowler “Continuous Integration “ http://www.martinfowler.com/articles/continuousIntegration.html Paul
Integration: Improving Software Quality and Reducing Risk” http://www.amazon.com/Continuous-Integration-Improving-Software-Reducing/dp/0321336380

Слайд 23

Преимущества и недостатки НИ

Недостатки:
выделенный сервер
время на поддержку

Введение в непрерывную интеграцию

Преимущества:

Преимущества и недостатки НИ Недостатки: выделенный сервер время на поддержку Введение в
снижение рисков
уменьшения количества дефектов
быстрый сигнал о проблемах
избавление от рутины
наличие стабильной версии
контроль состояния проекта
Имя файла: Введение-в-непрерывную-интеграцию.pptx
Количество просмотров: 80
Количество скачиваний: 0