Szoftvertesztelés Flashcards
Mi az ISTQB?
International Software Testing Qualification Board, nemzetközi non-profit szervezet, szoftvertesztelési tanusitványokat kínál.
ISTQB Certified Tester a világ legnépszerűbb és legelismertebb tanúsítványa a szoftvertesztelés területén.
Mi a szoftvertesztelés?
IEEE - A szoftvertesztelés annak a dinamikus verifikálása, hogy egy program várt módon viselkedik tesztesetek során, melyek alkalmas módon kerültek kiválasztásra.
ISTQB - A szoftvertesztelés egy megoldás a szoftver minőségének megállapításához és a működés közbeni meghibásodási kockázatok csökkentésére.
Sommerville - A tesztelés célja a használatba vétel előtt annak a megmutatása, hogy egy szoftver rendeltetés-szerűen működik, és programhibákat lehet feltárni.
Milyen korlátai vannak a szoftvertesztelésnek?
Csökkenti a szoftverben felfedezetlen hibák valószínűségét, de nem a helyesség bizonyítéka ha nincs egy hiba sem.
Dijkstra (1972):
“A tesztelés csak a hibák jelenlétét tudja megmutatni, a hiányukat nem.”
Jellemezd a verifikációt és validációt!
A szoftvertesztelés a szoftver verifikáció és validáció része.
Verifikáció - annak ellenőrzése, hogy a szoftver megfelel-e a vele szemben támasztott követelményeknek - Are we building the product right?
Validáció - annak ellenőrzése, hogy a szoftver megfelel-e az ügyfelek elvárásainak - Are we building the right product?
Milyen V & V módszerek vannak?
Szoftver ellenőrzés és áttekintés - statikus, szoftver végrehajtása nélkül ellenőrizzük a szoftver különféle reprezentációit (pl rendszerkövetelmények, forráskódok)
Szoftvertesztelés - dinamikus, azaz a szoftver végrehajtásán alapul
Mi a validációs és hiányossági tesztelés?
Validációs tesztelés - célja a fejlesztő és vásárló számára bizonyítani, hogy a szoftver megfelel a vele szemben támasztott követelményeknek
Hiányosság tesztelés - célja olyan bemenetek találása, melyeknél a szoftver viselkedése helytelen, nemkívánatos vagy nem felel meg a specifikációnak
Jellemezd a tévedés/tévesztés, hiba, meghibásodás szakkifejezéseket!
Tévedés/tévesztés - rossz eredményt adó emberi tevékenység
Hiba - tökéletlenség vagy hiányosság egy munkatermékben, melynél nem teljesülnek az előírások
Meghibásodás - olyan esemény, melynél egy komponens nem lát egy megkövetelt funkciót
Egy személy tévedése/tévesztése hibát eredményezhet a szoftver kódjában.
Ha végrehajtásra kerül a hibás kód, meghibásodást eredményezhet.
Sorold fel a szoftvertesztelés hét alapelvét!
- A tesztelés a hibák jelenlétét mutatják, nem hiányukat
- Lehetetlen a kimerítő tesztelés
- Korai tesztelés időt és pénzt takarít meg
- Hibák csoportosulnak
- Óvakodj a kártékony paradoxontól
- A tesztelés környezetfüggő
- A hibamentesség egy tévhit
Mi a teszteset? Milyen szintjei vannak?
IEEE - teszt bemenetek, végrehajtási feltételek és elvárt eredmények egy halmaza, melyek a program bizonyos útvonalon történő végrehajtását eredményezi vagy egy bizonyos követelménynek való megfelelését ellenőrzi
ISTQB - Tesztfeltételek alapján meghatározott előfeltételek, bemenetek, tevékenységek, elvárt eredmények és utófeltételek egy halmaza.
Magas szintű teszteset - absztrakt előfeltételekkel, bemeneti adatokkal, elvárt eredményekkel, utófeltételekkel és lépésekkel rendelkezik
Alacsony szintű teszteset - konkrét előfeltételekkel, bemeneti adatokkal, elvárt eredményekkel, utófeltételekkel és lépésekkel rendelkezik
Mi a tesztadat?
A tesztvégrehajtáshoz szükséges adatok. Alacsony szintű tesztekké alakítja a magas szintűeket.
Milyen szintjei vannak a tesztelésnek?
Egységtesztelés/komponens tesztelés - függetlenül tesztelhető komponensekre összpontosít, fejlesztő végzi
Integrációs tesztelés - komponensek vagy rendszerek közötti kommunikációra összpontosít. az integrációra koncentrál
Rendszertesztelés - a rendszer egészére összpontosít, független tesztelők végzik
Elfogadási tesztelés(alfa és béta tesztelés) - arra összpontosít, hogy a rendszer kész-e a telepítésre és a használatra, ügyfél és rendszerüzemeltetők felelőssége, néha odaadják potenciális felhasználóknak
Jellemezd az integrációs tesztelés szintjeit!
Komponens integrációs tesztelés - integrált komponensek közötti kommunikációra összpontosít - egységtesztek után, automatikusak
Rendszerintegrációs tesztelés - rendszerek közötti kommunikációra és interfészekre összpontosít
Jellemezd az elfogadási alfa és béta teszteket!
Az alfa tesztelés - felhasználók és fejlesztők együtt dolgoznak egy rendszer tesztelésén, fejlesztő környezet telephelyén történik
A béta tesztelés - Kipróbálásra elérhetővé teszik a szoftverrendszer korai változatát, felhasználók helyén történik
Jellemezd az elfogadási alfa és béta teszteket!
Az alfa tesztelés - felhasználók és fejlesztők együtt dolgoznak egy rendszer tesztelésén, fejlesztő környezet telephelyén történik
A béta tesztelés - Kipróbálásra elérhetővé teszik a szoftverrendszer korai változatát, felhasználók helyén történik, olyan szoftvereknél amit sok különböző környezetben használnak, marketing eszköz
Milyen teszttípusok léteznek?
Funkcionális tesztelés - rendszer funkcióinak tesztelése
Nem funkcionális tesztelés - rendszer használhatósága, teljesítménye vagy biztonságának tesztelése
Fehér dobozos tesztelés - rendszer belső felépítésén vagy megvalósításán alapuló tesztek
Változással kapcsolatos tesztelés - megerősítő és regressziós tesztelés
- megerősítő - célja megerősíteni, hogy az
eredeti hiba kijavításra került
- regressziós - a kódban minden változás által
okozott akaratlan mellékhatások érzékelése
Melyek a jó egységtesztek ismertetőjegyei?
FIRST
Gyors (fast) - gyorsan kell, hogy lefussanak
Független (independent) - nem függhetnek a tesztek egymástól
Megismételhető (repeatable) - bármely környezetben megismételhetőek
Önérvényesítő (Self-Validating) - logikai kimenetűek, vagy átmennek vagy megbuknak
Jól időzített (Timely) - A teszteket a kód előtt kell megírni (időben)
jellemezd az egységtesztek szervezését!
Három része ajánlott, hogy legyen. AAA minta
Elrendez (Arrange) - ez felelős a teszt és függőségei egy kívánt állapotba állításáért
Cselekszik (Act) - egy hívja meg a tesztelt metódusokat, átadja az előkészített függőségeket
Kijelent (Assert) - ellenőrzi a kimentet, ábrázolható visszatérési értékkel vagy a tesztelt rendszer végső állapotábal
Jellemezd a JUnit tesztosztályait és tesztmetódusait!
Tesztosztály - bármely felső szintű osztály, mely legalább egy tesztmetódust tartalmaz (nem absztrakt és van egy konstruktora)
Tesztmetódus - a @Test, @RepeatedTest, @ParameterizedTest,
@TestFactory vagy @TestTemplate annotációval megjelölt bármely példánymetódus.
Életciklus metódus - a @BeforeAll, @AfterAll, @BeforeEach vagy
@AfterEach annotációval megjelölt bármely metódus
Nem kell nyilvánosak legyenek, de nem lehetnek privátak. Örökölhetők ősosztályból vagy interfészből, nem lehetnek absztraktak és nem adnak vissza értéket.
Jellemezd a teszt végrehajtási életciklust!
JUnit példányt hoz létre minden tesztosztályból az egyes tesztmetódusok végrehajtása előtt. Izolálja a tesztmetódusok végrehajtását.
@TestInstance(Lifecycle.PER_CLASS) ezzel ugyanazon a tesztpéldányon lesznek végrehajtva.
Jellemezd a teszteredményeket!
Siker (Succes) - mikor minden eredmény megegyezik a várttal
Ekkor átmegy (passes)
Bukás (Failure) - az eredmény nem egyezik meg a várttal
egy elbukó állítás eredményezi, a teszt bukik (fails)
Hiba (error) - egy hiba megakadályozza a befejeződést
Jellemezd az utasítás/sor lefedettséget!
végrehajtott utasítások / összes utasítás és
végrehajtott kódsorok / összes sor
Csak egyszer számoljuk.
Jellemezd az ág lefedettséget!
Olyan vezérlési szerkezeteken alapul mint az if és a switch.
végrehajtott ág / összes ág