Kasuta teste tõenditena
Vali kontrollid, mis suudavad vale käitumise tuvastada. Vaata genereeritud testid üle sama hoolikalt kui genereeritud teostus.
Avaldaja TaigaKuidas me kirjutame
Mida õpid
- Seo iga oluline nõue sisulise kontrolliga.
- Erista ühik-, integratsiooni- ja läbivate testide tõendeid.
- Tuvasta test, mis kordab teostusega sama valet eeldust.
Alusta nõudest
Testid on tõendid konkreetsete väidete kohta. Edukas testikäivitus ei tõenda tarkvara kõiki omadusi. Enne testide küsimist määra oluline käitumine ja viga, mille iga kontroll peab tuvastama.
Väljamõeldud organisatsiooni andmeekspordi põhinõue on andmete eraldatus. Organisatsiooni A kasutaja ei tohi saada organisatsiooni B kirjeid. Test, mis kontrollib ainult edukat allalaadimist, ei tõenda selle nõude täitmist.
Palu agendil selgitada nõude ja testi kontrolltingimuse seost. Nii on puuduvaid juhtumeid lihtsam märgata enne, kui testikomplekt suureks kasvab.
Vali sobiva ulatusega test
Ühiktest saab väikest teisendust kiiresti kontrollida. Integratsioonitest saab kontrollida komponentide koostööd. Läbiv test saab kontrollida olulist kasutustegevuste jada juurutatud või esinduslikus rakenduses.
Kasuta kõige kitsamat ulatust, mis annab vajaliku tõendi. Vormindaja ei vaja iga sisendi jaoks täielikku brauseritesti. Autoriseerimispiir võib vajada päris marsruuti ja andmetele juurdepääsu teed. Kriitiline brauseritoiming vajab tõendeid kuvatud kasutajaliidese kohta.
| Väide | Tõendi näide |
|---|---|
| CSV-väljund paokoodib jutumärgi õigesti | Ühiktest väljaga, mis sisaldab jutumärki |
| Teine organisatsioon ei saa eksporditud andmeid lugeda | Integratsioonitest tegeliku autoriseerimise kaudu |
| Klaviatuuri kasutaja saab ekspordi käivitada | Brauseritest ja käsitsi tehtud klaviatuurikasutuse ülevaatus |
| Ebaõnnestunud eksport annab kasuliku veateate | Veatee kontroll asjakohases liideses |
Ükski kindel testitüüpide protsentuaalne jaotus ei sobi igale süsteemile. Vali tuvastatava tõrke ja kontrolli hoolduskulu järgi.
Väldi ühist valet eeldust
Agent võib kirjutada teostuse ja testid sama vääritimõistmise põhjal. Need võivad omavahel sobida, kuigi nõue jääb täitmata.
Oletame, et teostus filtreerib kirjeid päringus antud organisatsiooni ID järgi. Test kasutab sisseloginud kasutaja ja päringu jaoks sama ID-d. Test õnnestub. Puuduv juhtum on kasutaja, kes küsib teise organisatsiooni ID-d.
Lisa see juhtum tegeliku usaldatud identiteedi ja autoriseerimise tee kaudu. Testiasendus, mis tagastab alati „lubatud“, ei saa tõendada tenant’ide eraldatust. See tõendab ainult autoriseerimise õnnestumisele järgnevat käitumist.
Kontrolli, et test saab ebaõnnestuda
Teadaoleva vea korral käivita uus regressioonitest eraldatud harus vigase versiooni vastu. Veendu, et see ebaõnnestub ettenähtud põhjusel. Seejärel rakenda parandus ja käivita test uuesti.
Test, mis ebaõnnestub testandmete laadimisvea tõttu, ei ole veel tõend ärilise käitumise kohta. Uuri tõrget, mitte ainult väljumiskoodi.
Laiemate muudatuste korral võib mutatsioonitestimine aidata hinnata, kas valitud koodimuudatused põhjustavad testide ebaõnnestumise. Sellega kaasneb kulu ja see ei asenda nõuete ülevaatust. Kasuta seda seal, kus lisatõendid toetavad oluliste tagajärgedega otsust.
Hoia tõendid muudatusega seotuna
Käivita asjakohased kontrollid lõpliku revisjoni peal. Pane kirja vahele jäetud kontrollid ja nende põhjused. Varasema commit’i tulemus ei pruugi pärast ülevaatusel tehtud parandust enam kehtida.
Hoia testid arusaadavad. Eelista selget ettevalmistust ja kontrolltingimust suurele abifunktsioonile, mis olulise tingimuse varjab. Eemalda korduvad kontrollid, kui need lisavad hoolduskulu ilma teistsugust tõrget tuvastamata.
Ülevaataja peab suutma öelda, mida testid tõendavad ja mis jääb ebaselgeks. See selgitus on kasulikum kui suur testide arv.
Tee harjutus
Vali üks genereeritud test. Sõnasta nõue, mida see kontrollib. Lisa vastav viga ajutiselt eraldatud harus. Veendu, et test ebaõnnestub ettenähtud põhjusel, ja taasta seejärel kood. Pane kirja, mida test endiselt ei kata.
Laadi tööleht alla (Markdown)Kontrolli oma arusaamist
Allikad ja lisalugemine
- Google Engineering Practices: Review tests for useful assertions ↗
- Google Testing Blog: Test scope and feedback ↗
Seotud lugemine Taigalt
Selle valiku tühjendamine kustutab kogu selles brauseris salvestatud edenemise.
Edenemine jääb sellesse brauserisse. Kontot ega jälgimist pole.