Szoftvertesztelés tudástár
Szoftvertesztelés alapfogalmak
- Hiba (Bug): Egy pontosan körülhatárolható és kimutatható hibajelenség a szoftverben. A hibák eredete, következménye és megoldása sokszor egyedi, de léteznek bizonyos tipikus hibakategóriák és -típusok.
- Tesztelés (Testing): Olyan folyamat, amelynek során a szoftvert előre meghatározott feltételek szerint vizsgálják és értékelik. A tesztelés célja a szoftver hibáinak feltárása és javítása
- Tesztkörnyezet (Test Environment): A szoftver tesztelésére létrehozott környezet, amely lehető legnagyobb mértékben szimulálja az éles alkalmazás informatikai környezetét
- Tesztforgatókönyv (Test Scenario): Egy írásos dokumentáció, amely tartalmazza a teszt futtatásának tevékenységsorozatát és annak tulajdonságait, előfeltételeit.
- Teszteset (Test Case): Egy tesztfuttatás alkalmával végzett jól körülhatárolható műveletsorozat.
- Automatizált tesztelés (Automated Testing): A tesztelési folyamatok automatizált eszközökkel történő végrehajtása, ami gyorsabb és hatékonyabb lehet.
- Funkcionális tesztelés (Functional Testing): A szoftver funkcionalitását vizsgálja, hogy megfelel-e a specifikációknak.
- Nem-funkcionális tesztelés (Non-functional Testing): A szoftver teljesítményét, biztonságát, használhatóságát és egyéb nem-funkcionális követelményeket vizsgálja.
- Black-box tesztelés: A tesztelők a szoftver belső működésének ismerete nélkül végzik a tesztelést, csak a bemenetekre és kimenetekre koncentrálnak.
- White-box tesztelés: A tesztelők ismerik a szoftver belső működését, és ennek alapján végzik a tesztelést.
Szoftvertesztelési eszközök
- Selenium: Egy nyílt forráskódú eszköz, amelyet webalkalmazások automatizált tesztelésére használnak. Támogatja a különböző böngészőket és programozási nyelveket.
- Appium: Egy erőteljes eszköz a mobil és asztali alkalmazások automatizált tesztelésére
- TestComplete: Egy átfogó automatizált tesztelési eszköz, amely támogatja a webes, mobil és asztali alkalmazások tesztelését. Könnyen integrálható más eszközökkel és keretrendszerekkel.
- Katalon Studio: Egy ingyenes automatizált tesztelési eszköz, amely támogatja a webes, mobil és API tesztelést. Felhasználóbarát felülettel rendelkezik, és könnyen használható.
- TestRail: Egy webalapú tesztkezelő eszköz, amely lehetővé teszi a tesztesetek, teszttervek és tesztfuttatások kezelését. Integrálható más eszközökkel, mint például a JIRA és a Jenkins.
- JIRA: Bár elsősorban hibakövető eszközként ismert, a JIRA számos bővítménnyel és integrációval rendelkezik, amelyek lehetővé teszik a tesztkezelést is.
- JMeter: Egy nyílt forráskódú eszköz, amelyet webes alkalmazások és szolgáltatások teljesítményének tesztelésére használnak. Képes nagy terhelés szimulálására és a rendszer válaszidejének mérésére.
- LoadRunner: Egy átfogó teljesítmény tesztelési eszköz, amely támogatja a különböző alkalmazások és protokollok tesztelését. Képes nagy terhelés szimulálására és részletes jelentések készítésére.
- OWASP ZAP (Zed Attack Proxy): Egy nyílt forráskódú eszköz, amelyet webes alkalmazások biztonsági tesztelésére használnak. Képes automatikus és manuális tesztelésre is.
- Burp Suite: Egy átfogó biztonsági tesztelési eszköz, amelyet webes alkalmazások sebezhetőségeinek felderítésére és kihasználására használnak.
Szoftvertesztelési modellek
Vízesés modell (Waterfall Model): Ez egy lineáris és szekvenciális módszertan, ahol a fejlesztési folyamat lépéseit szigorú sorrendben hajtják végre: elemzés, tervezés, kódolás, tesztelés, közzététel, karbantartás. Előnye, hogy jól strukturált és dokumentált folyamatot biztosít, hátránya viszont, hogy nem teszi lehetővé a követelmények megváltoztatását a fejlesztés során
Agilis szoftverfejlesztés (Agile): Az agilis módszertanok iteratív és inkrementális megközelítést alkalmaznak, ahol a fejlesztés rövid ciklusokban (sprintekben) történik. Az agilis módszertanok közé tartozik például a Scrum és a Kanban. Előnye, hogy rugalmasan alkalmazkodik a változó követelményekhez, és folyamatosan bevonja az ügyfelet a fejlesztési folyamatba.
Iteratív és inkrementális modell: Ez a modell a szoftver fejlesztését több kisebb lépésben végzi el, ahol minden iteráció során egyre több funkció kerül hozzáadásra. Az iteratív és inkrementális megközelítés lehetővé teszi a folyamatos tesztelést és visszajelzést, ami javítja a végső termék minőségét.
Prototípus alapú modell (Prototyping Model): Ebben a módszertanban a fejlesztők először egy vagy több prototípust készítenek, amelyeket az ügyfelek értékelnek. A prototípusok alapján a végleges szoftver fejlesztése során figyelembe veszik az ügyfelek visszajelzéseit. Ez a megközelítés segít a követelmények pontosabb meghatározásában és a felhasználói elégedettség növelésében
V-modell (V-Model): A V-modell a vízesés modell kiterjesztése, amely nagy hangsúlyt fektet a tesztelésre. Minden fejlesztési fázisnak van egy megfelelő tesztelési fázisa, amely biztosítja, hogy a szoftver megfeleljen a követelményeknek. Ez a modell jól strukturált és dokumentált folyamatot biztosít, de kevésbé rugalmas a változó követelmények kezelésében.