5.dia Szoftvertesztelés Flashcards

(25 cards)

1
Q

Mi a szoftvertestelés?

A

Az a folyamat amikor a szoftver minőségét megállapítjuk és a működés közbeni meghibásodások kockázatát minimalizáljuk. A program azt csinálja-e amit kell?
Ilyen tevékenység a hibák felderítése és a minőség értékelése.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Tévedés/tévesztés (Hibát leíró szakkifejezések)

A

Rossz eredményt adó emberi tevékenység. Ez hibáát vezethet be a szoftver kódjába vagy valamely más kapcsolódó munkatermékbe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hiba (Hibát leíró szakkifejezések)

A

Tökéletlenség vagy hiányosság egy munkatermékben, amelynél nem teljesülnek a követelmények vagy előírások.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Meghibásodás (Hibát leíró szakkifejezések)

A

Olyan esemény, amelynél egy komponens vagy rendszer nem lát egy megkövetelt funkciót a megszabott határok között.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Tesztelési alapelvek

A

6 alapelv:
1. A tesztelés a hibák jelenlétét mutatja meg, nem a hiányukat.
2. Lehetetlen a kimerítő tesztelés. A hibamentesség egy tévhit.
3. A korai tesztelés időt és pénzt takarít meg.
4. A hibák csoportosulnak.
5. A tesztek elkopnak (Kártevőírtó paradox)
6. A tesztelés környezet függő.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Teszteset fogalma

A

Teszt feltétel : egy komponens vagy rendszer tesztelhető vonatkozásban
Teszt bemenetek, végrehajtási feltételek és elvárt eredmények halmaza.
Vagy egy feltételnek megfelelést vagy egy végrehajtást tesztelünk.
Magas szintű teszteset:
Absztrakt előfeltételek, bemenet, elvárt eredmények és utófeltételekkel és lépésekkel.
Alacsony szintű teszteset:
Konkrét előfeltételek, bemenet, elvárt eredémnyek ls utófeltételekkel és lépésekkel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tesztadat fogalma

A

A tesztvégrehajtáshoz szükséges adatok.
Konkrét értékek és a hozzájuk tartozó használati útmutató alacsonyszintűvé teszik a tesztesetet.
Magas szintű azonban az a testeset aminél több különféle tesztadatot használunk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Egységtesztelés (Tesztelési szintek)

A

Független tesztelhető komponensekre összpontosít.
Általában az a fejlesztő végzi aki azt a bizonyos kódot írta, de legalább is a tesztelt kódhoz való hozzáférés szükséges.
Gyakran egy kódrész megírása után írnak egységtesztet a fejlesztők, viszont történhet fordítótt sorrendben is. (TDD)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Komponens integrációs tesztelés (Tesztelési szintek)

A

Az integrált komponensek közötti kommunikációra és interfészekre összpontosít. Tehát nem a komponensek működése érdekes, hanem az integráció.
Általában automatizált módon az egységtesztek után végzik.
Gyakran a fejlesztők felelőssége.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Rendszertesztelés (Tesztelési szintek)

A

A rendszer egészének viselkedésére összpontosít.
Ezt független tesztelők végzik, és specifikációkra támaszkodnak.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Rendszerintegrációs tesztelés (Tesztelési szintek)

A

A rendszerek közötti komunikációra és interfészekre összpontosít.
Történhet a rendszerteszteléssel párhuzamosan vagy utána is.
Környezetnek olyannak kell lennie mintha élesben menne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Elfogadási tesztelés(Tesztelési szintek)

A

Azt vizsgálják, hogy a szoftver készen áll-e a telepítésre és a felhasználó általi alkalmazásra.
Gyakran az ügyfél és a rendszerüzemeltetők felelőssége.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Alfa és Béta tesztelés (Tesztelési szintek)

A

Elfogadási teszteléshoz kapcsolódóan :
alfa:
Felhasználók és fejlesztők közös munkája, általában a telephelyen.
béta:
Korai hozzáférést nyújtanak egy akár még befejezetlen termékhez felhasználók és ügyfelek egy nagyobb csoportjának.
A marketing egy formája.
Főleg olyan alkalmazásoknál használják, ahol sok különböző környezetben helyét kell állnia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Változással kapcsolatos tesztelés

A

Amikor a rendszer módosul egy új funkció vagy hiba kijavítása miatt, azt tesztekkel kell végezni.
2 fajtája:
Megerősítő tesztelés:
Cél, hogy vizsgáljuk, hogy a hiba tényleg ki lett-e javítva.
Regressziós tesztelés:
Lehet, hogy a módosítás a szoftver más részét is befolyásolja, ezt le kell ellenőrízni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

A jó egységtesztek ismertetőjegyei: FIRST

A

Fast (Gyors) : A teszteknek gyorsan le kell futniuk.
Független (Independent) : A teszteknek egymástól függetlennek kell lenniük.
Megismételhető (Repeatable) : A tesztek bármely környezetben megismételhetőnek kell lenniük.
Önérvényesítő (Self-Validating) : A teszteknek logikai kimenete kell, hogy legyen. (Fail/Success)
Jól időzíthető (Timely) : A teszteket kellő időben kell megírni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Egységtesztek szervezése: az AAA minta

A

3 részből állnak a tesztek:
Elrendez (Arrange) : A tesztelt rendszer és a függőségeit tesztelhető állapotba hozza.
Cselekszik (Act) : A tesztelt rendszer metódusait meghívja, előkészíti a függőségeket átadásra és ha van kimenet azt elkapja.
Kijelent (Assert) : ellenőrzi a kimenetet.

17
Q

Tesztosztályok (JUnit)

A

Bármely felsőszintű osztály, statikus tagosztály vahy @Nested osztály, amely legalább egy tesztmetódust tartalmaz.
(Nem lehet absztrakt és csak egy konstruktora lehet.)
Nem lehet privát.
Konstruktorának és metódusainak lehetnek paraméterei a függőség befecskendezés miatt.

18
Q

Tesztmetódusok (JUnit)

A

Bármely példánymetódus amely el van látva:
@Test
@RepeatedTest
@ParameterizedTest
@TestFactory
@TestTemplate
annotációval.
Nem lehet privát.
Deklarálhatók magában a tesztosztályban de örököltethetőek is.
Nem lehetnek absztraktak és nincs return.

19
Q

Életciklus metódus (JUnit)

A

@BeforeAll - Statikus kell, hogy legyen
@AfterAll - Statikus kell, hogy legyen
@BeforeEach
@AftherEach
annotációval megjelölt metódusok.
Nem lehet privát.
Deklarálhatók magában a tesztosztályban de örököltethetőek is.
Nem lehetnek absztraktak és nincs return.

20
Q

Teszt végrehajtási életciklus (JUnit)

A

Mindig új példányt hoz létre a JUnit a tesztosztályból a tesztmetódus lefuttatása előtt. Így izolál.
Ha nem így akarjuk, akkor a tesztosztályon @TestInstace(Lifecycle.PER_CLASS) annotációt kell elhelyezni.

21
Q

Teszteredmények (JUnit)

A

3 esete:
Siker (success) :
Minden tényleges eredmény megegyezik a várt eredménnyel. A teszt átment.
Bukás (failure) :
A tényleges és a várt eredmények nem egyeznek meg. A teszt megbukik.
Hiba (error) :
A teszt végrehajtásakor egy hiba következett be, így nem tudott befejeződni.

22
Q

Utasítás lefedettség és Sor lefedettség (Kódlefedettségi metrikák)

A

A leggyakrabban használt lefedettségi metrikák.
Utasítás lefedettség = Végrehajtott utasítások
Sor lefedettség = Végrehajtott kódsorok
Minden végrehajtott utasítás/sor egyszer számolandó.
A sor lefedettségnél csak a végrehajtható kódot tartalmazó sorok számítanak, így a forráskód formázása számít.

23
Q

Ág lefedettség (Kódlefedettségi metrikák)

A

Olyan lefedettségi mérték, amely az if. switch és más hasonló vezérlési szerkezeten alapul.
A végrehajtott ág számához viszonyítva nézi a tesztkészlet lefutásakkor.
Ág lefedettség = Végrehajtott ágak / Összes ág száma

24
Q

Mi az ésszerű lefedettségi szám? (Kódlefedettségi metrikák)

A

Ököl szabály:
Jó, ha a fő részei le vannak fedve, de ha a lefedettség követelménye magas ez válhat a fő céllá. Nem a tesztek minősége.

25
Mi az a tesztvezérelt fejlesztés? (TDD)
Egy szoftvertesztelési módszertan, ahol automatizált tesztek írása megelőzi a kódírást. Alapelve: Készíts tesztet (Nem sikeres) -> Csinálj minimális kódot (Már sikeres) -> Nézd újra a kódt, és tisztítsd (Hogy továbbra is sikeres maradjon) red -> green -> refactor