Upload
ismo-harjunmaa
View
242
Download
0
Embed Size (px)
Citation preview
Jatkuva integrointiJava EE –koulutus
16.10. & 9.11.2015
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
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
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
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
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
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
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
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
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
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
Lähteet M. Fowler 2006:
URL: http://martinfowler.com/articles/continuousIntegration.html (viitattu: 15.10.2015)