5.Szoftvertesztelés Flashcards

(13 cards)

1
Q

Mi a szoftvertesztelés?

A

A szoftvertesztelés annak dinamikus verifikálását jelenti, hogy
egy program várt módon viselkedik tesztesetek egy véges halmazán.

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

Hibát leíró szakkifejezések:

A

Tévedés/tévesztés (error/mistake): rossz eredményt adó emberi tevékenység.

Hiba (defect/fault/bug): tökéletlenség vagy hiányosság egy munkatermékben, melynél nem teljesülnek a követelmények vagy előírások

Meghibásodás (failure): esemény, melynél egy komponens vagy rendszer nem látja el egy funkcióját a határok között

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

Tesztelési alapelvek 7db

A

1 A tesztelés a hibák jelenlétét mutatja meg, nem a hiányukat

2 Lehetetlen a kimerítő tesztelés

3 A korai tesztelés időt és pénzt takarít meg

4 A hibák csoportosulnak

5 A tesztek elkopnak

6 A tesztelés környezetfüggő

7 A hibamentesség egy tévhit

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

Teszteset és tesztadat

A

Eset:
Tesztfeltételek alapján meghatározott:
előfeltételek,
bemenetek,
tevékenységek
, elvárt eredmények és
utófeltételek halmaza.
Adat: A tesztadatok a tesztvégrehajtáshoz szükséges adatokat jelentik.

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

Tesztelési szintek:
egységtesztelés, komponens integrácós tesztelés, rendszertesztelés, rendszerintegrációs tesztelés, elfogadási tesztelés (alfa és béta tesztelés)

A

1 Egységtesztelés/komponens tesztelés
A függetlenül tesztelhető komponensekre összpontosít.

2 Komponensintegrációs tesztelés
Az integrált komponensek közötti kommunikációra és interfészekre
összpontosít.

3 Rendszertesztelés
A rendszer egészének (funkcionális és nem funkcionális) viselkedésére
összpontosít

4 Rendszerintegrációs tesztelés
A rendszerek közötti kommunikációra és interfészekre összpontosí

5 Elfogadási tesztelés
A rendszer kész-e a
telepítésre és az végfelhasználó általi használatra.
Alfa: Felhasználók és fejlesztők együtt dolgoznak egy rendszer tesztelésén a
fejlesztés közben
Béta: Akkor történik, amikor egy szoftverrendszer egy korai, néha befejezetlen
kiadását elérhetővé teszik kipróbálásra ügyfelek és felhasználók egy
nagyobb csoportjának.

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

Változással kapcsolatos tesztelés

A

Megerősítő tesztelés: célja annak megerősítése, hogy az eredeti hiba sikeresen kijavításra került.

Regressziós tesztelés: A regressziós tesztelés célja a változások által okozott akartalan mellékhatások érzékelése.

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

FIRST

A

Gyors (Fast): A tesztek gyorsak kell, hogy legyenek.

Független (Independent): A tesztek nem függhetnek egymástól

Önérvényesítő (Self-Validating): A teszeknek logikai kimenete kell, hogy legyen.

Jól időzített (Timely): A teszteket kellő időben kell megírni, közvetlenül a tesztelendő kód előtt

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

AAA minta

A

Elrendez (Arrange): tesztelt rendszer és függőségei egy kívánt állapotba állításáért.

Cselekszik (Act): tesztelt rendszer metódusainak meghívására, az előkészített függőségek átadására és a kimeneti érték elkapására (ha van).

Kijelent (Assert): a kimenetel ellenőrzésére. A kimenetel ábrázolható a visszatérési értékkel vagy a tesztelt rendszer végső állapotával.

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

Junit

A

Alapértelmezésben a JUnit egy új példányt hoz létre minden egyes
tesztosztályból az egyes tesztmetódusok végrehajtás előtt, mely
lehetővé teszi a tesztmetódusok izoláltan történő végrehajtását.

Tesztosztály: bármely felsőszintű osztály, statikus osztály vagy nested osztály, mely legalább egy tesztmetódust tartalmaz.
Nem lehet absztrakt és egyetlen konstruktora kell, hogy legyen.

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.

Végrehajtási életciklus:
Alapértelmezésben a tesztmetódusok rendezése egy determinisztikus, de szándékosan nem nyilvánvaló algoritmussal történik. Ez biztosítja azt, hogy egy tesztkészlet egymást követő futtatásaikor a tesztmetódusok ugyanabban a sorrendben kerülnek végrehajtásra.

Teszt eredmények:
Siker (success): amikor a teszt végrehajtásakor minden tényleges eredmény megegyezik a várt végeredménnyekkel.

Bukás (failure): amikor a teszt végrehajtásakor a tényleges eredmény
nem egyezik meg a várt végeredménnyel.

Hiba (error): amikor a teszt végrehajtásakor egy hiba következik be,
mely megakadályozza a befejeződést.

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

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

A

A leggyakrabban használt lefedettségi metrikák az utasítás lefedettség
(statement coverage) és a sor lefedettség (line coverage):

Utasítás lefedettség = Végrehajtott utasítások / Összes utasítás száma
Sor lefedettség = Végrehajtott kódsorok / Összes sor száma

Minden egyes végrehajtott utasítást/sort egyszer számolunk

függ a formázástól

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

TDD:

A

Szoftverfejlesztési folyamat mely a kód írás elé teszi a tesztek megírását.

Iteratív megközelítés:
-Irj egy tesztet
-fusson le
-Írd át jó-ra

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

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

A

Az ág lefedettség (branch coverage) egy lefedettségi mérték, mely
az olyan vezérlési szerkezeteken alapul, mint az if és a switch.
A végrehajtott ágak arányát méri egy tesztkészlet futtatásakor az
összes ág számához viszonyítva.

Ág lefedettség = Végrehajtott ágak / Összes ág száma

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

Ésszerű lefedettségi szám:

A

Veszélyes egy bizonyos érték elérésének megcélzása egy lefedettségi
metrikánál, mivel könnyen ez válhat a fő céllá.

Egy alacsony kódlefedettségi metrika érték azt jelzi, hogy problémák
vannak a tesztekkel, azonban egy magas érték nem jelenti azt, hogy a
tesztek jó minőségűek.

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