Hogyan mérjük a szoftver minőségét
mielőtt szoftverterméket szállítanánk, meg kell mérnünk annak minőségét annak biztosítása érdekében, hogy olyan hibamentes legyen, amennyire csak lehetséges. Ennek érdekében azonban először tudnunk kell, hogy milyen szoftverminőségi mutatókat mérünk.
melyek a szoftver minőségének mérésére szolgáló mutatók?
a szoftver minőségének mérésére szolgáló mutatók rendkívül technikai jellegűek lehetnek, de a következő négy alapvető kategóriába sorolhatók:
- Kódminőség
- teljesítmény
- biztonság
- használhatóság
Kódminőség
hibamentes és szemantikailag helyes kód nagyon fontos a prémium szoftvereknél. A kódminőségi szabványok mennyiségi és minőségi mutatókra oszthatók. A kvantitatív minőségi mutatók azt mérik, hogy mekkora vagy összetett a szoftver, hány sort és funkciót tartalmaz, hány hiba van 1000 kódsoronként és így tovább. Minőségi kód a minőségi mutatók olyan funkciókat mérnek, mint a karbantarthatóság, az olvashatóság, az egyértelműség, a hatékonyság és a dokumentáció. Ezek a mutatók azt mérik, hogy a kód mennyire könnyen olvasható, érthető, és hogy a kódolási szabványok szerint íródott-e.
teljesítmény
minden szoftver egy célra épül. A teljesítménymutatók azt mérik, hogy a termék teljesíti-e a célját, és hogy a rendeltetésének megfelelően teljesít-e. Arra is utal, hogy az alkalmazás hogyan használja az erőforrásokat, skálázhatóságát, az ügyfelek elégedettségét és a válaszidőket.
biztonság
a szoftverbiztonsági mutatók a szoftverprogramok belső biztonságát mérik, és biztosítják, hogy az ügyfélnek történő átadáskor ne történjenek jogosulatlan változtatások a terméken.
használhatóság
mivel minden szoftvertermék végfelhasználónak készült, fontos minőségi mutató, hogy a program megvalósítható-e és felhasználóbarát-e. Azt is biztosítjuk, hogy az ügyfél elégedett legyen a funkciókkal és a teljesítménnyel.
Mikor Mérjük A Szoftver Minőségét?
szoftverfejlesztő csapatunk és minőségbiztosítási csapatunk együtt dolgozik annak érdekében, hogy a szoftver minősége a legmagasabb színvonalú legyen. A minőségbiztosítási csapat terméktesztelést végez, miután kifejlesztették. A fejlesztőcsapat azonban fenntartja, méri és folyamatosan javítja a szoftver minőségét az építés során. Bár a szoftver minőségét a fejlesztés minden szakaszában fenntartjuk, a fejlesztés különböző pontjain tesztelhetjük őket az alkalmazott fejlesztési módszertan alapján. Két módszertant használunk a szoftveralkalmazások fejlesztésekor: Waterfall és Agile. Mivel a két módszertan különböző módon szállítja a terméket, ezeket is eltérően tesztelik.
Szoftverminőség mérése: vízesés módszertan
vízesés módszertan az, amikor különböző fázisokban tervezünk, hajtunk végre, tesztelünk és szállítunk. Minden fázis befejeződik, mielőtt a következő megkezdődik. Ennek eredményeként egy ilyen módszertan alapján kifejlesztett termékkel minden szakaszban meg kell őriznünk a termék minőségét – követelmények, tervezés, megvalósítás, ellenőrzés (vagy tesztelés) és karbantartás. Mivel a tesztelés a build végén történik, kevesebb időt vesz igénybe, és nem igényel sok regressziós tesztet.
Szoftverminőség mérése: agilis
az agilis módszerek rugalmasabbak és rugalmasabbak, ahol a fejlesztés fázisokra vagy sprintekre oszlik. A cél az, hogy minden sprint végén, amely két-hat hét között lehet, kiváló minőségű, minimálisan életképes terméket szállítsunk, amely teljesen működőképes és tesztelt. Ez azt jelenti, hogy minden lépésben, minden sprintben meg kell győződnünk arról, hogy fenntartjuk-e a termékszoftver minőségét. Az agilis módszertanokkal kifejlesztett termékeket gyakrabban tesztelik. Ez azonban azt is jelenti, hogy állandó regressziós tesztelésre van szükségük annak biztosítása érdekében, hogy a frissítés ne szakítsa meg a korábbi verziókban tesztelt és átadott funkciókat.
hogyan tartják fenn a fejlesztők a szoftverkód minőségét?
egy jó fejlesztő az, aki képes kiváló minőségű szoftver kódot minimális hibákat. Azt mondjuk, hogy minimális, mert a fejlesztés során néhány hiba elkerülhetetlen, és az számít, hogy hogyan javítjuk vagy irányítjuk őket. Ez az oka annak, hogy a fejlesztők a fejlesztés során mérik a kódminőségüket, mivel ez azt jelenti, hogy képesek azonosítani és kijavítani az esetleges problémákat az építés során. A kódjukat a kódolási szabványok, a kódvizsgálatok, a kódelemzők és a refraktor örökölt kódja alapján mérik.
ebben a szakaszban a szoftver minőségét manuálisan tesztelik rövid egységtesztekkel. Az egységteszt a szoftverminőség mérésének első szakasza, ahol a szoftver legkisebb tesztelhető részét – a program modulját vagy összetevőjét, vagy akár a kódon belüli egyetlen funkciót – ellenőrzik.
például előfordulhat, hogy több adatmezőt kell kitölteni egy nagyobb szoftver részeként. Az egységteszt csak az első mezőt tesztelheti, a többit nem, vagy a szoftver bármely más részét.
a fejlesztők több száz ilyen tesztből álló megosztott könyvtárat hoznak létre, a szoftverbe ágyazott megismételhető funkciókkal, így ezek a tesztek újra és újra felhasználhatók a projektek között a szoftverkód hibáinak hatékony felderítésére a fejlesztési szakaszban. Automatizált tesztelést is végeznek kódelemző segítségével, SonarQube, amely ellenőrzi a szoftvert:
- tisztaság
- karbantarthatóság
- dokumentáció
- bővíthetőség
- hatékonyság
- jól tesztelt
- Biztonságos kódolás
- Kód refaktorálás
- bővíthetőség
segít nekünk:
- magatartási kód vélemények
- kódolási szabványok fenntartása
- azonosítsa a hibákat és a lehetséges hibák számát a szoftverben
azt is használjuk, hogy értékelje:
- a Program szerkezeti összetettsége (kódsorok száma)
- a tárolókban található sebezhetőségek
- Kód szaga (zavaró vagy nehezen karbantartható kód)
- kód lefedettség (az egységtesztek által lefedett kód mértéke)
- Kód duplikáció (az ismétlődő kód mennyisége)
hogyan méri a minőségbiztosítási csapat a szoftver minőségét?
a minőségbiztosítási tesztelők manuális és automatizált teszteléssel (Selenium használatával) áttekintik a szoftverminőség összes mutatóját, beleértve a Termékkód érvényességét és szabványát. A kézi tesztmutatók két osztályra oszthatók: alapmutatók és számított mutatók. Az alapmutatók az összegyűjtött nyers, nem elemzett adatokból állnak, míg a számított mutatók az alapmutatókban gyűjtött információkból származnak.
kézi Tesztmutatók
néhány fontos kézi tesztmutató, amelyet a szoftverminőség szempontjából figyelembe veszünk:
- Tesztesetvégrehajtás termelékenységi mutatók
- Tesztesetelőkészítés termelékenységi mutatók
- Tesztidőtartam
- egységteszt lefedettség (az egységtesztek által lefedett szoftverkód mennyisége)
- tesztek sikeres/sikertelen aránya stb.
automatizálási teszt metrikák
az automatizálási tesztelés segíthet csökkenteni a szoftver minőségének tesztelésére fordított kézi időt. Íme néhány az automatizálási tesztelés fontos mutatói közül, amelyeket figyelembe veszünk:
- a vizsgálat teljes időtartama
- egység teszt lefedettség
- útvonal lefedettség (hány lineárisan független utak a program a vizsgálat kiterjed)
- követelmények lefedettség
- Pass/fail százalékos vizsgálatok
- hibák száma
- százalékos teszt automatizált teszt lefedettség (a teljes teszt lefedettséggel szemben, amely magában foglalja a kézi tesztelést is)
- teszt végrehajtása (a build során végrehajtott összes teszt)
- hasznos vs.irreleváns eredmények
- gyártási hibák
- a törött buildek százaléka stb.
egyéb típusú tesztek a szoftver minőségének mérésére
különféle típusú teszteket is használunk a szoftver minőségének mérésére. Ezek a következők:
- funkcionális tesztelés
- teszt megtörni
- terhelés teljesítmény tesztelés
- regressziós tesztelés
- biztonsági tesztelés
- penetrációs tesztelés
- felhasználói elfogadási tesztelés