Tesztelési lefedettség a szoftvertesztelésben: Hogyan mérjük?
⚡ Okos összefoglaló
A szoftvertesztelésben a tesztek lefedettsége azt méri, hogy egy alkalmazás mekkora részét vizsgálja egy tesztkészlet. Feltárja a nem tesztelt követelményeket, kódútvonalakat és kockázatokat, így a csapatok célzott eseteket adhatnak hozzá, és mérhető magabiztossággal adhatják ki a teszteket.
Mi az a tesztlefedettség?
A tesztlefedettség a Szoftvertesztelésben egy olyan mérőszámként definiálható, amely a tesztkészlet által végrehajtott tesztelés mennyiségét méri. Tartalmazza az információk összegyűjtését arról, hogy a program mely részei futnak le a tesztkészlet futtatásakor, hogy megállapítsák, a feltételes utasítások mely ágait vették fel.
Egyszerűen fogalmazva, ez egy olyan technika, amely biztosítja, hogy a tesztek teszteljék a kódot, vagy azt, hogy a kódból mennyit használt a teszt futtatásával.
Mit csinál a teszt lefedettség?
Egy éles projekten a tesztek lefedettsége négy gyakorlati tevékenységet támogat:
- Tesztesetek halmazával nem megvalósított követelmény területének megkeresése
- Segít további tesztesetek létrehozásában a lefedettség növelése érdekében
- A tesztlefedettség kvantitatív mérőszámának meghatározása, amely a minőségellenőrzés közvetett módszere
- Az értelmetlen tesztesetek azonosítása, amelyek nem növelik a lefedettséget
A tesztlefedettség előnyei a szoftverfejlesztésben
Ezek a tevékenységek konkrét mérnöki előnyökké válnak.
- Biztosítani tudja a teszt minőségét
- Segíthet azonosítani, hogy a kód mely részeit érintették meg a kiadás vagy javítás során
- Meg tudja határozni az alkalmazás összes olyan döntési pontját és útvonalát, amelyeket nem teszteltek, ami lehetővé teszi a tesztek lefedettségének növelését.
- Megelőzése hiányosság szivárgás
- Az idő, a terjedelem és a költségek ellenőrzés alatt tarthatók
- Hibamegelőzés a projekt életciklusának korai szakaszában
- A követelmények hiányosságai, tesztesetek és hibák egység- és kódszinten könnyen megtalálhatók
A teszt lefedettségének típusai
A lefedettség sosem egyetlen szám. Csapatok tracKeress egyszerre több típust is, mert mindegyik egy másik kérdésre válaszol ugyanarról a lakosztályról. Az alábbi táblázat a leggyakrabban előforduló típusokat csoportosítja.
| Lefedettség típusa | Mit mér | Legjobban használható |
|---|---|---|
| Kimutatás (sor) lefedettsége | A végrehajtható sorok legalább egyszer lefutnak | Egységtesztek és régi kód auditok |
| Fióktelep vagy döntési lefedettség | Minden döntés igaz és hamis következménye | Feltételes és érvényesítési logika |
| Állapotfedezet | Minden logikai részkifejezés igazként és hamisként van megadva. | Összetett ÉS vagy VAGY kifejezések |
| Útvonal lefedettsége | Egy modulon keresztül megtett egyedi útvonalak | Biztonságkritikus és pénzügyi folyamatok |
| Funkciólefedettség | Tesztek által meghívott függvények vagy metódusok | API és szolgáltatási rétegek |
| Követelmények lefedettsége | Legalább egy teszthez rendelt követelmények | Elfogadás és elutasítástracvégső jóváhagyás |
| Kockázati fedezet | Azonosított, magas kockázatú területek vizsgálata | Rövid felszabadulási ciklusok |
Az első öt típus kódszintű mérték, és a következőhöz tartoznak: fehér dobozos tesztelés, míg a követelmények és a kockázatok fedezése a tesztterv szintjén történik.
Melyek a fő különbségek Code Lefedettség és tesztlefedettség?
Code lefedettség és a tesztlefedettség olyan mérési technikák, amelyek lehetővé teszik az alkalmazáskód minőségének felmérését.
Íme néhány lényeges különbség a lefedettségi módszerek fülkéi között:
| paraméterek | Code Lefedettség | Teszt lefedettség |
|---|---|---|
| Meghatározás | Code lefedettségi kifejezés, amelyet akkor használnak, amikor az alkalmazáskódot egy alkalmazás futása közben hajtják végre. | A teszt lefedettsége átfogó teszttervet jelent. |
| Cél | Code A lefedettségi mérőszámok segíthetnek a csapatnak az automatizált tesztek monitorozásában. | A tesztlefedettség részleteket tartalmaz arról, hogy egy alkalmazás írásos kódolását milyen szinten tesztelték. |
| altípusok | Code fedezet, amely altípusokra oszlik, mint például kivonatfedezet, feltételfedezet, fiókfedezet, Toggle lefedettség, Mikronéziai lefedettség. | A Tesztlefedettség módszerének nincs altípusa. |
Tesztfedezeti képlet
A teszt lefedettségének kiszámításához kövesse az alábbi lépéseket:
Step 1) Gróf Y, a szoftverben használt kód teljes sorszáma tesztelés
Step 2) Gróf X, a jelenleg futtatott tesztesetek kódsorainak száma
Most meg kell találnia (X osztva Y-vel) szorozva 100-zal. A számítás eredménye a tesztlefedettség %-a.
Például:
Ha egy rendszerkomponens kódsorainak száma 500, és az összes meglévő tesztesetben végrehajtott sorok száma is 50, akkor a teszt lefedettsége a következő:
(50 / 500) * 100 = 10% // executed lines divided by total lines
Példák a teszt lefedettségére
A százalékos arány önmagában soha nem a teljes történet, ahogy az alábbi példák is mutatják.
Példa 1:
Például, ha a „kés” egy tesztelni kívánt tárgy, akkor arra kell összpontosítania, hogy ellenőrizze, hogy pontosan vágja-e a zöldségeket vagy gyümölcsöket. Vannak azonban más szempontok is, amelyeket figyelembe kell venni, például hogy a felhasználó kényelmesen tudja-e kezelni.
Példa 2:
Például, ha ellenőrizni szeretnéd a Jegyzettömb alkalmazást, akkor elengedhetetlen az alapvető funkcióinak ellenőrzése. Azonban más szempontokat is figyelembe kell venned, például a Jegyzettömb alkalmazás a várt módon reagál más alkalmazások használatakor, a felhasználó megérti az alkalmazás használatát, és nem omlik össze, amikor valami szokatlan dolgot próbál csinálni stb.
Tesztelési lefedettségi technikák
Mindkét példa ugyanarra a következtetésre utal: a lefedettségi cél elérése kevésbé függ több teszt megírásától, és inkább a megfelelő teszttervezési technika megválasztásától. Az alábbi technikák szélesítik a lefedettséget, miközben megtartjákping kicsi a lakosztály.
- Határérték-elemzés: Az egyes érvényes tartományok szélein választja ki a bemeneteket, ahol a hibák a legsúlyosabban csoportosulnak. Lásd: határérték-elemzés kidolgozott esetekhez.
- Ekvivalencia particionálás: Csoportosítja azokat a bemeneteket, amelyeket az alkalmazás azonosan kezel, így egyetlen eset biztonságosan képviselhet egy teljes értékosztályt.
- Döntési tábla tesztelése: Egyetlen rácson belül lefedi a feltételek kombinációit és azok várható eredményeit.
- Állapotátmeneti tesztelés: Minden érvényes és érvénytelen mozgást végrehajt az alkalmazásállapotok között.
- Alapút tesztelés: A vezérlési folyamatgráfból származtatja a független útvonalak minimális halmazát.
- Kockázatalapú tesztelés: A funkciókat üzleti hatásuk szerint rangsorolja, és a legnagyobb kockázatúakat emeli ki elsőként.
- Feltáró tesztelés: Olyan hiányosságokat tár fel, amelyeket a forgatókönyves esetek és a tudósítások soha nem mutatnak meg.
Hogyan lehet teljesíteni a teszt lefedettségét?
Miután kiválasztották a technikákat, négy bevált útvonal biztosítja a lefedettséget.
- A tesztek lefedettsége elvégezhető a statikus felülvizsgálati technikák, például a szakértői értékelések, ellenőrzések és áttekintések alkalmazásával
- Az ad-hoc hibákat végrehajtható tesztesetekké alakítva
- Kódszinten vagy egységteszt szintjén a tesztlefedettség elérhető az automatizált kódlefedettség vagy az egységteszt lefedettségi eszközök használatával
- A funkcionális tesztek lefedettsége megfelelő tesztmenedzsment eszközök segítségével valósítható meg
Hogyan javítható a teszt lefedettsége?
A lefedettség megteremtése a kiindulópont; annak növelése egy ismételhető rutin. Minden kiadási ciklus elején végezd el ezt a sorrendet.
- Alapozza meg a jelenlegi számot. Futtasson lefedettségi jelentést, és rögzítse a kimutatás, az ág és a követelmények lefedettségét külön-külön, hogy a hiányosságok modulonként láthatóak maradjanak, ne pedig egyetlen projektszintű átlagban rejtőzzenek el.
- A tesztek megfeleltetése a követelményeknek. Build a tracEgy teljesítőképességi rács, amely minden követelményt legalább egy tesztesethez kapcsol. Minden üres sor megerősített hiányosságot jelent, nem gyanút.
- Modulok rangsorolása kockázat szerint. A fizetési, hitelesítési és adatmigrációs logika sokkal alaposabb ismertetést érdemel, mint egy statikus súgóképernyő, ezért a költségvetést oda kell fordítani, ahol egy hiba a leginkább fájna.
- Negatív és élesetek hozzáadása. Az üres bemenetek, a túlméretezett értékek, a hálózati időtúllépések és az engedélyezési hibák olyan ágakat érnek el, amelyeket a boldogútvonal-tesztek soha nem érintenek.
- Rétegezd a tesztszinteket. Kombájn egység tesztelés, integrációs tesztelésés végponttól végpontig tartó ellenőrzéseket, mivel minden szint lefedi azt, amit a többi strukturálisan nem.
- Automatizálja a regressziós csomagot. Promoa stabil esetekbe automatizálási tesztelés és végrehajtja őket a CI/CD csővezeték minden commit után.
- Felesleges esetek visszavonása. Törölje azokat a duplikált teszteket, amelyek végrehajtási perceket adnak hozzá anélkül, hogy egyetlen fedetlen sort is hozzáadnának.
- RevNézd meg a trendet minden sprintben. Track lefedettség mellett hibasűrűségA sík lefedettség ellenére növekvő szivárgás egy korai figyelmeztetés a vakfoltra.
⚠️ Figyelmeztetés: Ne a 100 százalékot tekintsd célnak. Egy 85 százalékos hatékonyságú, erős assertions-ekkel rendelkező csomag sokkal jobban védi a kiadást, mint a felszínes ellenőrzések 95 százaléka, amelyek eredmény ellenőrzése nélkül futtatnak kódot.
A teszt lefedettségének hátrányai
A lefedettség továbbra is értékes, de korlátai vannak, amelyeket érdemes megemlíteni, mielőtt bármilyen százalékos értéket közölnénk.
- A tesztlefedettségben szereplő feladatok többsége manuális, mivel nincsenek automatizálható eszközök. Ezért sok erőfeszítést igényel a követelmények elemzése és tesztesetek létrehozása.
- A tesztlefedettség lehetővé teszi a funkciók megszámlálását, majd több teszt alapján történő mérést. Az ítéleti hibáknak azonban mindig van helye.

