Testi ulatus tarkvara testimisel: kuidas seda mõõta
⚡ Nutikas kokkuvõte
Tarkvara testimise testide katvus mõõdab, kui suurt osa rakendusest testide komplekt tegelikult läbib. See paljastab testimata nõuded, kooditeed ja riskid, et meeskonnad saaksid lisada sihipäraseid juhtumeid ja avaldada need mõõdetava kindlusega.

Mis on testi katvus?
Testi katvus on tarkvara testimises määratletud kui mõõdik, mis mõõdab testikomplekti poolt sooritatud testimise mahtu. See hõlmab teabe kogumist selle kohta, millised programmi osad testimiskomplekti käitamisel käivitatakse, et teha kindlaks, millised tingimuslausete harud on võetud.
Lihtsamalt öeldes on see tehnika, mis tagab, et teie testid testivad teie koodi või seda, kui suure osa koodist te testi käivitades kasutasite.
Mida testi katvus teeb?
Reaalajas projektis toetab testimine nelja praktilist tegevust:
- Testjuhtumite komplektiga rakendamata nõude ala leidmine
- Aitab luua täiendavaid testjuhtumeid katvuse suurendamiseks
- Katse katvuse kvantitatiivse mõõdiku tuvastamine, mis on kvaliteedikontrolli kaudne meetod
- Mõttetute testjuhtumite tuvastamine, mis ei suurenda katvust
Tarkvaratehnika testimise katvuse eelised
Need tegevused väljenduvad betooni inseneritöös.
- See võib tagada testi kvaliteedi
- See võib aidata tuvastada, milliseid koodiosi vabastamisel või parandamisel tegelikult puudutati
- See suudab teie rakenduses kindlaks teha kõik otsustuspunktid ja teed, mida ei testitud, mis võimaldab teil suurendada testide ulatust.
- Takistama defekt leke
- Aega, ulatust ja kulusid saab kontrolli all hoida
- Defektide ennetamine projekti elutsükli varases staadiumis
- Nõuete lüngad, testjuhtumid ja defektid üksuse ja koodi tasemel on hõlpsasti leitavad
Testi katvuse tüübid
Katvus ei ole kunagi üks number. Meeskonnad track mitut tüüpi korraga, sest igaüks neist vastab sama sviidi kohta käivale erinevale küsimusele. Allolev tabel on rühmitanud tüübid, millega te kõige sagedamini kokku puutute.
| Katvuse tüüp | Mida see mõõdab | Kõige paremini kasutatav |
|---|---|---|
| Aruande (rea) katvus | Täitmisread käivitatakse vähemalt üks kord | Ühiktestid ja pärandkoodi auditid |
| Filiaali või otsuse katvus | Iga otsuse õige ja vale tulemus | Tingimuslik ja valideerimisloogika |
| Seisundi katvus | Iga tõeväärtuse alamväljend on tõene ja väär | Liitsõna JA- või VÕI-avaldised |
| Raja ulatus | Mooduli kaudu läbitud unikaalsed marsruudid | Ohutuskriitilised ja finantsvood |
| Funktsioonide ulatus | Testide poolt kutsutavad funktsioonid või meetodid | API ja teenusekihid |
| Nõuete ulatus | Nõuded on kaardistatud vähemalt ühe testiga | Vastuvõtmine ja tagasilükkaminetraclõplik kinnitus |
| Riski kate | Tuvastatud kõrge riskiga piirkondade testimine | Lühikesed vabanemistsüklid |
Esimesed viis tüüpi on kooditaseme mõõdud ja kuuluvad valge kasti testimine, samas kui nõuded ja riskide katmine toimuvad testplaani tasandil.
Millised on peamised erinevused Code Katvus ja testi katvus?
Code katmine ja testi katvus on mõõtmistehnikad, mis võimaldavad teil hinnata oma rakenduskoodi kvaliteeti.
Siin on mõned kriitilised erinevused nende katvusmeetodite kabiinide vahel:
| parameetrid | Code Katmine | Testi katvus |
|---|---|---|
| Määratlus | Code katvustermin, mida kasutatakse rakenduse koodi rakendamisel rakenduse töötamise ajal. | Testi katvus tähendab üldist testimisplaani. |
| Eesmärk | Code Katvuse mõõdikud aitavad meeskonnal oma automatiseeritud teste jälgida. | Testi katvuse kohta antakse üksikasjad selle kohta, millisel tasemel on rakenduse kirjalikku kodeerimist testitud. |
| Alamtüübid | Code kindlustus, mis on jagatud alatüüpideks nagu väljavõtte kindlustus, tingimuslik kindlustus, filiaali kindlustus Toggle-leviala, Mikroneesia Liidumaa leviala. | Testi katvuse meetodi alamtüüp puudub. |
Testi katvuse valem
Testi ulatuse arvutamiseks peate järgima alltoodud samme.
Step 1) Loendama Y, teie kasutatava tarkvara koodiridade kogupikkus testimine
Step 2) Loendama X, koodiridade arv, mida kõik testid hetkel täidavad
Nüüd peate leidma (X jagatud Y-ga) korrutatuna 100-ga. Selle arvutuse tulemuseks on teie testi katvuse %.
Näiteks:
Kui süsteemikomponendi koodiridade arv on 500 ja kõigi olemasolevate testide peale kokku käivitatud ridade arv on 50, siis on teie testi ulatus:
(50 / 500) * 100 = 10% // executed lines divided by total lines
Testi katvuse näited
Nagu allolevad näited näitavad, pole ainuüksi protsent kunagi kogu lugu.
Näide 1:
Näiteks kui ese on „nuga”, mida soovite testida, peate keskenduma sellele, kas see lõikab köögivilju või puuvilju täpselt või mitte. Siiski on ka teisi aspekte, mida tuleks jälgida, näiteks kas kasutaja peaks suutma seda mugavalt käsitseda.
Näide 2:
Näiteks kui soovite kontrollida märkmikurakendust, on selle oluliste funktsioonide kontrollimine hädavajalik. Siiski peate käsitlema ka teisi aspekte, näiteks märkmikurakendus reageerib ootuspäraselt teiste rakenduste kasutamisel, kasutaja saab aru rakenduse kasutamisest ega jookse kokku, kui kasutaja proovib teha midagi ebatavalist jne.
Testi katvuse tehnikad
Mõlemad näited viitavad samale järeldusele: hõlmatuseesmärgi saavutamine sõltub vähem testide arvu kirjutamisest ja rohkem õige testimistehnika valikust. Allpool toodud tehnikad laiendavad hõlmatust, säilitades samal ajalping sviit väike.
- Piirväärtuste analüüs: Valib sisendid iga kehtiva vahemiku servades, kus defektid kõige tihedamalt esinevad. Vaata piirväärtuste analüüs töötatud juhtumite puhul.
- Ekvivalentsuse jaotamine: Rühmitab sisendid, mida rakendus käsitleb identselt, nii et üks juhtum saab ohutult esindada tervet väärtuste klassi.
- Otsustustabeli testimine: Hõlmab tingimuste kombinatsioone ja nende eeldatavaid tulemusi ühes ruudustikus.
- Oleku ülemineku testimine: Harjutab kõiki kehtivaid ja kehtetuid liigutusi rakenduse olekute vahel.
- Baasraja testimine: Tuletab juhtimisvoo graafikust minimaalse sõltumatute teede hulga.
- Riskipõhine testimine: Järjestab funktsioonid ärimõju järgi ja hõlmab esmalt kõige riskikamaid.
- Uurimuslik testimine: Paljastab lüngad, mida stsenaariumiga juhtumid ja kajastusaruanded ei kajasta.
Kuidas saab testi katvust saavutada?
Kui tehnikad on valitud, pakuvad leviala neli väljakujunenud marsruuti.
- Testi katvust saab teha staatilise ülevaatuse tehnikate abil, nagu vastastikused eksperdihinnangud, kontrollid ja ülevaade
- Muundades ad-hoc defektid käivitatavateks testjuhtumiteks
- Koodi tasemel või üksuse testimise tasemel saab testi katvuse saavutada automaatse koodikatte või üksuse testi katvuse tööriistade abil
- Funktsionaalset testimist saab teha korralike testihaldustööriistade abil
Kuidas parandada testide ulatust
Katvuse loomine on alguspunkt; selle suurendamine on korduv rutiin. Töötage selle järjestusega läbi iga väljalasketsükli alguses.
- Praeguse numbri baasväärtuseks. Käivita katvusaruanne ja registreeri eraldi aruande, haru ja nõuete katvus, et lüngad jääksid mooduliti nähtavaks, mitte ei oleks peidetud ühe projektiülese keskmise sisse.
- Testide vastavus nõuetele. Ehitage a tracTäpsuse tabel, mis seob iga nõude vähemalt ühe testijuhtumiga. Iga tühi rida on kinnitatud lünk, mitte kahtlus.
- Järjesta moodulid riski järgi. Makse-, autentimis- ja andmemigratsiooniloogika väärib palju põhjalikumat käsitlemist kui staatiline abiekraan, seega kuluta eelarve sinna, kus ebaõnnestumine kõige rohkem kahjustaks.
- Lisage negatiivsed ja servajuhud. Tühjad sisendid, ülemõõdulised väärtused, võrgu ajalõpud ja lubade vead jõuavad harudeni, mida õnneliku tee testid kunagi ei puuduta.
- Kihistage testi tasemed. Ühendama üksuse testimine, integratsiooni testimineja otsast lõpuni kontrollid, sest iga tase katab seda, mida teised struktuurilt ei kata.
- Automatiseerige regressioonikomplekt. Promostabiilsed juhtumid automaatika testimine ja täitke need sees CI/CD torujuhe pärast iga commit'i.
- Eemalda üleliigsed juhtumid. Kustuta dubleeritud testid, mis lisavad täitmisminuteid ilma ühtegi katmata rida lisamata.
- RevVaata trendi igas sprindis. Track leviala kõrval defektide tihedusLameda katte korral kasvav leke on varajane hoiatus pimeala kohta.
⚠️ Hoiatus: Ära käsitle 100 protsenti eesmärgina. 85-protsendilise kaitsega komplekt tugevate väidetega kaitseb väljalaset palju paremini kui 95 protsenti pealiskaudsetest kontrollidest, mis käivitavad koodi ilma tulemust kontrollimata.
Testi katvuse puudused
Katvus on endiselt väärtuslik, kuid sellel on piirid, mida tasub enne protsendimäärade esitamist mainida.
- Enamik testi katvuse ülesandeid on käsitsi, kuna automatiseerimiseks pole tööriistu. Seetõttu nõuab nõuete analüüsimine ja testjuhtumite loomine palju vaeva.
- Testi katvus võimaldab teil loendada funktsioone ja seejärel mõõta mitme testiga. Siiski on alati ruumi otsustusvigadele.
