Skip to content

Continuous Integration

Miért?
A szoftvergyártás automatizálása és centralizálása produktívabbá tesz és csökkenti a kiszállításkori hibák veszélyét.

Gyakran a szoftverkomponensek integrációját időben hátra tolják és fáradságosan, hibára hajlamosan „kézzel” hajtják végre. De tulajdonképpen a szoftvernek minden időpontban teljesen futásképesnek kell lennie. A Continuous Integration-nel egy olyan folyamatot jelölnek, amely gondoskodik arról, hogy változtatások bevitele után a teljes kód leforduljon és tesztelődjön.A Continuous Integration folyamat főképpen team-eknek fontos, mert gondoskodik arról, hogy változtatások megtétele utána a teljes kód lefordul és tesztelődik, nem csak az a rész, amelyen a fejlesztő éppen dolgozott. Az automatizált teszteket mindegyik fejlesztőnek végre kell hajtania, mielőtt felvinné a változtatásait a központi verziókezelőbe. Ezen a Continuous Integration nem változtat semmit. Ahhoz hogy biztosítva legyen, hogy a tesztek mindenképpen lefussanak és a hibákat idejekorán észlelni lehessen, a Continuous Integration szerveren mindenképpen le kell futniuk. Ez nem szabadítja fel a fejlesztőt azalól, hogy a teszteket minden commit előtt végrehajtsa, hiszen a verziókezelőbe bevitt hibás kód a teljes team-et hátráltatja, sőt előfordulhat, hogy további team-eket is. Így a Continuous Integration folyamat arról gondoskodik, hogy team-eken átívelően a hibákat a lehető legkorábban felismerjük.

A Continuous Integration folyamathoz számos szoftvereszköz áll rendelkezésre. A folyamatos buildelésen és tesztelésen kívül, ami azonnal megtörténik, amint változtatások kerülnek a verziókövető rendszerbe, a Continuous Integration hosszabban futó folyamatokat, mint pl. adatbázistesztet is, automatizálhatóvá tesz. Ezeket pl. csak éjszakánként hajtja végre. A zöld fokozaton csak a buildelési és teszt folyamatokat kell figyelembe venni. A szoftver folyamatos setup-ja és kiszállítása csak később, a kék fokozaton történik.

Martin Fowler egy nagyon jó cikket írt erről a témáról: http://www.martinfowler.com/articles/continuousIntegration.html

Lásd az eszközök alatt.

Published inPraktikák