Teste uporabljajte kot dokazila
DokončanoIzberite preverjanja, ki zaznajo napačno delovanje. Ustvarjene teste preglejte enako skrbno kot ustvarjeno izvedbo.
Izdajatelj TaigaKako pišemo
Preverite razumevanjeUstvarjen test nadomesti funkcijo avtorizacije s testnim nadomestkom, ki vedno dovoli dostop. Kaj dokazuje uspešen rezultat?Opravite vajo
Kaj se boste naučili
- Vsako pomembno zahtevo povežite s smiselnim preverjanjem.
- Ločite dokazila testov enot, integracijskih testov in testov od začetka do konca.
- Prepoznajte test, ki ponavlja isto napačno predpostavko kot izvedba.
Začnite z zahtevo
Testi so dokazila za določene trditve. Uspešen zagon testov ne dokazuje vseh lastnosti programske opreme. Pred zahtevo za teste določite pomembno delovanje in napako, ki jo mora posamezno preverjanje zaznati.
Pri izmišljenem izvozu podatkov organizacije je glavna zahteva izolacija podatkov. Uporabnik organizacije A ne sme prejeti zapisov organizacije B. Test, ki preveri samo uspešen prenos, te zahteve ne dokazuje.
Agent naj pojasni povezavo med zahtevo in preverbo v testu. Tako lažje zaznate manjkajoče primere, preden nabor testov postane velik.
Izberite ustrezen obseg testa
Test enote lahko hitro preveri majhno pretvorbo. Integracijski test lahko preveri skupno delovanje komponent. Test od začetka do konca lahko preveri pomembno zaporedje uporabniških dejanj v nameščeni ali reprezentativni aplikaciji.
Uporabite najožji obseg, ki zagotavlja zahtevana dokazila. Oblikovalnik ne potrebuje celotnega testa v brskalniku za vsak vhod. Meja avtorizacije lahko potrebuje dejansko pot zahteve in dostopa do podatkov. Ključna interakcija v brskalniku potrebuje dokazila o izrisanem vmesniku.
| Trditev | Primer dokazila |
|---|---|
| Narekovaj v izhodu CSV je pravilno zapisan z ubežnim zaporedjem | Test enote z narekovajem v polju |
| Druga organizacija ne more prebrati izvoza | Integracijski test skozi dejansko avtorizacijo |
| Uporabnik tipkovnice lahko začne izvoz | Test v brskalniku in ročni pregled s tipkovnico |
| Neuspel izvoz poda uporabno napako | Preverjanje poti ob napaki na ustreznem vmesniku |
Noben določen odstotek vrst testov ne ustreza vsem sistemom. Izberite jih glede na napako, ki jo morate zaznati, in strošek vzdrževanja preverjanja.
Izognite se skupni napačni predpostavki
Agent lahko napiše izvedbo in teste iz istega napačnega razumevanja. Oboje se lahko ujema, zahteva pa ostane neizpolnjena.
Recimo, da izvedba filtrira zapise po ID-ju organizacije iz zahteve. Test uporabi isti ID za prijavljenega uporabnika in zahtevo. Uspe. Manjka primer uporabnika, ki zahteva ID druge organizacije.
Ta primer dodajte skozi dejansko pot zaupanja vredne identitete in avtorizacije. Testni nadomestek, ki vedno vrne »dovoljeno«, ne more dokazati izolacije med najemniki. Dokazuje samo delovanje po uspešni avtorizaciji.
Preverite, ali test lahko zazna napako
Pri znani napaki izvedite nov regresijski test na napačni različici v ločeni veji. Potrdite, da ne uspe zaradi predvidenega razloga. Nato uporabite popravek in test ponovite.
Test, ki ne uspe, ker ne more naložiti testnih podatkov, še ni dokazilo o poslovnem delovanju. Preglejte razlog neuspeha in ne samo izhodne kode.
Pri širših spremembah lahko mutacijsko testiranje pomaga oceniti, ali izbrane spremembe kode povzročijo neuspeh testov. Ima svoj strošek in ne nadomesti pregleda zahtev. Uporabite ga, kadar dodatna dokazila podpirajo pomembno odločitev.
Dokazila ohranite povezana s spremembo
Ustrezna preverjanja izvedite na končni reviziji. Zabeležite preskočena preverjanja in razloge zanje. Rezultat starejšega commita po popravku ob pregledu morda ne velja več.
Testi naj bodo razumljivi. Prednost dajte izrecni pripravi in preverbi namesto velikemu pomožnemu delu kode, ki skrije pomembni pogoj. Odstranite odvečna preverjanja, če povečajo strošek vzdrževanja, ne da bi zaznala drugačno napako.
Pregledovalec naj zna povedati, kaj testi dokazujejo in kaj ostaja negotovo. To pojasnilo je uporabnejše od velikega števila testov.
Opravite vajo
Izberite en ustvarjen test. Navedite zahtevo, ki jo preverja. V ločeni veji začasno vnesite relevantno napako. Potrdite, da test ne uspe zaradi predvidenega razloga, nato povrnite kodo. Zabeležite, česa test še vedno ne pokriva.
Prenesi delovni list (Markdown)Če počistite to izbiro, izbrišete ves napredek, shranjen v tem brskalniku.
Napredek ostane v tem brskalniku. Brez računa in sledenja.
Viri in nadaljnje branje
- Google Engineering Practices: Review tests for useful assertions ↗
- Google Testing Blog: Test scope and feedback ↗