Code Kattavuustyökalu: Tilinpäätösten, sivukonttoreiden ja päätösten testaus

⚡ Älykäs yhteenveto

Code kattavuus on valkolaatikkomittaus, joka raportoi, missä määrin lähdekoodia on harjoiteltu testipaketissa, helping tiimit paikantavat testaamattomia lauseita, haaroja, ehtoja ja polkuja, joissa piileviä vikoja saattaa olla.

  • 🎯 Määritelmä: Code Kattavuus mittaa, kuinka paljon lähdekoodista testisi todellisuudessa suorittavat.
  • 📊 Menetelmät: On olemassa viisi menetelmää: lause-, päätös-, haara-, ehto- ja äärellisen tilakoneen kattavuus.
  • 🧩 Lausunto vs. sivuliike: Tilinpäätöksen kattavuus tarkistaa rivit, kun taas konttorin kattavuus tarkistaa jokaisen päätöksen lopputuloksen.
  • 🇧🇷 Code vs. toiminnallinen: Code kattavuustoimenpiteiden toteutuksen koodi; toiminnallisten kattavuustoimenpiteiden kattamat vaatimukset.
  • 🛠️ Työkalut: Cobertura, OpenClover, EMMA ja Sonar automatisoivat peittoalueen mittaamisen.
  • 🤖 AI-apu: Tekoälytyökalut luovat testejä ja paljastavat automaattisesti testaamattomia, korkean riskin kattavuusaukkoja.

Code Kattavuusopas

Mikä on Code Kattavuus?

Code kattavuus on mittari, joka kuvaa ohjelman lähdekoodin testausastetta. Se on yksi testauksen muoto. valkoisen laatikon testaus joka löytää ohjelman alueet, joita testitapaukset eivät ole harjoitelleet. Se auttaa myös luomaan lisää testitapauksia kattavuuden lisäämiseksi ja koodin kattavuuden kvantitatiivisen mitan määrittämiseksi.

Useimmissa tapauksissa koodin kattavuusjärjestelmä kerää tietoa käynnissä olevasta ohjelmasta. Sitten se yhdistää tiedot lähdekooditietoihin luodakseen raportin testipaketin koodin kattavuudesta.

Miksi käyttää Code Kattavuustestaus?

Tässä on joitain tärkeimpiä syitä käyttää koodin peittoa:

  • Se auttaa mittaamaan testien toteutuksen tehokkuutta.
  • Se tarjoaa kvantitatiivisen mittauksen testauksesta.
  • Se määrittää, missä määrin lähdekoodia on testattu.

Code Kattavuusmenetelmät

Seuraavat ovat tärkeimmät koodin peittomenetelmät:

  • Lausunnon kattavuus
  • Päätöksen kattavuus
  • Sivukonttorin kattavuus
  • Toggle Kattavuus
  • FSM kattavuus

Lausunnon kattavuus

Lausunnon kattavuus on white box -testaustekniikka, jossa kaikki lähdekoodin suoritettavat lauseet suoritetaan ainakin kerran. Sitä käytetään laskemaan lähdekoodissa suoritettujen lauseiden lukumäärä. Lausekattavuuden päätarkoitus on kattaa kaikki mahdolliset polut, rivit ja lauseet lähdekoodissa.

Lausekattavuutta käytetään skenaarioiden johtamiseen testattavan koodin rakenteen perusteella.

Lausunnon kattavuus

Valkolaatikkotestauksessa testaaja keskittyy ohjelmiston toimintaan. Toisin sanoen testaaja keskittyy lähdekoodin sisäiseen toimintaan ohjausvuokaavioiden tai -kaavioiden avulla.

Yleisesti ottaen missä tahansa ohjelmistossa, jos tarkastelet lähdekoodia, siellä on laaja valikoima elementtejä, kuten operaattoreita, funktioita, loogisia merkkejäping, poikkeusten käsittelijät ja niin edelleen. Ohjelmaan syötetystä datasta riippuen jotkin koodilausekkeet eivät välttämättä suoriteta. Lauseiden kattavuuden tavoitteena on kattaa kaikki mahdolliset polut, rivit ja lauseet koodissa.

Ymmärretään tämä esimerkin avulla, joka kertoo, miten tiliotteen kattavuus lasketaan. Tässä tarkastellaan kahta eri skenaariota tarkistaaksemme tiliotteen kattavuusprosentin kussakin skenaariossa.

Lähde Code:

Prints (int a, int b) {                       ------------  Printsum is a function
    int result = a + b;
    If (result > 0)
        Print ("Positive", result)
    Else
        Print ("Negative", result)
    }                                        -----------   End of the source code

Skenaario 1: Jos A = 3, B = 9

Lausunnon kattavuusskenaario 1

Keltaisella merkityt lauseet ovat ne, jotka suoritetaan skenaarion mukaisesti. Suoritettujen lauseiden lukumäärä = 5, lausekkeiden kokonaismäärä = 7, joten lausekkeiden kattavuus = 5/7 = 71 %.

Skenaario 2: Jos A = -3, B = -9

Lausunnon kattavuusskenaario 2

Keltaisella merkityt lauseet ovat ne, jotka suoritetaan skenaarion mukaisesti. Suoritettujen lauseiden lukumäärä = 6, lausekkeiden kokonaismäärä = 7, joten lausekkeiden kattavuus = 6/7 = 85 %.

Mutta kaiken kaikkiaan, jos näet, kaikki lauseet kuuluvat molempien skenaarioiden piiriin. Joten voimme päätellä, että lauseiden kokonaiskattavuus on 100 %.

Mitä selvityksen kattavuus kattaa?

  1. Käyttämättömät lausunnot
  2. Kuollut Code
  3. Käyttämättömät oksat
  4. Puuttuvat lausunnot

Päätöksen kattavuuden testaus

Päätöksen kattavuus on white box -testaustekniikka, joka raportoi jokaisen lähdekoodin totuusarvolausekkeen tosi- tai epätosi-tulokset. Päätöskattavuustestauksen tavoitteena on kattaa ja validoida kaikki saatavilla oleva lähdekoodi tarkistamalla ja varmistamalla, että jokaisen mahdollisen päätöspisteen jokainen haara suoritetaan ainakin kerran.

Tässä kattavuustyypissä lausekkeista voi tulla monimutkaisia, mikä tekee 100 %:n kattavuuden saavuttamisesta haastavaa. Siksi tämän mittarin raportointiin käytetään useita menetelmiä. Nämä menetelmät priorisoivat kriittisimpiä yhdistelmiä. Vaikka se on samanlainen kuin haarautumiskattavuus, se tarjoaa suuremman herkkyyden ohjausvirralle.

Päätöksen kattavuuden testaus

Esimerkki päätöksen kattavuudesta

Harkitse seuraavaa koodia:

Demo(int a) {
    If (a > 5)
        a = a * 3
    Print (a)
    }

Skenaario 1: a:n arvo on 2. Päätöksen lopputulos on ”Ei”. Jos (a>5) on valittuna, päätöksen kattavuus = 50 %.

Skenaario 2: a:n arvo on 6. Päätöksen lopputulos on ”Kyllä”. Jos (a>5) on valittuna, päätöksen kattavuus = 50 %.

Testitapaus A:n arvo ulostulo Päätöksen kattavuus
1 2 2 50%
2 6 18 50%

Toimialan kattavuuden testaus

Sivukonttorin kattavuus on valkolaatikkotestausmenetelmä, jossa testataan jokainen koodimoduulin (lauseen tai silmukan) tulos. Haarapeitteen tarkoituksena on varmistaa, että jokainen päätösehto jokaisesta haarasta suoritetaan ainakin kerran. Se auttaa mittaamaan riippumattomien koodisegmenttien osia ja löytämään osiot, joilla ei ole haaroja.

Jos tulokset ovat esimerkiksi binäärisiä, sinun on testattava sekä tosi että epätosi tulokset.

Kaava sivuliikkeen kattavuuden laskemiseksi:

Sivukonttorin kattavuuskaava

Esimerkki sivukonttorin kattavuudesta

Haarautumiskattavuuden oppimiseksi tarkastellaan samaa esimerkkiä kuin aiemmin. Haarautumiskattavuus ottaa huomioon myös ehdottoman haarautumisen.

Testitapaus A:n arvo ulostulo Päätöksen kattavuus Sivukonttorin kattavuus
1 2 2 50% 33%
2 6 18 50% 67%

Sivukonttorin kattavuuden edut:

  • Voit validoida kaikki koodin haarat.
  • Auttaa varmistamaan, ettei mikään haarautuminen johda mihinkään poikkeavuuteen ohjelman toiminnassa.
  • Poistaa ongelmat, joita ilmenee lausekkeiden kattavuustestauksen vuoksi.
  • Antaa sinun löytää alueita, joita ei ole testattu muilla testausmenetelmillä.
  • Antaa sinun löytää kvantitatiivisen mitan koodin kattavuudesta.
  • Haarautumiskattavuus jättää huomiotta totuusarvolausekkeiden sisällä olevat haarat.

Kunnon kattavuuden testaus

Kunnon kattavuus, eli lausekekattavuus, on testausmenetelmä, jota käytetään ehtolausekkeen muuttujien tai alialausekkeiden testaamiseen ja arviointiin. Ehtokattavuuden tavoitteena on tarkistaa yksittäiset tulokset kullekin loogiselle ehdolle. Ehtokattavuus tarjoaa paremman herkkyyden ohjausvirralle kuin päätöskattavuus. Tässä kattavuudessa tarkastellaan vain lausekkeita, joissa on loogisia operandeja.

Esimerkiksi jos lausekkeella on totuusarvooperaatioita, kuten JA, TAI tai XTAI, se ilmaisee kaikkien mahdollisuuksien määrän. Ehtokattavuus ei takaa täydellistä päätöskattavuutta.

Kaava kunnon kattavuuden laskemiseksi:

Kuntovakuutuskaava

Kahden operandin lausekkeelle on neljä mahdollista yhdistelmää: TT, FF, TF ja FT. Tarkastellaan syötettä X=3, Y=4 (x b) EPÄTOSI, jolloin ehtokattavuus on 1/4 = 25 %.

Rajallisen tilan koneen kattavuus

Äärellisen tilakoneen peitto on ehdottomasti monimutkaisin koodin peittomenetelmä. Tämä johtuu siitä, että se toimii suunnittelun käyttäytymisen perusteella. Tässä peittomenetelmässä on tarkasteltava, kuinka monta kertaa tietyissä tiloissa käydään tai niiden läpi siirrytään. Se tarkistaa myös, kuinka monta sekvenssiä äärelliseen tilakoneeseen sisältyy.

Minkä tyyppinen Code Valittava kattavuus

Tämä on ehdottomasti vaikein vastaus antaa. Valitakseen kattavuusmenetelmän testaajan on tarkistettava, onko:

  • testattavassa koodissa on yksi tai useampia löytämättömiä vikoja,
  • mahdollisen sakon kustannukset,
  • menetettyjen maineiden hinta,
  • menetettyjen myyntien kustannukset ja niin edelleen.

Mitä suurempi on todennäköisyys, että viat aiheuttavat kalliita tuotantohäiriöitä, sitä vakavampi kattavuustaso sinun on valittava.

Code Kattavuus vs. toiminnallinen kattavuus

Code Kattavuus Toiminnallinen kattavuus
Kertoo, kuinka hyvin lähdekoodia on testattu testipenkissä. Mittaa, kuinka hyvin testipenkki on kattanut suunnittelun toiminnallisuuden.
Ei koskaan käytä suunnitteluspesifikaatiota. Käyttää suunnitteluspesifikaatiota.
Kehittäjien tekemä. Testaajien tekemä.

Code Kattavuustyökalut

Tässä on luettelo tärkeistä koodin kattavuustyökaluista:

Työkalun nimi Tuotetiedot
Cobertura Avoimen lähdekoodin koodin kattavuustyökalu. Se mittaa testien kattavuutta instrumentoimalla koodikantaa ja analysoimalla, mitkä koodirivit suoritetaan ja mitkä eivät testisarjan suorituksen aikana.
Apila Apila (OpenClover) lyhentää myös testausaikaa suorittamalla vain testit, jotka kattavat edellisen koontiversion jälkeen muokatun sovelluskoodin.
Kehittäjäkumppani DevPartnerin avulla kehittäjät voivat analysoida Java koodin laadun ja monimutkaisuuden kannalta.
Emma EMMA tukee luokka-, metodi-, rivi- ja peruslohkokattavuutta, jotka on koottu lähdetiedosto-, luokka- ja metoditasoilla.
Kalistick Kalistick on kolmannen osapuolen sovellus, joka analysoi koodia eri näkökulmista.
CoView ja CoAnt Koodin kattavuustyökalu mittareille, malliobjektien luonnille, koodin testattavuudelle, polkujen ja haarojen kattavuudelle ja muulle.
Bullseye for C++ BullseyeCoverage on koodin kattavuustyökalu C++ ja C.
Sonar Sonar on avoimen koodin kattavuustyökalu, joka auttaa hallitsemaan koodin laatua.

Käytön edut ja haitat Code Kattavuus

edut Haitat
Hyödyllinen koodin kattavuuden kvantitatiivisen mittauksen arvioinnissa. Vaikka tiettyä ominaisuutta ei olisi toteutettu suunnittelussa, koodin kattavuus raportoi silti 100 %:n kattavuuden.
Voit luoda ylimääräisiä testitapauksia kattavuuden parantamiseksi. Koodikattavuuden avulla ei ole mahdollista määrittää, testattiinko ominaisuuden kaikkia mahdollisia arvoja.
Antaa sinun löytää ohjelman alueet, joita ei ole testattu joukolla testitapauksia. Code Kattavuus ei kerro, kuinka paljon ja kuinka hyvin olet kattanut logiikkasi.

UKK

Monet tiimit tavoittelevat käytännössä 70–80 %:n tuottoa. 100 %:n saavuttaminen on harvoin kustannustehokasta. Keskity kriittisen ja riskialttiiseen logiikkaan sen sijaan, että jahtaisit yhtä lukua koko koodikannassa.

Ei. Täysi kattavuus todistaa jokaisen suoritetun rivin, ei sitä, että jokainen syöte, arvo tai vaatimus validoitiin. Loogiset virheet ja puuttuvat ominaisuudet voivat silti jäädä huomaamatta, joten kattavuus täydentää eikä korvaa hyvää testisuunnittelua.

Code kattavuus mittaa, kuinka paljon lähdekoodia suoritetaan testauksen aikana. Testikattavuus on laajempi, trackuinka hyvin testit vastaavat vaatimuksiin, ominaisuuksiin ja riskeihin. Code Kattavuus on yksi syöte kokonaistestikattavuuteen.

Ei. Voit saavuttaa 100 %:n lausekattavuuden jättämättä haaroja testaamatta, kuten puuttuvaa muuta-polkua. Haara-(päätös)kattavuus on vahvempi, koska se sisältää lausekattavuuden ja käyttää kaikkia lopputuloksia.

Tekoäly analysoi lähdekoodia ja olemassa olevia testejä paikantaakseen testaamattomia ja riskialttiita polkuja ja ehdottaa tai luo uusia tapauksia. Koneoppiminen myös priorisoi suoritettavat testit, mikä lyhentää palautteenantoa ja pitääping kattavuus korkea.

Kyllä. Tekoälytyökalut, kuten Diffblue Cover, skannaavat koodia ja kirjoittavat itsenäisesti yksikkötestejä paljastamattomalle logiikalle. Ne kohdistavat testit riskialttiisiin haaroihin ja olosuhteisiin, mikä nostaa kattavuutta huomattavasti vähemmällä manuaalisella työllä.

OpenClover mittaa lausekkeiden, haarojen ja metodien kattavuutta ja kerää yli 20 mittaria. Cobertura, EMMA ja JaCoCo ovat muita laajalti käytettyjä ilmaisia ​​vaihtoehtoja Java hankkeisiin.

Muokattu ehdon/päätöksen kattavuus edellyttää, että jokainen päätöksen ehto vaikuttaa itsenäisesti lopputulokseen. Se on tiukempi kuin sivutoiminen kattavuus ja se on pakollinen turvallisuuskriittisille ohjelmistoille, kuten avioniikalle, DO-178C-standardin mukaisesti.

Tiivistä tämä viesti seuraavasti: