HTML Diff
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