12
Jatkuva integrointi Java EE –koulutus 16.10. & 9.11.2015

Jatkuva integrointi

Embed Size (px)

Citation preview

Page 1: Jatkuva integrointi

Jatkuva integrointiJava EE –koulutus

16.10. & 9.11.2015

Page 2: Jatkuva integrointi

Integrointi Integrointi on ohjelman moduulien liittämistä yhteen

Liittyy vahvasti modulaariseen arkkitehtuuriin ja monikehittäjäympäristöön

Integroitu moduuli Kääntyy Läpäisee yksikkö- ja integrointitestit Deployatuu Käynnistyy

Page 3: Jatkuva integrointi

Integroinnin haasteet Yhteiskäyttöiset komponentit (moduulit) tulisi toimia kaikissa niitä

käyttävissä ohjelmissa

Integroitaessa komponentteja yhteen yksikkötestit on oltava ajettu jokaiselle komponentille hyväksytysti Ohjelma X Ohjelma Y

Integrointi

Integrointi

Page 4: Jatkuva integrointi

Jatkuva integrointi “Continuous Integration is a software development practice

where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.”

M. Fowler 2006

Page 5: Jatkuva integrointi

Jatkuva integrointi Jatkuvan integroinnin toteuttaminen vaatii käytännössä

Yksi versionhallinta käytössä Automatisoitu kääntäminen Yksikkötestien automaattinen ajo Jokainen kehittäjä commitoi (vie versionhallintaan) päivittäin työnsä Integrointiympäristön joka on harmoniassa eli sama muistinmäärä,

virtuaalikoneen versio jne. tuotantoympäristön kanssa

Page 6: Jatkuva integrointi

Jatkuvan integroinnin prosessiKehitys-

ympäristöIntegrointi-ympäristö

Testaus-ympäristö

Tuotanto-ympäristö

Versionhallinta

Tee/Korjaatestit

Build &Deploy

Aja integ-rointitestit

Julkaisu

Jatkuva Integrointi

Maven Repo

DataBackup

Konfi-guraa-

tiot

Kanta-muu-tokset

Hyväksymistestaus

Page 7: Jatkuva integrointi

Jatkuvan integroinnin prosessiKehitys-

ympäristö Kehittäjillä on harmonisoidut kehitysympäristöt

Virtuaali-image jaellaan versionhallinnasta

Yksikkötestien tekeminen ennen toiminnallisuuden rakentamista

Kaikki toimiva ja yksikkötestattu koodi viedään versionhallintaan As-Soon-As-Possible

Maven plug-in JaCoCo seuraa testikattavuutta

Maven huolehtii että ennen julkaisun tekemistä on ajettava testit onnistuneesti läpi

Page 8: Jatkuva integrointi

Jatkuvan integroinnin prosessi Jenkins toimii yleensä öisin

Hakee versionhallinnasta uusimmat lähdekoodit

Kääntää lähdekoodin Ajaa yksikkötestit Käynnistää integrointipalvelininstanssin Vie (deployaa) paketit palvelimelle Ajaa nauhoitetut Selenium-testit

käyttöliittymässä

Kehitys-ympäristö

Integrointi-ympäristö

Versionhallinta

Tee/Korjaatestit

Build &Deploy

Page 9: Jatkuva integrointi

Jatkuvan integroinnin prosessi Jos integrointi-testit

menevät läpi voidaan komponentti viedä testaus-palvelimelle

Testaajat suorittavat määrittely-dokumentteihin pohjautuvat järjestelmätestit

Kehitys-ympäristö

Integrointi-ympäristö

Testaus-ympäristö

Versionhallinta

Tee/Korjaatestit

Build &Deploy

Aja integ-rointitestit

Julkaisu

Page 10: Jatkuva integrointi

Jatkuvan integroinnin prosessi Tuotantoympäristöön siirtoa ennen

Varmistetaan tuotantodata Laaditaan migraatioskriptit kannoille Talletetaan käytetyt konfiguraatiot,

joihin palata jos ongelmia ilmenee

Tuotantoonsiirrossa Haetaan testausympäristössä

hyväksytty julkaisu palvelimelle Hyväksymistestaukseen liittyy

dokumentaation verifiointi

Testaus-ympäristö

Tuotanto-ympäristö

Maven Repo

DataBackup

Konfi-guraa-

tiot

Kanta-muu-tokset

Hyväksymistestaus

Page 11: Jatkuva integrointi

Laadunvarmistus sujuvaksi oikeilla työvälineillä

Oikeanlaiset työvälineet

Testauksen taso Työväline

Hyväksymistestaus Fit, FitNesse, JBehave

Järjestelmätestaus

• Käytettävyystestaus Selenium, Fit, WET, Watir, WatiN

• Suorituskykytestaus JMeter, Robot, Httperf

• Regressiotestaus QAutomate

Integrointitestaus SoapUI, Mockito, EasyMock

Yksikkötestaus NUnit, JUnit, DBUnit