Code Lefedettségi eszköz: Kimutatás-, fióktelep- és döntéstesztelés
⚡ Okos összefoglaló
Code A lefedettség egy fehér dobozos mérés, amely azt mutatja, hogy a forráskódot milyen mértékben gyakorolta egy tesztkészlet, helping A csapatok nem tesztelt utasításokat, elágazásokat, feltételeket és útvonalakat találnak, amelyeket rejtett hibák foglalhatnak el.

Mi a Code Lefedettség?
Code lefedettség egy olyan mérőszám, amely leírja, hogy egy program forráskódját milyen mértékben tesztelték. Ez a tesztelés egyik formája. fehér dobozos tesztelés , amely megkeresi a program azon területeit, amelyeket egy teszteset-készlet nem vizsgált. Segít további tesztesetek létrehozásában is a lefedettség növelése és a kódlefedettség mennyiségi mértékének meghatározása érdekében.
A legtöbb esetben egy kódlefedettségi rendszer információkat gyűjt a futó programról. Ezután ezeket kombinálja a forráskód-információkkal, hogy jelentést készítsen a tesztkészlet kódlefedettségéről.
Miért használja Code Lefedettségi tesztelés?
Íme néhány fő ok a kódlefedettség használatára:
- Segít mérni a tesztek implementálásának hatékonyságát.
- A tesztelés kvantitatív mérését kínálja.
- Meghatározza, hogy a forráskód milyen mértékben lett tesztelve.
Code Lefedettségi módszerek
A főbb kódfedés módszerek a következők:
- Nyilatkozat lefedettsége
- Döntés lefedettsége
- Ágak lefedettsége
- Toggle Lefedettség
- FSM lefedettség
Nyilatkozat lefedettsége
Nyilatkozat lefedettsége egy fehér dobozos tesztelési technika, amelyben a forráskód összes végrehajtható utasítása legalább egyszer végrehajtásra kerül. Arra szolgál, hogy kiszámítsa a forráskódban végrehajtott utasítások számát. Az utasításlefedettség fő célja, hogy lefedje a forráskód összes lehetséges útvonalát, sorát és utasítását.
Az utasításlefedettséget a tesztelt kód szerkezete alapján forgatókönyvek levezetésére használják.
A white box tesztelés során a tesztelő arra koncentrál, hogyan működik a szoftver. Más szóval, a tesztelő a forráskód belső működésére koncentrál, a vezérlési folyamatábrák vagy folyamatábrák tekintetében.
Általánosságban elmondható, hogy bármilyen szoftverben, ha megnézzük a forráskódot, rengeteg különféle elemet találunk, például operátorokat, függvényeket, stb.ping, kivételkezelők és így tovább. A program bemenetétől függően előfordulhat, hogy néhány kódutasítás nem hajtódik végre. Az utasításlefedettség célja, hogy lefedje a kódban található összes lehetséges elérési utat, sort és utasítást.
Értsük meg ezt egy példával, amely bemutatja, hogyan kell kiszámítani a kimutatásfedezetet. Itt két különböző forgatókönyvet veszünk figyelembe, hogy ellenőrizzük a kimutatásfedezet százalékos arányát mindkét forgatókönyv esetében.
Forrás 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
1 forgatókönyv: Ha A = 3, B = 9
A sárgával jelölt utasítások azok, amelyek a forgatókönyv szerint végrehajtásra kerülnek. A végrehajtott utasítások száma = 5, az utasítások teljes száma = 7, tehát az utasítás lefedettsége = 5/7 = 71%.
2 forgatókönyv: Ha A = -3, B = -9
A sárgával jelölt utasítások azok, amelyek a forgatókönyv szerint végrehajtásra kerülnek. A végrehajtott utasítások száma = 6, az utasítások teljes száma = 7, tehát az utasítás lefedettsége = 6/7 = 85%.
De összességében, ha látod, az összes állítást mindkét forgatókönyv lefedi. Tehát arra a következtetésre juthatunk, hogy az állítások teljes lefedettsége 100%.
Mire terjed ki a nyilatkozat fedezete?
- Fel nem használt nyilatkozatok
- Halott Code
- Fel nem használt ágak
- Hiányzó nyilatkozatok
Döntéslefedettség tesztelése
Döntés lefedettsége egy fehér dobozos tesztelési technika, amely a forráskódban található egyes logikai kifejezések igaz vagy hamis eredményét jelenti. A döntéslefedettségi tesztelés célja az összes hozzáférhető forráskód lefedése és validálása azáltal, hogy ellenőrzi és biztosítja, hogy minden lehetséges döntési pont minden ága legalább egyszer végrehajtásra kerüljön.
Ennél a lefedettségi típusnál a kifejezések összetetté válhatnak, ami megnehezíti a 100%-os lefedettség elérését. Ezért különféle módszereket használnak ennek a mutatónak a jelentésére. Ezek a módszerek a legkritikusabb kombinációkat rangsorolják. Bár hasonló az áglefedettséghez, nagyobb érzékenységet biztosít a vezérlési folyamattal szemben.
Példa a döntési lefedettségre
Vegye figyelembe a következő kódot:
Demo(int a) { If (a > 5) a = a * 3 Print (a) }
1 forgatókönyv: Az „a” értéke 2. A döntés „Nem” kimenetele. Ha az (a>5) be van jelölve, akkor a döntés lefedettsége = 50%.
2 forgatókönyv: Az „a” értéke 6. A döntés „Igen” kimenetele. Ha (a>5) be van jelölve, akkor a döntés lefedettsége = 50%.
| Teszt eset | A értéke | teljesítmény | Döntés lefedettsége |
|---|---|---|---|
| 1 | 2 | 2 | 50% |
| 2 | 6 | 18 | 50% |
Ágazati lefedettség tesztelése
Ágak lefedettsége egy fehér dobozos tesztelési módszer, amelyben egy kódmodul (utasítás vagy ciklus) minden eredményét tesztelik. Az elágazás lefedettségének célja annak biztosítása, hogy minden ág minden döntési feltétele legalább egyszer végrehajtásra kerüljön. Segít a független kódszegmensek töredékeinek mérésében, és az elágazások nélküli szakaszok megtalálásában.
Például, ha az eredmények binárisak, tesztelnie kell az igaz és hamis eredményeket is.
A fióklefedettség kiszámításának képlete:
Példa a fióktelep lefedettségére
Az elágazás lefedettségének megismeréséhez tekintsük a korábban használt példát. Az elágazás lefedettsége a feltétel nélküli elágazást is figyelembe veszi.
| Teszt eset | A értéke | teljesítmény | Döntés lefedettsége | Ágak lefedettsége |
|---|---|---|---|---|
| 1 | 2 | 2 | 50% | 33% |
| 2 | 6 | 18 | 50% | 67% |
A fióki lefedettség előnyei:
- Lehetővé teszi a kód összes ágának validálását.
- Segít biztosítani, hogy egyetlen elágazás se okozzon rendellenességet a program működésében.
- Eltávolítja a kimutatáslefedettség tesztelése miatt felmerülő problémákat.
- Lehetővé teszi olyan területek megtalálását, amelyeket más vizsgálati módszerekkel nem teszteltek.
- Lehetővé teszi a kód lefedettségének mennyiségi mértékének meghatározását.
- Az elágazási lefedettség figyelmen kívül hagyja a logikai kifejezéseken belüli elágazásokat.
Állapot lefedettség vizsgálata
Feltétel LefedettségA feltétellefedettség, vagy kifejezéslefedettség egy tesztelési módszer, amely feltételes utasításokban található változók vagy részkifejezések tesztelésére és kiértékelésére szolgál. A feltétellefedettség célja az egyes logikai feltételek egyedi eredményeinek ellenőrzése. A feltétellefedettség jobb érzékenységet biztosít a vezérlési folyamatra, mint a döntési lefedettség. Ebben a lefedettségben csak a logikai operandusokat tartalmazó kifejezéseket vesszük figyelembe.
Például, ha egy kifejezés logikai műveleteket tartalmaz, mint például ÉS, VAGY vagy XVAGY, az a lehetőségek teljes számát jelzi. A feltétellefedettség nem garantálja a teljes döntési lefedettséget.
Az állapotlefedettség kiszámításának képlete:
Egy két operandusú kifejezés esetén négy lehetséges kombináció létezik: TT, FF, TF és FT. Tekintsük az X=3, Y=4 (x b) HAMIS, ami 1/4 = 25%-os feltétellefedettséget eredményez.
Véges állapotú gépi lefedettség
A véges állapotú gép lefedettség minden bizonnyal a kódlefedettségi módszerek legösszetettebb típusa. Ez azért van, mert a terv viselkedésén dolgozik. Ebben a lefedettségi módszerben meg kell vizsgálni, hogy hányszor látogatják meg vagy haladnak át bizonyos állapotokon. Azt is ellenőrzi, hogy hány sorozat található egy véges állapotú gépben.
Melyik típus Code Választható lefedettség
Ez minden bizonnyal a legnehezebben megadható válasz. A lefedettségi módszer kiválasztásához a tesztelőnek ellenőriznie kell, hogy a következőket tartalmazza-e:
- a tesztelt kód egy vagy több felfedezetlen hibát tartalmaz,
- a lehetséges büntetés költsége,
- az elveszett hírnév ára,
- az elveszett értékesítés költsége, és így tovább.
Minél nagyobb a valószínűsége annak, hogy a hibák költséges gyártási hibákat okoznak, annál súlyosabb lefedettségi szintet kell választania.
Code Lefedettség vs. funkcionális lefedettség
| Code Lefedettség | Funkcionális lefedettség |
|---|---|
| Megmutatja, hogy a forráskódot mennyire jól tesztelték a tesztpadon. | Azt méri, hogy a tesztpad mennyire fedte le a terv funkcionalitását. |
| Soha nem használ tervezési specifikációt. | Tervezési specifikációt használ. |
| Fejlesztők készítették. | Tesztelők készítették. |
Code Lefedettségi eszközök
Íme egy lista a fontos kódfedés eszközökről:
| Eszköz neve | Leírás |
|---|---|
| Cobertura | Egy nyílt forráskódú kód lefedettségi eszköz. A tesztek lefedettségét úgy méri, hogy elemzi a kódbázis eszközeit, és azt, hogy mely kódsorok futnak le, és melyek nem a tesztkészlet futtatásakor. |
| Lóhere | Lóhere (OpenClover) a tesztelési időt is csökkenti azáltal, hogy csak azokat a teszteket futtatja le, amelyek az előző build óta módosított alkalmazáskódot fedik le. |
| DevPartner | A DevPartner lehetővé teszi a fejlesztők számára az elemzést Java kód a kód minősége és összetettsége szempontjából. |
| Emma | Az EMMA támogatja az osztály-, metódus-, sor- és alapblokk-lefedettséget, forrásfájl-, osztály- és metódusszinten összesítve. |
| Kalistick | A Kalistick egy harmadik féltől származó alkalmazás, amely különböző nézőpontokból elemzi a kódot. |
| CoView és CoAnt | Kódlefedettségi eszköz metrikákhoz, mock objektumok létrehozásához, kód tesztelhetőségéhez, útvonal- és elágazás-lefedettséghez és egyebekhez. |
| Bullseye for C++ | A BullseyeCoverage egy kódfedés eszköz a következőkhöz: C++ és C. |
| Fishfinder | A Sonar egy nyílt kódot lefedő eszköz, amely segít a kódminőség kezelésében. |
A használat előnyei és hátrányai Code Lefedettség
| Előnyök | Hátrányok |
|---|---|
| Hasznos a kód lefedettségének mennyiségi mérésének értékeléséhez. | Még ha egy adott funkció nincs is megvalósítva a tervben, a kód lefedettsége továbbra is 100%-os lefedettséget jelent. |
| Lehetővé teszi további tesztesetek létrehozását a lefedettség növelése érdekében. | Kódlefedettség segítségével nem lehet megállapítani, hogy egy jellemző minden lehetséges értékét tesztelték-e. |
| Lehetővé teszi a program azon területeinek megtalálását, amelyeket nem teszteltek tesztesetek halmazával. | Code A lefedettség nem azt mutatja meg, hogy mennyit és mennyire jól fedted le a logikádat. |






