0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Несколько слов про CI</a></li>
1
<ul><li><a>Несколько слов про CI</a></li>
2
<li><a>Виды тестирования</a></li>
2
<li><a>Виды тестирования</a></li>
3
<li><a>Организация</a></li>
3
<li><a>Организация</a></li>
4
<li><a>Плюсы и минусы</a><ul><li><a>Сильные стороны</a></li>
4
<li><a>Плюсы и минусы</a><ul><li><a>Сильные стороны</a></li>
5
<li><a>Слабые стороны</a></li>
5
<li><a>Слабые стороны</a></li>
6
</ul></li>
6
</ul></li>
7
</ul><p>Непрерывная интеграция или CI (Continuous Integration) - это разработка программного обеспечения, которая базируется на постоянном слиянии рабочих копий в общую, единую ветку. Этот процесс может осуществляться несколько раз в день. Помогает автоматизировать сборку проектов для более быстрого тестирования, обнаружения ошибок и решения интеграционных проблем.</p>
7
</ul><p>Непрерывная интеграция или CI (Continuous Integration) - это разработка программного обеспечения, которая базируется на постоянном слиянии рабочих копий в общую, единую ветку. Этот процесс может осуществляться несколько раз в день. Помогает автоматизировать сборку проектов для более быстрого тестирования, обнаружения ошибок и решения интеграционных проблем.</p>
8
<p>Обычный процесс разработки, при котором каждый программист трудится отдельно, интеграция является последней стадией. В ней может содержаться окончание работ. При переходе к непрерывной интеграции удается соответствующий процесс сделать более простым, а также предсказуемым. Результат достигается за счет того, что при CI сборка будущего приложения раньше проверяется на ошибки и противоречия. Соответствующая особенность приводит к снижению стоимости исправления дефектов.</p>
8
<p>Обычный процесс разработки, при котором каждый программист трудится отдельно, интеграция является последней стадией. В ней может содержаться окончание работ. При переходе к непрерывной интеграции удается соответствующий процесс сделать более простым, а также предсказуемым. Результат достигается за счет того, что при CI сборка будущего приложения раньше проверяется на ошибки и противоречия. Соответствующая особенность приводит к снижению стоимости исправления дефектов.</p>
9
<p>Далее предстоит рассмотреть CI-системы более подробно. Представленная информация больше ориентирована на разработчиков, однако будет полезна и тестировщикам ПО. </p>
9
<p>Далее предстоит рассмотреть CI-системы более подробно. Представленная информация больше ориентирована на разработчиков, однако будет полезна и тестировщикам ПО. </p>
10
<h2>Несколько слов про CI</h2>
10
<h2>Несколько слов про CI</h2>
11
<p>CI - это непрерывная интеграция. Под соответствующим понятием понимается связь отдельных частей кода программы между собой в единый продукт. CI является автоматизированным процессом. Он включает в себя:</p>
11
<p>CI - это непрерывная интеграция. Под соответствующим понятием понимается связь отдельных частей кода программы между собой в единый продукт. CI является автоматизированным процессом. Он включает в себя:</p>
12
<ul><li>сборку;</li>
12
<ul><li>сборку;</li>
13
<li>тестирование;</li>
13
<li>тестирование;</li>
14
<li>развертку будущего проекта.</li>
14
<li>развертку будущего проекта.</li>
15
</ul><p>Все это происходит без дополнительного вмешательства человека - автоматически. Часто при программировании контента можно встретить CI/CD или CICD. В этом случае подразумевается комбинация непрерывной интеграции и непрерывной развертки. CI-CD используется для объединения разработки, развертки и команды. За счет этого создание итогового проекта значительно ускоряется.</p>
15
</ul><p>Все это происходит без дополнительного вмешательства человека - автоматически. Часто при программировании контента можно встретить CI/CD или CICD. В этом случае подразумевается комбинация непрерывной интеграции и непрерывной развертки. CI-CD используется для объединения разработки, развертки и команды. За счет этого создание итогового проекта значительно ускоряется.</p>
16
<h2>Виды тестирования</h2>
16
<h2>Виды тестирования</h2>
17
<p>Перед изучением интеграционной системы разработки, нужно понимать, что какие вообще виды тестирования бывают. Эта информация поможет подобрать оптимальное решение для проекта и не прогадать:</p>
17
<p>Перед изучением интеграционной системы разработки, нужно понимать, что какие вообще виды тестирования бывают. Эта информация поможет подобрать оптимальное решение для проекта и не прогадать:</p>
18
<ol><li>Ручное. Сборка и проверка продукта будет полностью выполняться программистом от самого начала до конца. Это самый дорогостоящий вариант. Он может отнимать немало времени, а также не исключает человеческий фактор.</li>
18
<ol><li>Ручное. Сборка и проверка продукта будет полностью выполняться программистом от самого начала до конца. Это самый дорогостоящий вариант. Он может отнимать немало времени, а также не исключает человеческий фактор.</li>
19
<li>Полуавтоматическое. Разработчик будет производить сборку и проверку будущего исходного приложения самостоятельно, но с использованием специальных программ. Процессы настраиваются один раз, а затем просто активируются за счет ввода команд. Такой подход является полуавтоматической сборкой, ведь настройка и применение командных операций организовываются человеком. Сборка тут - это часть работы. Для того, чтобы получить готовое приложение, его предстоит запустить, чем занимается сервер программы. Его активация осуществляется за счет размещения кода в директории, настройки и запуска сервисных служб.</li>
19
<li>Полуавтоматическое. Разработчик будет производить сборку и проверку будущего исходного приложения самостоятельно, но с использованием специальных программ. Процессы настраиваются один раз, а затем просто активируются за счет ввода команд. Такой подход является полуавтоматической сборкой, ведь настройка и применение командных операций организовываются человеком. Сборка тут - это часть работы. Для того, чтобы получить готовое приложение, его предстоит запустить, чем занимается сервер программы. Его активация осуществляется за счет размещения кода в директории, настройки и запуска сервисных служб.</li>
20
<li>Автоматическое - это и есть интеграционные системы (integration system). Исходный код автоматически превращается в готовое к установке программное обеспечение. Такой подход называется CI. В соответствующей ситуации изменения из репозитория будут получены без непосредственного участия человека. Настраивается несколькими способами: CI запросит репозиторий в N часов/минут с проверкой на наличие обновлений или репозиторий самостоятельно свяжется с Integration System при наличии новых версий.</li>
20
<li>Автоматическое - это и есть интеграционные системы (integration system). Исходный код автоматически превращается в готовое к установке программное обеспечение. Такой подход называется CI. В соответствующей ситуации изменения из репозитория будут получены без непосредственного участия человека. Настраивается несколькими способами: CI запросит репозиторий в N часов/минут с проверкой на наличие обновлений или репозиторий самостоятельно свяжется с Integration System при наличии новых версий.</li>
21
</ol><p>В последней ситуации после получения информации об изменениях, автоматом запустится сборка и тесты. Если они пройдут неудачно, программист получит характерное сообщение. В противном случае CI развернет программное обеспечение. Производится операция на подготовленной заранее тестовой машине.</p>
21
</ol><p>В последней ситуации после получения информации об изменениях, автоматом запустится сборка и тесты. Если они пройдут неудачно, программист получит характерное сообщение. В противном случае CI развернет программное обеспечение. Производится операция на подготовленной заранее тестовой машине.</p>
22
<h2>Организация</h2>
22
<h2>Организация</h2>
23
<p>Для использования автоматической проверки и интеграции требуется удовлетворить ряду базовых требований к проекту программирования. Пример - исходный код и все, что нужно для сборки и тестирования, должно быть размещено в репозитории системы управления версиями. Операции по копированию данных, сборке и непосредственного теста для всего проекта автоматизированы и легко вызываются из внешних программных продуктов.</p>
23
<p>Для использования автоматической проверки и интеграции требуется удовлетворить ряду базовых требований к проекту программирования. Пример - исходный код и все, что нужно для сборки и тестирования, должно быть размещено в репозитории системы управления версиями. Операции по копированию данных, сборке и непосредственного теста для всего проекта автоматизированы и легко вызываются из внешних программных продуктов.</p>
24
<p>На выделенном сервере при рассматриваемой концепции (CI) запускается специальная служба. Она отвечает за:</p>
24
<p>На выделенном сервере при рассматриваемой концепции (CI) запускается специальная служба. Она отвечает за:</p>
25
<ul><li>получение исходного кода;</li>
25
<ul><li>получение исходного кода;</li>
26
<li>непосредственную сборку;</li>
26
<li>непосредственную сборку;</li>
27
<li>организацию тестов;</li>
27
<li>организацию тестов;</li>
28
<li>развертку готового программного продукта;</li>
28
<li>развертку готового программного продукта;</li>
29
<li>отправку отчетов по мере необходимости.</li>
29
<li>отправку отчетов по мере необходимости.</li>
30
</ul><p>Локальное формирование программы может производиться через внешний запрос, по расписанию, по факту обновления репозиторных данных или иным параметрам.</p>
30
</ul><p>Локальное формирование программы может производиться через внешний запрос, по расписанию, по факту обновления репозиторных данных или иным параметрам.</p>
31
<p>Поддерживается формирование контента по расписанию (daily build или "ежедневная сборка"). Обычно оно осуществляется в нерабочее время, по ночам. Планируется так, чтобы к началу нового дня программистам были переданы результаты организованных тестов.</p>
31
<p>Поддерживается формирование контента по расписанию (daily build или "ежедневная сборка"). Обычно оно осуществляется в нерабочее время, по ночам. Планируется так, чтобы к началу нового дня программистам были переданы результаты организованных тестов.</p>
32
<p>Для различия дополнительно внедряется система нумерации билдов. Каждый их них получает в качестве "порядкового номера" натуральное число. С каждой новой "версией" оно будет увеличиться на единицу. Соответствующим элементом будут получаться иные исходные данные при взятия их из хранилища (репозитория) контроля версий. Такой подход позволяет воспроизводить одинаковые билды в будущем: останется выгрузить исходную информацию по той или иной метки и запустить процессы вновь.</p>
32
<p>Для различия дополнительно внедряется система нумерации билдов. Каждый их них получает в качестве "порядкового номера" натуральное число. С каждой новой "версией" оно будет увеличиться на единицу. Соответствующим элементом будут получаться иные исходные данные при взятия их из хранилища (репозитория) контроля версий. Такой подход позволяет воспроизводить одинаковые билды в будущем: останется выгрузить исходную информацию по той или иной метки и запустить процессы вновь.</p>
33
<h2>Плюсы и минусы</h2>
33
<h2>Плюсы и минусы</h2>
34
<p>Рассматриваемая операция имеет как преимущества, так и недостатки. Зная о них, разработчики смогут понять, стоит ли им вообще заниматься автоматизацией тестов.</p>
34
<p>Рассматриваемая операция имеет как преимущества, так и недостатки. Зная о них, разработчики смогут понять, стоит ли им вообще заниматься автоматизацией тестов.</p>
35
<h3>Сильные стороны</h3>
35
<h3>Сильные стороны</h3>
36
<p>Преимуществами CI считаются такие моменты как:</p>
36
<p>Преимуществами CI считаются такие моменты как:</p>
37
<ul><li>более быстрое обнаружение и исправление ошибок, связанных с интегрированием;</li>
37
<ul><li>более быстрое обнаружение и исправление ошибок, связанных с интегрированием;</li>
38
<li>снижение общей стоимости корректирования исходного кода имеющегося приложения;</li>
38
<li>снижение общей стоимости корректирования исходного кода имеющегося приложения;</li>
39
<li>немедленный прогон модульных тестов для свежих корректировок;</li>
39
<li>немедленный прогон модульных тестов для свежих корректировок;</li>
40
<li>наличие текущей стабильной версии программы вместе с билдами - для демонстраций, очередных проверок и иных манипуляций;</li>
40
<li>наличие текущей стабильной версии программы вместе с билдами - для демонстраций, очередных проверок и иных манипуляций;</li>
41
<li>эффект от неработающего контента или неполного исходного кода будет немедленным - он приучит программиста работать в итеративном режиме с коротким циклом.</li>
41
<li>эффект от неработающего контента или неполного исходного кода будет немедленным - он приучит программиста работать в итеративном режиме с коротким циклом.</li>
42
</ul><p>Это - быстрый и надежный подход к созданию качественного программного обеспечения. Многие компании пользуются или им, или совмещают концепцию с ручными проверками для достижения более эффективных и качественных результатов.</p>
42
</ul><p>Это - быстрый и надежный подход к созданию качественного программного обеспечения. Многие компании пользуются или им, или совмещают концепцию с ручными проверками для достижения более эффективных и качественных результатов.</p>
43
<h3>Слабые стороны</h3>
43
<h3>Слабые стороны</h3>
44
<p>Недостатки у автоматизации тоже есть. К ним относят значительные расходы на поддержку функционирования непрерывного интегрирования. Сюда же включены дополнительные ресурсные и вычислительные затраты на реализацию процессов.</p>
44
<p>Недостатки у автоматизации тоже есть. К ним относят значительные расходы на поддержку функционирования непрерывного интегрирования. Сюда же включены дополнительные ресурсные и вычислительные затраты на реализацию процессов.</p>
45
<p>Рассматриваемая операция также требует от программистов наличия определенного опыта в тестах. Без него ни CI, ни CI/CD организовать не получится.</p>
45
<p>Рассматриваемая операция также требует от программистов наличия определенного опыта в тестах. Без него ни CI, ни CI/CD организовать не получится.</p>
46
<p><a>Здесь</a>предлагается наглядно рассмотреть изучаемую тему. А лучше вникнуть в нее и обучить основам организации помогут<a>специализированные компьютерные курсы по DevOps</a>.</p>
46
<p><a>Здесь</a>предлагается наглядно рассмотреть изучаемую тему. А лучше вникнуть в нее и обучить основам организации помогут<a>специализированные компьютерные курсы по DevOps</a>.</p>
47
47