Kuidas kirjutada ühikuteste

Ühiktestid on hea viis programmide kontrollimiseks nende väljatöötamise ajal. Nende kirjutamiseks peate oma programmi jaotama iseseisvateks üksusteks ja looma testid, mis kontrollivad iga üksust ükshaaval kontrollitult. Analüüsige oma tulemusi ja kasutage neid oma programmi koodi täiustamiseks. Kuigi ükski test ei suuda kõiki võimalikke vigu kontrollida, aitab tõhusate ühikutestide käivitamine tagada, et teie programm töötab ootuspäraselt.

1
Kaardistage oma programm ühikuteks. Hea ühikutesti põhiaspekt on see, et see kontrollib ainult ühte programmi osa. Olenemata sellest, kas soovite testida olemasolevat programmi või planeerite teste programmile, mis pole veel kirjutatud, peate selle jaotama diskreetseteks osadeks (“ühikuteks”). Seejärel kirjutage ühikutest “Ühiku” määratlus varieerub suuresti sõltuvalt teie arendatava programmi tüübist. Üksus võib olla klass, aga ka üksik funktsioon või protseduur.

2
Tehke kindlaks, kas vajate olekupõhist või interaktsioonipõhist testimist. Ühikutesti saab kasutada kahte tüüpi stsenaariumide kontrollimiseks. Olekupõhist testimist kasutatakse selleks, et näha, kas programmiüksus annab õigeid või oodatud tulemusi. Interaktsioonipõhist testimist kasutatakse seevastu selleks, et näha, kas üksus seab eeldatavad meetodid ellu. Hea testi kirjutamiseks peate tuvastama, mida proovite testida, nii et pidage eeskujuks üht neist lähenemisviisidest.

3
Planeerige lihtsad ja loetavad testid. Pidage meeles, et peate kirjutama palju ja palju ühikuteste. Soovite käivitada ühikutesti oma programmi iga osa jaoks. Testide lihtsana hoidmisel on mitmeid eeliseid: lihtsad testid aitavad tagada, et testite tõesti ainult ühte seadet korraga. Testide kood on usaldusväärne. Kui teil on keeruline testkood, on see probleemidele kalduvam, mistõttu on testitava programmi koodis vigu nii raskem näha. Testid on kiiremad, mis vähendab testi tegemiseks kuluvat üldist aega. testimine. Lihtne test on loetav, mis tähendab, et juba koodi ennast vaadates võite näha mõningaid võimalikke probleeme.

4
Eristada ühikuteste integratsioonitestidest. Kogenud arendajad teavad, et programmi testimiseks on erinevaid viise. Ühiktestid on kitsad, spetsiifilised ja hõlmavad ainult ühte programmi osa. Integratsioonitestid seevastu vaatavad kogu programmi reaalses keskkonnas. Teisisõnu, ühiktestimine tagab programmi üksikute osade toimimise, samas kui integratsioonitestimine kontrollib osade koos töötamist. Integratsioonitestid nõuavad tavaliselt ka väliseid elemente, nagu veebiserverid või andmebaas. Seadmetestide kontrolli all hoidmiseks kirjutage need üles nii, et need ei vajaks väliseid elemente.

5
Määrake testi käivitamiseks vajalikud andmed. Seadmetesti tegelikuks käivitamiseks vajate sisendit, kuid see võib olenevalt arendatava programmi tüübist suuresti erineda. Levinud näited hõlmavad mõningaid muutujaid või andmete loendit (nt numbrikomplekti). Võite proovida käivitada ühikutesti väga lihtsate andmetega või näivandmetega. See aitab teil kiiresti hinnata, kas seade töötab hästi.

6
Initsialiseerige seade, mida soovite testida. Määrake see juhtuma, kasutades kasutatava programmeerimiskeele lähtestamiskoodi protokolli. Seda sammu nimetatakse AAA-meetodi osaks “Korralda”. Seda programmi osa, mida testite, nimetatakse testitavaks süsteemiks (SUT). Näiteks võite lähtestada üksuse, mis teostab komplekti aritmeetikat. numbritest.

7
Kasutage testitavat süsteemi (SUT). Teie ühikutesti järgmine osa peaks paluma seadmel “Tegutseda”. See, mida te testil teha palute, sõltub programmi keelest ja tüübist, kuid üldiselt teeb test midagi sellist, nagu SUT-i meetodi käivitamine. Näiteks võib nõutav toiming olla arvude komplekti summa andmine.

8
Jälgige programmi käitumist. Peate ühikutesti sisaldama aspekti, mis kinnitab, kas testitav programm töötab korralikult või mitte. Oodatavat tulemust silmas pidades kirjutage oma ühikutest, et see “läbib”, kui asjad lähevad Kui soovite, et ühik annaks ainult paarisarvude summa, siis eeldate, et summa on ka paarisarv. Kui üksus annab tulemuseks paaritu arvu, siis on see testis läbi kukkunud.

9
Analüüsige tulemusi. Kui test on läbinud, on teie kord juhtunut tõlgendada. Kas see läks läbi või ebaõnnestus? Rikke tuvastamine näitab, et teie programmi koodis on probleem, mis tuleb parandada. Kuna töötate korraga vaid ühe seadmega, on probleemi lihtsam isoleerida. Kui teie hüpoteetiline SUT eelmisest näitest andis näiteks paaritu summa, siis paaritu summa saab kontrollida nii summat andnud koodi kui ka paarisarvude komplekti toonud koodi, et näha, kus viga on.

10
Katsetage halbade andmetega. Asjatundlikud arendajad soovitavad seda oma ühikutestidega proovida. Rangelt teaduslikust vaatenurgast ei tõenda see, et programm teeb täpselt seda, mida ootasite, et see tegelikult töötab. Halbade andmete proovimine näitab, et programm tuvastab probleemid ja reageerib vastavalt. Eelmise näitega jätkates: kui teie SUT toodab paarissummasid, ei pruugi see tõestada, et see töötab õigesti – see võib lihtsalt anda valesummasid. Proovige ühikutesti halbade andmetega, näiteks paaritute täisarvude komplektiga. Programm peaks näitama, et see ei saanud komplektis kõigi paarisarvude summat toota, kuna komplektis ei olnud ühtegi. Kui sisestate halvad andmed ja test jätab mulje, nagu poleks midagi valesti (näiteks pakub see siiski summa), siis teate, et ühikuga on probleem (näiteks võib-olla otsib kood paarisarvude asemel paarituid numbreid).

11
Enne koodi kirjutamist kirjutage test. See võib tunduda vastuoluline, kuid arendajad vannuvad, et ühikutesti läbimiseks tuleb kirjutada kood, mitte kasutada ühikuteste, et näha, kas kood töötab. Seda võib kasutada juhul, kui te pole tegelikult koodi kirjutama hakanud või kui teil pole veel palju. Olge eesmärgile orienteeritud: kirjutage oma ühikutestid, et kontrollida, kas kood teeb seda, mida oodatakse, seejärel kirjutage kood, seejärel testige seda. Testide kirjutamine julgustab kõigepealt kirjutama täpselt nii palju koodi, et programm saaks teha seda, mida ta vajab. kogemata kaasates ebavajaliku või halva koodi.

12
Vajadusel tehke koodi kirjutamisel välja ühikutestid. Kui olete oma programmi kirjutamisega hästi hakkama saanud, saate siiski kasutada ühikuteste. Lihtsalt joonistage oma programmi kaardile, et jagada see üksikuteks üksusteks. Käivitage testid AAA-meetodit kasutades ja kohandage oma koodi vastavalt testitulemustele.

13
Kirjutage testitav kood. Üks raskemaid asju programmiarenduses ühikutesti kasutamise juures on see, et peate hoolikalt planeerima, et teil oleks tegelikult testitav kood. Kui teie programm on täis elemente, mida te tegelikult testida ei saa, ei saa te kasutada ühikutesti meetodit, et kontrollida, kas teie programm töötab ootuspäraselt. Pidage seda programmi koodi kirjutamisel meeles. Näiteks vältige oma programmi koodis selliseid asju nagu peidetud sisendid ja mittedeterministlikud tegurid.