Mis on moodulite testimine? Definitsioon, näited
⚡ Nutikas kokkuvõte
Moodultestimine kontrollib üksikuid alamprogramme, alamrutiine, klasse ja protseduure, mitte kokkupandud programmi, seega ilmnevad defektid väikeses, hästi mõistetavas koodiplokis, kus neid on odav leida ja parandada.

Mis on moodulite testimine?
Mooduli testimine on tarkvara testimise tüüp, mis kontrollib programmi üksikuid alamprogramme, alamrutiine, klasse või protseduure. Kogu tarkvaraprogrammi korraga testimise asemel soovitab moodultestimine testida programmi väiksemaid ehitusplokke.
Moodulite testimine on suures osas valge kasti põhimõttel. Moodulite testimise eesmärk ei ole demonstreerida mooduli korrektset toimimist, vaid selles oleva vea olemasolu. See inversioon on oluline: testimisjärk, mis ei leia midagi, on kinnitanud väga vähe, samas kui testimisjärk, mis paljastab defekti, on oma töö teinud.
Mooduli tasemel testimine võimaldab testimisprotsessi sisse viia ka paralleelsuse, kuna see loob võimaluse testida mitut moodulit samaaegselt, selle asemel et oodata täielikku ehitust.
Miks teha moodulite testimist
Moodulite testimine on soovitatav, kuna see muudab defektide tuvastamise majanduslikku külge.
- Programmi väiksemates osades vigade või vigade tuvastamise tõenäosus suureneb.
- Mitut moodulit saab testida samaaegselt ja seetõttu toetab see lähenemisviis paralleelset testimist.
- Testimise keerukust saab hõlpsalt hallata, kuna iga moodulit arutletakse eraldi.
- Ühe mooduli seest leitud defekt on tracvõimeline töötlema väikest koodimahtu, seega lüheneb silumisaeg järsult.
Kuidas teha moodulite testimist?
Projekteerimine a testjuhtum on moodulitestimise oluline osa. Moodultesti testijuhtumite kavandamisel peab testija arvestama kahe asjaga.
- Mooduli spetsifikatsioon
- Mooduli lähtekood
Analüüsige mooduli loogikat, kasutades ühte või mitut järgmistest valge kast meetodid ja seejärel täiendada neid testjuhtumeid, rakendades Must kast meetodid mooduli spetsifikatsioonile. Realistlikud väärtused on sama olulised kui valitud teed, seega valmistage ette testi andmed juhtumite kõrval, mitte pärast.
Kui testjuhtumid on disainitud, on järgmine samm moodulite testimiseks kombineerimine. Kasutatav meetod on kas kasvav või mitte-inkrementaalne meetod.
- Mitteinkrementaalne meetod — kõiki mooduleid testitakse eraldi. Esmalt ühendatakse kõik moodulid ja seejärel testitakse kogu programmi.
- Inkrementaalne meetod — iga moodulit testitakse esmalt ja seejärel lisatakse see järk-järgult testitud kollektsiooni. See teostab samm-sammult uuesti testimise.
- Järkjärgulise testimise raames on kaks lähenemisviisi, ülevalt alla ja põhjani katsetamine.
- Mooduli käivitamiseks valitud andmetega on vaja draiverit testandmete edastamiseks, käivitamise jälgimiseks ja tulemuste jäädvustamiseks.
Kahe meetodi vahel valimine on kompromiss seadistamise pingutuse ja diagnoosimise lihtsuse vahel.
| Aspekt | Inkrementaalne meetod | Mitteinkrementaalne meetod |
| Kombinatsioon | Üks moodul korraga, lisatakse testitud kollektsiooni | Kõik moodulid on ühendatud ja seejärel koos testitud |
| Tellinguid on vaja | Rohkem draivereid ja tsensuuri, kirjutatud järk-järgult | Vähem topeltteste, kuna olemas on päris moodulid |
| Rikke isolatsioon | Tugev – tõrge osutab äsja lisatud moodulile | Nõrk – rike võib alguse saada ükskõik kust |
| Sobib kõige paremini | Suured ehitised paljude interaktiivsete moodulitega | Väikesed programmid väheste moodulite ja madala sidestusega |
Draiverid ja tüved moodulite testimisel
Ülalmainitud draiver on pool paarist. Kuna testitav moodul asub harva kõneahela ülaosas või allosas, asendavad testijad puuduva koodi mõlemal küljel näivkoodiga.
- juht — asendab testitavast moodulist eespool asuva kutsuva mooduli. See annab testandmed, käivitab mooduli, jälgib selle täitmist ja jäädvustab tulemused. Alt-üles testimine sõltub draiveritest, sest madalamad moodulid on valmis enne kõrgemaid.
- Stub — asendab testitavast allpool asuva kutsutud mooduli. See võtab kutse vastu ja tagastab fikseeritud, teadaoleva vastuse, et testitav moodul saaks oma teekonna lõpule viia. Ülalt-alla testimine sõltub tüvedest, kuna kõrgemal asuvad moodulid on esimesena valmis.
Töötatud juhtum muudab sidumise konkreetseks. Kui makse-arvutuse moodul on lõpetatud, kuid seda kutsuv kassaekraan pole veel lõpetatud, edastab draiver moodulile tellimuste kogusummade komplekti ja registreerib vastuse. Kui mooduli kutsutav maksuotsingu teenus on samuti lõpetamata, tagastab tüvi fikseeritud maksumäära, nii et arvutus jätkub. Kumbki tellinguosa ei saadeta; mõlemad visatakse ära, kui päris moodulid saabuvad, mistõttu on testi topeltülesannete valesti mõistmine hiljem korduva probleemina loetletud.
Näidisnäpunäiteid moodulite testimiseks
Enne moodulite testimist on siin mõned näpunäited, mida kaaluda.
- RevVaadake enne kasutamist testjuhtumid üle.
- Vältige segadust lahknevuste allika osas.
- Kasutage automatiseeritud testimistööriistu.
- Uurige muutujaid, mis peaksid muutumatuna püsima.
- Enesetestide vältimiseks vahetage testijate vahel mooduleid.
- Kasutage testjuhtumeid uuesti.
Viiendal näpunäitel on rohkem kaalu, kui selle pikkus viitab. Arendaja, kes testib ainult äsja kirjutatud moodulit, kordab samu eeldusi, mis tekitasid defekti, seega on moodulite vahetamine inimeste vahel üks odavamaid saadaolevaid kvaliteedi parandamise viise.
Üksuse testimine vs moodulite testimine
Paljudes meeskondades kasutatakse neid kahte terminit vaheldumisi, kuid autorlus ja ulatus erinevad.
| Mooduli testimine | Üksuse testimine |
| Moodulitestid on testide kogum, mille on koostanud testija pärast seda, kui arendaja on mõne koodi kirjutanud | Ühiktestid on testide kogum, mille arendaja kirjutab tarkvaraarendusprotsessi käigus. |
| Moodulite testimine võib hõlmata ühiktestide kombineerimist | Ühiktestimine võib üksusi testida isoleeritult |
Moodulite testimine vs komponentide testimine vs integratsioonitestimine
Moodulite testimine asub kahe naabertaseme kõrval, mida on sellega lihtne segi ajada. Tabel eraldab need selle järgi, mida testitakse ja kes seda tavaliselt teeb.
| Aspekt | Mooduli testimine | Komponentide testimine | Integratsiooni testimine |
| Testi all | Üks alamprogramm, klass või protseduur | Üks iseseisev komponent koos selle otseste sõltuvustega | Kombineeritud moodulite vahelised liidesed |
| Tavaline omanik | Testija pärast koodi kirjutamist | Tester | Integratsioonitestija |
| Tellingud | Draiverid ja stubid | Väliste sõltuvuste tüved | Järk-järgult vähem testide dubleerimist |
| Defekt paljastatud | Mooduli sees olev loogikaviga | Komponendi käitumisviga | Liidese ja andmete edastamise viga |
Igapäevases kasutuses komponentide testimine ja moodulite testimist käsitletakse sageli sama tegevusena, samas kui integratsiooni testimine algab alles siis, kui kõik üksikud moodulid on iseseisvalt läbinud.
Väljakutsed moodulite testimisel
Need on väljakutsed, millega meeskonnad moodulitestimise kasutuselevõtul kõige sagedamini kokku puutuvad.
- Mitteastmeline testimine nõuab rohkem tööd — kõige esmalt kombineerimine tähendab, et üksainus tõrge võib saata testijad kogu programmi läbima.
- Arusaamatuse test kahekordistub — tüvi, mis tagastab ebareaalse väärtuse, annab rohelise jooksu, mis ei tõesta midagi.
- Silumiskatsed sageli — tellingute koodil on omad vead ja draiveri parandamisele kuluv aeg ei ole mooduli testimisele kulutatud aeg.
- Peab koodist aru saama — valge kasti orientatsioon tähendab, et testija, kes ei oska moodulit lugeda, ei saa sellele sisukaid juhtimiskogemusi kujundada.
