Mitä on moduulitestaus? Määritelmä, esimerkkejä
⚡ Älykäs yhteenveto
Moduulitestaus tarkistaa yksittäisiä aliohjelmia, alirutiineja, luokkia ja proseduureja kootun ohjelman sijaan, joten viat tulevat esiin pienessä, hyvin ymmärrettävässä koodilohkossa, jossa ne ovat edullisia paikantaa ja korjata.
Mitä on moduulitestaus?
Moduulien testaus on ohjelmistotestaustyyppi, joka tarkistaa ohjelman yksittäisiä aliohjelmia, alirutiineja, luokkia tai proseduureja. Koko ohjelmiston kerralla testaamisen sijaan moduulitestaus suosittelee ohjelman pienempien rakennuspalikoiden testaamista.
Moduulitestaus on pitkälti white box -painotteista. Moduulitestauksen tavoitteena ei ole osoittaa moduulin asianmukaista toimintaa, vaan osoittaa siinä olevan virheen olemassaolo. Tällä käänteisellä tavalla on merkitystä: ajo, joka ei löydä mitään, on vahvistanut hyvin vähän, kun taas ajo, joka paljastaa vian, on tehnyt tehtävänsä.
Moduulitason testaus mahdollistaa myös rinnakkaisuuden lisäämisen testausprosessiin, koska se luo mahdollisuuden testata useita moduuleja samanaikaisesti sen sijaan, että odotettaisiin koko koontia.
Miksi tehdä moduulitestaus
Moduulitestausta suositellaan, koska se muuttaa vikojen havaitsemisen taloudellisuutta.
- Todennäköisyys virheiden tai vikojen tunnistamiseen ohjelman pienemmissä osissa kasvaa.
- Useita moduuleja voidaan testata samanaikaisesti, ja siksi lähestymistapa tukee rinnakkaistestausta.
- Testauksen monimutkaisuus on helposti hallittavissa, koska jokainen moduuli perustellaan erikseen.
- Yhden moduulin sisältä löytyvä vika on tracpystyy käsittelemään pienen määrän koodia, joten virheenkorjausaika lyhenee jyrkästi.
Kuinka tehdä moduulitestaus?
Suunnittelu a testitapaus on moduulitestauksen tärkeä osa. Suunnitellessaan testitapauksia moduulitestiä varten testaajan on otettava huomioon kaksi asiaa.
- Moduulin erittely
- Moduulin lähdekoodi
Analysoi moduulin logiikkaa käyttämällä yhtä tai useampaa seuraavista valkoinen laatikko menetelmiä ja täydennä sitten näitä testitapauksia soveltamalla musta laatikko menetelmät moduulispesifikaatioon. Realistiset arvot ovat yhtä tärkeitä kuin valitut polut, joten valmistele testitiedot tapausten rinnalla eikä jälkikäteen.
Kun testitapaukset on suunniteltu, seuraava vaihe on moduulien yhdistäminen testausta varten. Käytetty menetelmä on joko inkrementaalinen tai ei-inkrementaalinen menetelmällä.
- Ei-inkrementaalinen menetelmä — kaikki moduulit testataan erikseen. Ensin yhdistetään kaikki moduulit ja sitten testataan koko ohjelma.
- Inkrementaalinen menetelmä — jokainen moduuli testataan ensin ja lisätään sitten vähitellen testattavaan kokoelmaan. Se suorittaa vaiheittaisen uudelleentestauksen.
- Inkrementaalisessa testauksessa on kaksi lähestymistapaa, ylhäältä alas ja alhaalta ylöspäin testaus.
- Moduulin suorittamiseksi valituilla tiedoilla tarvitaan ajuri testidatan syöttämiseen, suorituksen valvontaan ja tulosten tallentamiseen.
Näiden kahden menetelmän välinen valinta on kompromissi asennustyön ja diagnostiikan tehokkuuden välillä.
| Aspect | Inkrementaalinen menetelmä | Ei-inkrementaalinen menetelmä |
| Yhdistelmä | Yksi moduuli kerrallaan, lisätään testattuun kokoelmaan | Kaikki moduulit yhdistetty ja sitten testattu yhdessä |
| Rakennustelineitä tarvitaan | Lisää ajureita ja tynkiä, kirjoitettuna asteittain | Vähemmän kaksoistestejä, koska läsnä on oikeita moduuleja |
| Virheen rajaaminen | Vahva — vika osoittaa juuri lisättyyn moduuliin | Heikko – vika voi syntyä mistä tahansa |
| Soveltuu parhaiten | Suuret rakenteet, joissa on paljon vuorovaikutteisia moduuleja | Pienet ohjelmat, joissa on vähän moduuleja ja vähän kytkentää |
Ajurit ja tynkät moduulitestauksessa
Yllä mainittu ajuri on parin toinen puolisko. Koska testattava moduuli sijaitsee harvoin puheluketjun ylä- tai alapäässä, testaajat korvaavat puuttuvan koodin kummallakin puolella.
- kuljettaja — korvaa kutsuvan moduulin testattavan yläpuolella. Se toimittaa testidatan, käynnistää moduulin, valvoo suoritusta ja tallentaa tulokset. Alhaalta ylöspäin suuntautuva testaus on riippuvainen ajureista, koska alemmat moduulit ovat valmiita ennen ylempiä.
- Tynkä — korvaa kutsutun moduulin testattavan moduulin alapuolella. Se hyväksyy kutsun ja palauttaa kiinteän, tunnetun vastauksen, jotta testattava moduuli voi suorittaa polkunsa loppuun. Ylhäältä alas -testaus perustuu tynkiin, koska ylempänä olevat moduulit ovat valmiita ensin.
Työstetty tapaus tekee parittelusta konkreettista. Jos maksulaskentamoduuli on valmis, mutta sitä kutsuva kassanäyttö ei ole, ajuri syöttää moduulille joukon tilaussummia ja kirjaa takaisin saadut summat. Jos moduulin kutsuma verohakupalvelu on myös kesken, tynkä palauttaa kiinteän veroprosentin, joten laskenta suoritetaan edelleen. Kumpaakaan rakennustelineiden osaa ei lähetetä; molemmat hylätään, kun varsinaiset moduulit saapuvat, minkä vuoksi testituplausten väärinkäsitys mainitaan myöhemmin toistuvana haasteena.
Esimerkkivinkkejä moduulitestaukseen
Tässä on muutamia vinkkejä, jotka kannattaa ottaa huomioon ennen moduulitestauksen suorittamista.
- Revtutustu testitapauksiin ennen niiden käyttöä.
- Vältä epäselvyyksiä ristiriitojen lähteestä.
- Käytä automatisoituja testaustyökaluja.
- Tarkastele muuttujia, joiden tulisi pysyä muuttumattomina.
- Vaihda moduuleja testaajien välillä välttääksesi itsetestauksia.
- Käytä testitapauksia uudelleen.
Viidennellä vinkillä on enemmän painoarvoa kuin sen pituus antaa ymmärtää. Kehittäjä, joka testaa vain juuri kirjoitettua moduulia, toistaa samoja oletuksia, jotka tuottivat vian, joten moduulien kierrättäminen käyttäjien välillä on yksi edullisimmista saatavilla olevista laadunparannuksista.
Yksikkötestaus vs moduulitestaus
Näitä kahta termiä käytetään monissa tiimeissä keskenään, mutta niiden laatija ja laajuus eroavat toisistaan.
| Moduulien testaus | Yksikkötestaus |
| Moduulitestit ovat kokoelma testejä, jotka testaaja on kirjoittanut sen jälkeen, kun kehittäjä on kirjoittanut jonkin koodin | Yksikkötestejä ovat kokoelma testejä, jotka kehittäjä kirjoittaa ohjelmistokehitysprosessin aikana |
| Moduulitestaus voi sisältää yksikkötestien yhdistämistä | Yksikkötestaus voi testata yksiköitä erikseen |
Moduulitestaus vs. komponenttitestaus vs. integraatiotestaus
Moduulitestaus sijaitsee myös kahden vierekkäisen tason vieressä, jotka on helppo sekoittaa siihen. Taulukko erottaa ne sen mukaan, mitä testataan ja kuka sen normaalisti suorittaa.
| Aspect | Moduulien testaus | Komponenttien testaus | Integrointitestaus |
| Testattavana | Yksi aliohjelma, luokka tai proseduuri | Yksi itsenäinen komponentti välittömine riippuvuuksineen | Yhdistettyjen moduulien väliset rajapinnat |
| Tavallinen omistaja | Testaaja, koodin kirjoittamisen jälkeen | testaaja | Integraatiotestaaja |
| Rakennustelineet | Ohjaimet ja tynkät | Ulkoisten riippuvuuksien tynkät | Asteittain vähemmän testituplauksia |
| Vika paljastunut | Logiikkavirhe moduulin sisällä | Komponentin toimintavirhe | Rajapinta- ja tiedonsiirtovirhe |
Arkikäytössä komponenttien testaus ja moduulitestausta käsitellään usein samana toimintana, kun taas integraatiotestaus alkaa vasta, kun yksittäiset moduulit ovat läpäisseet kukin omat kokeensa.
Haasteita moduulitestauksessa
Nämä ovat haasteita, joita tiimit kohtaavat useimmiten, kun moduulitestaus otetaan käyttöön.
- Ei-inkrementaalinen testaus vaatii enemmän työtä — Kaiken yhdistäminen ensin tarkoittaa, että yksittäinen vika voi lähettää testaajat takaisin koko ohjelman läpi.
- Väärinkäsitystesti kaksinkertaistuu — epärealistisen arvon palauttava tynkä tuottaa vihreän ajon, joka ei todista mitään.
- Virheenkorjaustestit usein — scaffolding-koodissa on omat virheensä, ja ajurin korjaamiseen käytetty aika ei ole moduulin testaamiseen käytettyä aikaa.
- Pitää ymmärtää koodi — Valkoisen laatikon suunta tarkoittaa, että testaaja, joka ei osaa lukea moduulia, ei voi suunnitella sille mielekkäitä tapauksia.
