Szoftvertesztelési módszertanok: minőségbiztosítási modellek

⚡ Okos összefoglaló

A szoftvertesztelési módszertan meghatározza azokat a stratégiákat és tesztelési típusokat, amelyek annak igazolására szolgálnak, hogy egy alkalmazás megfelel az ügyfél elvárásainak. A vízesés, az iteratív, az agilis és az extrém programozás mindegyike meghatározza a tesztelés kezdetét és a visszajelzések visszajelzésének módját.

  • 🎯 Alapvető definíció: Stratégiák és teszttípusok, amelyek a tesztelt alkalmazást az ügyfél elvárásaival összevetve ellenőrzik, mindegyiknek megvan a saját célja és eredményei.
  • 🪜 Vízesés: A fázisok szigorúan sorrendben futnak, így a teszttervezés korán elkezdődik, de a végrehajtás a terv elkészültére vár.
  • 🔁 Ismétlődő: Egy nagy projekt részekre bomlik, amelyek mindegyike egy vízesés cikluson megy keresztül, és minden iteráció után a teljes rendszert tesztelik.
  • Agilis: A rövid, inkrementális ciklusok a változásokra való reagálást részesítik előnyben a kiterjedt tervezéssel szemben, minden kiadást alaposan tesztelve.
  • 👥 Extrém programozás: Nagyon rövid ciklusok párosított programozókkal és tesztvezérelt fejlesztéssel, ahol a teszt a kód megírása előtt történik.
  • 🧭 Kiválasztási tényezők: A projekt jellege, az ügyfél igényei és az ütemterv dönti el, hogy melyik módszertan illik a legjobban.
  • 📋 Beállítási alapismeretek: Reális ütemezés, meghatározott eredmények, elfogadott tesztelési megközelítés és átlátható jelentéstétel.

Szoftvertesztelési módszertanok

Mi az a szoftvertesztelési módszertan?

A szoftvertesztelési módszertan olyan stratégiák és tesztelési típusok, amelyek annak igazolására szolgálnak, hogy a tesztelés alatt álló alkalmazás megfelel az ügyfelek elvárásainak. A tesztelési módszerek közé tartozik az AUT érvényesítésére szolgáló funkcionális és nem funkcionális tesztelés. Példák a tesztelési módszerekre Egység tesztelése, Integrációs tesztelés, Rendszer tesztelés, Teljesítményfelmérés stb. Minden tesztelési módszernek van egy meghatározott vizsgálati célja, tesztstratégiája és teljesítése.

Megjegyzések: Mivel a szoftvertesztelés minden fejlesztési módszertan szerves részét képezi, sok vállalat használja a Fejlesztési Módszerek és Tesztelési Módszerek kifejezést köznyelvben. Ezért a Tesztelési Módszerek utalhatnak Waterfall, Agile és más minőségbiztosítási modellekre is, szemben a tesztelési módszerek fenti definíciójával. A különböző tesztelési típusokról folytatott megbeszélés nem ad hozzáadott értéket az olvasók számára. Ezért megvitatjuk a különböző fejlesztési modelleket.

Tesztelési módszertan vs. tesztelési típus vs. tesztelési stratégia

A fenti megjegyzés az iparágban uralkodó valódi kétértelműségre utal. Három kifejezést használnak felcserélhetően a beszélgetésekben, de egy projektdokumentumban különböző dolgokat jelentenek, és összekeverésük olyan tesztterveket eredményez, amelyek rossz kérdésre adnak választ.

kifejezés Kérdés, amit megválaszol Döntött Példák
Vizsgálati módszertan Mikor és hogyan illeszkedik a tesztelés a fejlesztési ciklusba? A használatban lévő fejlesztési modell Vízesés, iteratív, agilis, extrém programozás
Tesztelési típus A termék melyik aspektusát ellenőrzik? Kockázat- és követelményfedezet Egység, integráció, rendszer, teljesítmény, biztonság
Tesztelési szint Milyen mélységben vizsgálják a szoftvert? Pozíció az építési hierarchiában Komponens, integráció, rendszer, elfogadás
Tesztstratégia Mi a szervezetünk minőségügyi megközelítése? QA vezetés, minden projektre vonatkozik Kockázatalapú, automatizálás előtérbe helyezve, balra tolódás
Teszt terv Pontosan mit fog tesztelni ez a projekt, mikor és ki fogja tesztelni? Tesztmenedzser, projektspecifikus Hatály, ütemterv, erőforrások, belépési és kilépési kritériumok

Egy hasznos ökölszabály: a módszertan határozza meg a ritmust, a típus a célt, és a teszt terv rögzíti a kötelezettségvállalást. Az alábbi szakaszok a módszertanokat vizsgálják.

Vízesés modell

Vízesés modell

Mi ez?

A vízesés modell, a szoftverfejlesztés különböző fázisokon keresztül halad, mint például a követelmények elemzése, tervezése stb. szekvenciálisan.

Ebben a modellben a következő fázis csak akkor kezdődik, amikor a korábbi fázis befejeződik.

Mi a tesztelési megközelítés?

A vízesés-modell első fázisa a követelményfázis, amelyben az összes projektkövetelmény teljesen meghatározásra kerül a tesztelés megkezdése előtt. Ebben a fázisban a tesztcsapat ötleteket ad a tesztelés hatóköréről, a tesztelési stratégiáról, és részletes teszttervet készít.

A csapat csak a szoftver tervezésének befejezése után folytatja a tesztesetek végrehajtását, hogy megbizonyosodjon arról, hogy a kifejlesztett szoftver az elvárásoknak megfelelően viselkedik.

Ebben a módszertanban a tesztelő csapat csak akkor lép tovább a következő fázisba, ha az előző fázis befejeződött.

Előnyök Hátrányok
Ez a szoftvermérnöki modell nagyon egyszerűen tervezhető és kezelhető. Ezért azok a projektek, ahol a követelmények egyértelműen meghatározottak és előre megfogalmazottak, könnyen tesztelhetők egy vízesés modell segítségével. A vízesés modellben csak akkor kezdheti el a következő fázist, ha az előző fázis befejeződött. Ezért ez a modell nem képes befogadni a nem tervezett eseményeket és a bizonytalanságot.
Ez a módszertan nem alkalmas olyan projektekre, ahol a követelmények gyakran változnak.

Iteratív fejlesztés

Iteratív fejlesztés

Mi ez?

Ebben a modellben egy nagy projektet kisebb részekre osztanak, és minden részt a vízesésmodell többszöri iterációjának vetnek alá. Az iteráció végén egy új modult fejlesztenek ki, vagy egy meglévő modult fejlesztenek tovább. Ezt a modult integrálják a szoftverarchitektúrába, és a teljes rendszert együttesen tesztelik.

Mi a tesztelési megközelítés?

Amint az iteráció befejeződött, a teljes rendszert tesztelik. A tesztelésből származó visszajelzések azonnal rendelkezésre állnak, és beépülnek a következő ciklusba. Az egymást követő iterációhoz szükséges tesztelési idő a korábbi iterációk tapasztalatai alapján csökkenthető.

Előnyök Hátrányok
Az iteratív fejlesztés fő előnye, hogy minden ciklus végén azonnal elérhető a teszt visszajelzés. Ez a modell jelentősen megnöveli a kommunikációs költségeket, mivel minden ciklus végén visszajelzést kell adni az eredményekről, erőfeszítésekről stb.

Agilis módszertan

Agilis módszertan

Mi ez?

A hagyományos szoftverfejlesztési módszerek azon az előfeltevésen dolgoznak, hogy a szoftverkövetelmények a projekt során állandóak maradnak. De a komplexitás növekedésével a követelmények számos változáson mennek keresztül, és folyamatosan fejlődnek. Időnként maga az ügyfél sem tudja, mit akar. Bár az iteratív modell foglalkozik ezzel a problémával, továbbra is a vízesés modellen alapul.

Az Agilis módszertanban a szoftvert növekményes, gyors ciklusokban fejlesztik. A folyamatok és eszközök helyett inkább az ügyfelek, a fejlesztők és az ügyfelek közötti interakciók kerülnek előtérbe. Az agilis módszertan a változásokra való reagálásra összpontosít, nem pedig az átfogó tervezésre.

Mi a tesztelési megközelítés?

Az agilis fejlesztési módszerek növekményes tesztelést alkalmaznak, így a projekt minden kiadását alaposan tesztelik. Ez biztosítja, hogy a rendszerben lévő hibákat a következő kiadás előtt kijavítsák.

Előnyök Hátrányok
A követelményeknek való megfelelés érdekében a projektben bármikor módosítható. Az ügyfelek folyamatos interakciója további időnyomást jelent minden érdekelt félre, beleértve magát az ügyfelet, a szoftverfejlesztő és a tesztelő csapatokat is.
Ez a fokozatos tesztelés minimalizálja a kockázatokat.

Extrém programozás

Extrém programozás

Mi ez?

Az extrém programozás az agilis módszertan egyik fajtája, amely a rövid fejlesztési ciklusokban hisz. Egy projekt egyszerű mérnöki feladatokra oszlik. A programozók kódolnak egy egyszerű szoftvert, és visszajelzést kérnek az ügyféltől. RevAz ügyféltől kapott pontok beépítésre kerülnek, és a fejlesztők folytatják a következő feladatot.

Az extrém programozásban a fejlesztők általában párban dolgoznak.

Extrém programozás olyan helyeken használják, ahol az ügyfelek igényei folyamatosan változnak.

Mi a tesztelési megközelítés?

Az extrém programozás egy tesztvezérelt fejlesztést követ, amelynek leírása a következő:

  1. Hozzáadása Teszt eset a tesztkészletbe az új, még fejlesztésre váró funkciók ellenőrzésére
  2. Futtassa le az összes tesztet, és nyilvánvalóan a hozzáadott új tesztesetnek sikertelennek kell lennie, mivel a funkció még nincs kódolva
  3. Írjon egy kódot a funkció/funkció megvalósításához
  4. Futtassa újra a tesztcsomagot. Ezúttal az új tesztesetnek át kell mennie, mivel a funkcionálisan kódolásra került
Előnyök Hátrányok
A homályos szoftverdizájnnal rendelkező ügyfelek extrém programozást használhatnak. A szoftverfejlesztő csapat és az ügyfelek közötti találkozók megnövelik az időigényt.
A folyamatos tesztelés és a kis kiadások folyamatos integrációja biztosítja, hogy a szoftverkód kiváló minőségű legyen

V-modell és spirálmodell

A legtöbb projekten további két modell jelenik meg, amelyek teljessé teszik a képet, mivel mindegyik másképp ad választ a vízesés-modell egy gyengeségére.

V-modell. A V-modellt, amelyet gyakran verifikációnak és validációnak is neveznek, minden fejlesztési fázishoz egy megfelelő tesztelési fázist párosítanak, amelyeket egy V két ágaként rajzolnak meg. A követelmények az elfogadási teszteléssel, a magas szintű tervezés a rendszerteszteléssel, az alacsony szintű tervezés az integrációs teszteléssel, a kódolás pedig az egységteszteléssel párosulnak. Az előnye az, hogy a tesztek tervezése minden fejlesztési fázissal együtt kezdődik, nem pedig a kódolás után, így a nem egyértelmű követelményeket az elfogadási teszteket író személy hónapokkal azelőtt találja meg, hogy egy hiba létrejöhetne. Gyengesége a vízesés modellből öröklődik: a modell továbbra is feltételezi, hogy a követelmények stabilak.

Spirális modell. A spirál az iterációt explicit kockázatelemzés köré tekeri. Minden ciklus négy tevékenységet tartalmaz: célok meghatározása, kockázatok azonosítása és megoldása, fejlesztés és tesztelés, majd a következő iteráció megtervezése. A tesztelés ezért oda koncentrál, ahol a kockázat a legmagasabb, ahelyett, hogy egyenletesen oszlana el. Nagy, drága, hosszú ideig futó programokhoz, például repülőgépipari vagy banki alaprendszerekhez illik, ahol a késői felfedezés költsége súlyos. Egy kis webes projekt esetében a formális kockázatelemzés minden cikluson belüli többletköltsége ritkán indokolt.

Mindkét modell a vízesés-elvű elven alapuló fegyelem és az agilis reagálóképesség között helyezkedik el, ahol a kiadások gyakorisága mindkettőnél fontosabb, DevOps A folyamat a tesztelést folyamatos integrációvá alakítja, így minden commit automatikusan ellenőrzésre kerül.

Melyik szoftvermódszert válassza?

Rengeteg módszer áll rendelkezésre a szoftverfejlesztéshez és a megfelelő teszteléshez. Minden vizsgálati technikát és módszertant egy meghatározott célra terveztek, és megvannak a maga relatív előnyei és hátrányai.

Egy adott módszertan kiválasztása számos tényezőtől függ, például a projekt jellegétől, az ügyfél igényeitől, a projekt ütemezésétől stb.

Tesztelési szempontból egyes módszerek a fejlesztési életciklus korai szakaszában szorgalmazzák az input tesztelését, míg mások megvárják, amíg a rendszer működő modellje elkészül.

Hogyan állítsunk be szoftvertesztelési módszereket?

A szoftvertesztelési módszereket nem szabad pusztán a szoftverkód tesztelése érdekében felállítani. Figyelembe kell venni az összképet, és a projekt elsődleges célját meg kell elégíteni a tesztelési módszertannal. Tekintse meg ezt a jó hírű listát szoftvertesztelő szolgáltatók aki segíthet a projekt céljaihoz igazodó hatékony tesztelési stratégiák kidolgozásában.

Ütemezés

A reális ütemezés a kulcsa a sikeres tesztelési módszertan megvalósításának, és az ütemezésnek meg kell felelnie a csapat minden tagjának igényeinek.

Meghatározott szállítmányok

Annak érdekében, hogy a csapat minden tagja ugyanazon az oldalon maradjon, jól meghatározott eredményeket kell biztosítani. A szállítmányoknak közvetlen tartalmat kell tartalmazniuk, minden félreértés nélkül.

Teszt megközelítés

Amint az ütemezés elkészült, és a meghatározott teljesítések elérhetővé válnak, a tesztelő csapatnak képesnek kell lennie a megfelelő vizsgálati megközelítés megfogalmazására. A definíciós dokumentumoknak és a fejlesztői értekezleteknek jelezniük kell a csapat számára a projekthez használható legjobb tesztmódszert.

Beépített reporting

Az átlátható jelentéskészítést nagyon nehéz megvalósítani, de ez a lépés meghatározza a projektben alkalmazott tesztelési megközelítés hatékonyságát.

GYIK

Igen, és ez gyakori. A szabályozott programok gyakran vízesés elvén működő irányítást alkalmaznak agilis megvalósítási csapatok köré, így a dokumentáció kielégíti az auditorok igényeit, miközben a fejlesztés rövid visszajelzési ciklusokat biztosít.

A tesztelési tevékenységet az életciklus korábbi szakaszába helyezik, így a hibák a követelményekben és a tervezésben találhatók, nem pedig a kódolás után. A tesztvezérelt fejlesztést balra tolják, és a logikai végére viszik.

A mesterséges intelligencia lerövidíti a visszacsatolási ciklust a modell helyettesítése helyett. A generált tesztesetek, az önjavító lokátorok és a kockázatalapú kiválasztás lehetővé teszik, hogy a rövid agilis ciklusok olyan lefedettséget érjenek el, amelyhez korábban egy hosszú fázisra volt szükség.

Igen. A teszthatás-elemzés a kódmódosításokat a tesztekhez rendeli, amelyek lefedik azokat, így a folyamat egy célzott részhalmazt futtat percek alatt a teljes regressziós csomag egyik napról a másikra történő futtatása helyett.

Igen, de könnyebb. Az agilis módszertan a működő szoftvert részesíti előnyben az átfogó dokumentációval szemben, nem pedig a semmilyennel szemben. Az elfogadási kritériumok, az automatizált tesztek és a tömör tesztterv továbbra is szükséges bizonyítékok.

Foglald össze ezt a bejegyzést a következőképpen: