Jatkuva testaus DevOpsissa
Mitä jatkuva testaus on?
Jatkuva testaus DevOpsissa on ohjelmistotestaustyyppi, joka sisältää ohjelmiston testaamisen ohjelmistokehityksen elinkaaren jokaisessa vaiheessa. Jatkuvan testauksen tavoitteena on arvioida ohjelmiston laatua jatkuvan toimitusprosessin jokaisessa vaiheessa testaamalla varhain ja testaamalla usein.
DevOpsin jatkuvaan testaukseen osallistuvat sidosryhmät, kuten kehittäjä, DevOps, laadunvarmistus ja Operajärjestelmä.
Miten jatkuva testaus eroaa?

Vanha tapa testata oli hand off -keskeistä. Ohjelmisto luovutettiin joukkueelta toiselle. Projektilla olisi määrätyt kehitys- ja laadunvarmistusvaiheet. QA-tiimit halusivat aina enemmän aikaa varmistaakseen laadun. Tavoitteena oli, että laatu ylittää projektin aikataulun.
Yritys haluaa kuitenkin nopeampaa ohjelmistojen toimittamista loppukäyttäjälle. Mitä uudempi ohjelmisto on, sitä paremmin sitä voidaan markkinoida ja kasvattaa yrityksen tuottopotentiaalia. Tästä syystä kehitettiin uusi tapa testata.
Jatkuva tarkoittaa keskeytymätöntä jatkuvaa testausta. Jatkuvassa DevOps-prosessissa ohjelmistomuutos (julkaisuehdokas) siirtyy jatkuvasti kehityksestä testaamiseen käyttöönottoon.
Koodia kehitetään, toimitetaan, testataan ja otetaan käyttöön jatkuvasti.
Esimerkiksi aina, kun kehittäjä tarkistaa koodin lähdekoodipalvelimessa, kuten Jenkins, automaattiset yksikkötestit suoritetaan jatkuvassa prosessissa. Jos testit epäonnistuvat, koontiversio hylätään ja kehittäjälle ilmoitetaan asiasta. Jos koontiversio läpäisee testin, se otetaan käyttöön suorituskyky-, laadunvarmistuspalvelimissa kattavia toiminta- ja kuormitustestejä varten. Testit suoritetaan rinnakkain. Jos testit läpäisevät, ohjelmisto otetaan käyttöön tuotannossa.
Jatkuva testaus on pieni hammaspyörä jatkuvassa kehitys-, integraatio- ja käyttöönottosyklissä.
Ohjelmistokehitys ei ole sama asia kuin aiemmin, olemme leikanneet kehitystä kuukaudesta viikkoon. Nykyinen testauspino (katso kuva yllä) on otsikoitu käyttöliittymätestaukseen. Mutta tavoitteena on saada yhä enemmän automatisoituja yksikkötestejä.
Miten jatkuva testaus eroaa testiautomaatiosta?
Testausautomaatio vs. jatkuva testaus
Parametri | Testiautomaatio | Jatkuva testaus |
---|---|---|
Määritelmä | Testausautomaatio on prosessi, jossa tehtävien automatisointiin käytetään työkalua tai ohjelmistoa. | Se on ohjelmistojen testausmenetelmä, joka keskittyy jatkuvaan laadun ja parantamisen saavuttamiseen. |
Tarkoitus | Sarja samanlaisia tai toistuvia tehtäviä, jonka kone voi suorittaa nopeammin, vähemmällä virheellä. | Jatkuva testausprosessi auttaa löytämään riskit, puuttumaan niihin ja parantamaan tuotteen laatua. |
Edellytys | Testauksen automatisointi mahdollista ilman jatkuvan testauksen integrointia. | Jatkuvaa testausta ei voida toteuttaa ilman testiautomaatiota. |
Aika: | Ohjelmiston julkaisu voi kestää kuukaudesta vuosiin. | Ohjelmistojulkaisu voidaan julkaista viikoittain tai tunneittain. |
Palaute | Säännöllinen palaute jokaisen julkaisun testauksen jälkeen. | Palautteen tulee jokaisessa vaiheessa olla välitöntä. |
Historia | Automaattista testausta on tehty vuosikymmeniä nopeuttamaan testausprosessia. | Jatkuva testaus on suhteellisen uudempi käsite. |
Kuinka tehdä jatkuvaa testausta
- Käyttää työkaluja testiautomaatiosarjan luomiseen käyttäjien tarinoista/vaatimuksista
- Luo testiympäristö.
- Luo testidatapohja kopioimalla ja anonymisoimalla tuotantotiedot
- Käytä palvelun virtualisointia API:n testaamiseen
- Rinnakkainen suorituskyvyn testaus
Jatkuvat testaustyökalut
Tässä on kuratoitu luettelo parhaista Jatkuvat testaustyökalut :
1) QuerySurge
QuerySurge on älykäs tietojen testausratkaisu, joka on ensimmäinen laatuaan täydellinen DevOps-ratkaisu jatkuvaan tietojen testaukseen. Tärkeimpiä ominaisuuksia ovat vankka API yli 60 puhelulla, yksityiskohtainen datan älykkyys ja data-analytiikka, saumaton integrointi DevOps-putkeen jatkuvaa testausta varten ja suurien tietomäärien nopea todentaminen.
2) Jenkins
Jenkins on jatkuvan integroinnin työkalu, joka on kirjoitettu käyttäen Java kieli. Tämä työkalu voidaan määrittää graafisen käyttöliittymän tai konsolin komentojen kautta.
Download link: https://jenkins.io/
3) Travis
Travis on jatkuva testaustyökalu, jota isännöi GitHub. Se tarjoaa isännöityjä ja paikallisia variantteja. Se tarjoaa useita eri kieliä ja hyvän dokumentaation.
Download link: https://travis-ci.org/
4) Selenium
Selenium on avoimen lähdekoodin ohjelmistojen testaustyökalu. Se tukee kaikkia johtavia selaimia, kuten Firefox, Chrome, IE ja Safari. Selenium WebDriveria käytetään automatisoimaan verkkosovellusten testausta.
Download link: https://www.seleniumhq.org/
Jatkuvan testauksen edut
- Nopeuta ohjelmistojen toimitusta
- Jatkuva testaus parantaa koodin laatua
- Se auttaa arvioimaan tarkan liiketoimintariskin kattavuuden.
- Se integroituu saumattomasti DevOps-prosessiin
- Auttaa luomaan ketterän ja luotettavan prosessin muutamassa tunnissa kuukausien sijaan.
- Nopeuttaa markkinoille tuloa jatkuvalla palautemekanismilla.
- Yhdistää perinteisesti silloitetut tiimit vastaamaan nykyaikaisten yritysten tarpeita. Katkaisee yhteyden kehitys-, testaus- ja käyttötiimien välillä.
- Testiautomaatio auttaa saavuttamaan johdonmukaisuuden säilyttämällä saman konfiguraation kaikissa asiaankuuluvissa testeissä.
- Korostaa liiketoiminnan odotuksia liiketoiminnan riskien vähentämiseksi
- Tarjoaa kaikkialle pääsyn testiympäristöön palvelun virtualisoinnin avulla
Jatkuvan testauksen haasteet
- Perinteinen prosessi rajoittaa kulttuurin muutosta kehitys- ja laadunvarmistusammattilaisten keskuudessa.
- Puute DevOps-taidot ja oikeat työkalut testaukseen ketterissä ja DevOps-ympäristöissä.
- Heterogeeniset testiympäristöt, jotka eivät koskaan heijasta tuotantoympäristöä.
- Perinteinen testausprosessi ja löyhästi määritelty testidatan hallinta.
- Pidemmät koodin integrointijaksot aiheuttavat integraatioongelmia ja myöhäisiä viankorjauksia
- Riittämättömät ja tehottomat resurssit ja testiympäristöt
- Monimutkainen sovellusarkkitehtuuri ja liiketoimintalogiikka, jotka rajoittavat DevOpsin käyttöönottoa.
Yhteenveto
- Ohjelmistosuunnittelussa jatkuva testaus on prosessi, jossa testataan aikaisin, testataan usein, testataan kaikkialla ja automatisoidaan.
- Vanha tapa testata oli handoff-keskeinen. Ohjelmisto luovutetaan joukkueelta toiselle
- Jenkins, Travis ja Selenium ovat suosittuja Jatkuva testaus ja Integrointityökalut.
- Jatkuva testaus antaa toimivaa palautetta toimitusputken kunkin vaiheen mukaisesti.
- Jatkuva testaus auttaa parantamaan koodin laatua
- Perinteinen prosessi rajoittaa kulttuurin muutosta kehitys- ja laadunvarmistusammattilaisten keskuudessa.
- Pidemmät koodin integrointijaksot aiheuttavat integraatioongelmia ja myöhäisiä viankorjauksia