Blackbox tesztelés¶
A feketedoboz, vagy black-box tesztek specifikáció vagy ismert modell alapján tervezhetők. Ilyen esetben a tesztbázis csak azt mutatja meg, mit csinál a szoftver, azt hogy miként csinálja, rejtve marad. A feketedoboz tesztek funkcionális és nemfunkcionális tesztelésre egyaránt alkalmasak. A nemfunkcionális tesztekre nézve a minőségi modell (ISO/IEC 25010) ad támpontot.
Ezen a gyakorlaton három feketedoboz technikát ismerünk meg:
- Ekvivalenciapartícionálás
- Határértékanalízis
- Döntési tábla tesztelés
Ekvivalenciapartícionálás¶
Az ekvivalenciapartícionálás során a tesztadatokat olyan osztályokra osztjuk, amelyek azonos viselkedést eredményeznek a programban.
- Azonos partícióból csak egyet tesztelünk, ugyanis a partíció elemei ekvivalensek.
- A partíciók diszjunktak, ami az előzőből következik. (Az ekvivalenciareláció osztályozást hoz létre).
- Az érvénytelen partíciókat egyenként kell tesztelni. Az érvénytelen partíció olyan osztály, amely nem tartalmaz olyan tesztadatot, amelyet a program elfogadna, vagy nem tartalmaz olyan tesztadatot, amelyet a program elutasítana.
- A partícionálás finomítható.
Partíciókat létrehozatunk bemeneti adatok szerint, kimenetként kapott adatok szerint, a program belső értékei alapján, idő szerint, interfészekre nézve, paraméterek értékei alapján, stb.
Megjegyzés: Az érvénytelen partíciók tesztelésénél a programnak valamilyen hibaüzenetet kell adni.
Példa
Példaként vegyük a következő programot, amely egy egész számot vár bemenetként. A program akkor ad vissza helyes eredményt, ha a bemenet pozitív és kisebb, mint 10 000, vagy negatív és nagyobb, mint -10 000. Az ekvivalenciapartícionálás során az érvényes bemeneti adatokat két osztályba soroljuk: az érvényes pozitív és az érvényes negatív partícióba. Az érvénytelen bemeneti adatokat három osztályba soroljuk: az érvénytelen pozitív, az érvénytelen negatív partícióba és a nullát tartalmazó egyelemű halmazba.
Osztály | Reprezentánsok |
---|---|
Érvényes pozitív | 1,2,3,4,5,6,7,8,9 |
Érvényes negatív | -1,-2,-3,-4,-5,-6,-7,-8,-9 |
Érvénytelen pozitív | 10000,10001,10002,... |
Érvénytelen negatív | -10000,-10001,-10002,... |
Érvénytelen (0) | 0 |
Határértékanalízis¶
A határértékanalízis (BVA) olyan technika, amely az ekvivalenciapartíciók határainak tesztelésén alapul. Ezért csak rendezett partíciókra alkalmazható. A partíció minimum és maximum értékei a határértékek. Határértékanalízis esetében, ha két elem ugyanazon partícióhoz tartozik, minden köztük lévő elemnek is ugyanehhez a partícióhoz kell tartoznia.
- A hibák gyakran a határeseteknél jelentkeznek.
- Ezek sokszor jellegzetes programstruktúrákhoz (pl. elágazásokhoz) kapcsolódnak. Ilyen például a relációk felcserélése, vagy a ciklusindítás rossz indexről.
- Az ekvivalenciapartícionálással együtt használjuk.
- Lehet kettő vagy háromértékű.
- A határértéktesztekhez a szomszédos elemek legkisebb távolságát ismerni kell (pontosság megadása).
Kétpontos határértékanalízis
A kétpontos határértékanalízisben minden határértékhez két lefedettségi elem tartozik: az adott határérték és a szomszédos partícióhoz tartozó legközelebbi szomszédja. Ahhoz, hogy a kétpontos határértékanalízissel elérjük a 100%-os lefedettséget, a teszteseteknek minden lefedettségi elemet tesztelniük kell, tehát minden azonosított határértéket. A lefedettséget a tesztelt határértékek számának és az összes azonosított határérték számának hányadosaként határozzuk meg, százalékban kifejezve.
Hárompontos határértékanalízis
A hárompontos határértékanalízisben minden határértékhez három lefedettségi elem tartozik: az adott határérték és mindkét szomszédja. Ezért a hárompontos határértékanalízisben lehet, hogy néhány lefedettségi elem nem határérték. Ahhoz, hogy a hárompontos határértékanalízissel elérjük a 100%-os lefedettséget, a teszteseteknek minden lefedettségi elemet tesztelniük kell, tehát minden azonosított határértéket és szomszédaikat. A lefedettséget a tesztelt határértékek illetve szomszédaik számának és az összes azonosított határérték illetve szomszédaik számának hányadosaként határozzuk meg, százalékban kifejezve.
Kétpontos és hárompontos határértékanalízis
A hárompontos határértékanalízis szigorúbb a kétpontosnál, mivel megtalálhat olyan hibákat, amelyeket a kétpontos határértékanalízis nem vett észre. Például, ha az if(x ≤ 10)...
utasítást helytelenül úgy implementálják, hogy if (x = 10)...
, a kétpontos határértékanalízissel származtatott tesztadatok (x = 10, x = 11
) nem tudják megtalálni a hibát. Azonban a hárompontos határértékanalízisből származtatott x = 9
valószínűleg képes rá.
Példa
Legyen egy olyan függvényünk, amely pozitív egész számot fogad paraméterként, és ha az kisebb, mint 100, akkor meghívja az A függvényt, egyébként a B függvényt. Ebben a példában két érvényes partícióra osztható a függvény bemenete. Az egyik esetben [1,2,...,99] a másik partíció a [100, 101,...]. A hatértékünk a 100 és kétértékű vizsgálat esetén az első teszteset a 99 lesz az első partícióból, míg 100 a másodikból. Ugyanakkor van egy érvénytelen partíciónk is, a nulla és a negatív számok. A 0 környékén hárompontos elemzést használunk, a tesztesetek így lehetnek -1,0 és 1.
Tesztesetek a példához
Az előző példában az érvényes partícióhoz hárompontos teszt lehet: 99, 100, 101.
Döntési tábla alapú tesztelés¶
A döntési táblákat olyan rendszerkövetelmények implementációjának tesztelésére használják, amelyek meghatározzák, hogy a feltételek különböző kombinációi hogyan állítják elő a különböző kimeneteket. A döntési táblák hatékonyan alkalmazhatók komplex logika, pl. üzleti szabályok rögzítésére.
A döntési tábla készítése során során a bemeneti adatokat olyan táblázatba rendezzük, amelyben az egyes oszlopok a teszteseteket, míg a sorok a tesztesetekhez tartozó feltételeket tartalmazzák. A cellákban a tesztesethez tartozó konkrét tesztfeltételek találhatók. A táblázat tartalmaz továbbá egy egy műveletek blokkot is, amelynek sorai a lehetséges műveletek, míg a tesztesetekkel történő metszetük az adott tesztesethez kapcsolódó, a tesztefeltételek konkrét értékeiből származtatható műveleteket tartalmazzák.
A döntési táblák lehetnek korlátozottak, mikor minden feltétel és művelet kétértékű (igaz vagy hamis) az irreleváns feltétel vagy kivitelezhetetlen műveletek kivételével, amelyekre speciális jelölés használt.
A feltételek jelölése a következő: “I” (igaz) jelenti azt, hogy a feltétel teljesül. “H” (hamis) jelenti, hogy a feltétel nem teljesül. A “-” azt jelenti, hogy a feltétel értéke irreleváns a művelet kimenetele szempontjából. “N/A’ jelenti azt, hogy a feltétel kivitelezhetetlen egy adott szabályhoz. Műveletek esetében: “X” jelenti, hogy a műveletet végre kell hajtani, az üresen hagyott cella pedig azt jelenti, hogy a műveletet nem kell végrehajtani. Ezeken kívül más jelölések is használhatók.
Egy teljes döntési táblának elég oszlopa van ahhoz, hogy a feltételek minden kombinációját lefedje. A tábla leegyszerűsíthető, ha a feltételek kivitelezhetetlen kombinációit tartalmazó oszlopokat töröljük. A tábla minimalizálható, ha egy oszlopba fésüljük az olyan oszlopokat, amelyekben néhány feltétel nem befolyásolja a kimenetet.
Példa
Vegyünk egy légitársaság jegyeladási rendszerét, amelyben az árak diszkontálását kell tesztelni. A következő szabályokat (teszteseteket) kell ellenőrizni:
- Ha két év alatti az utas, és az államon belül utazik, akkor 80% kedvezményt kap.
- Ha két év alatti az utas, és nemzetközi járaton utazik, akkor a kedvezmény 70%.
- 2-16 év közötti utas 10% kedvezményben részesül, de amennyiben korai foglalása van, úgy 20% kedvezményt kap.
- A törzsutasok kedvezménye 15%, kivéve a korai foglalás esetében, mert ekkor ők is 20% kedvezményt kapnak.
- Nemzetközi járatokon szezonon kívüli időben történő utazás esetében 15% kedvezményt ad a társaság.
Amennyiben több feltétel is teljesül, az utas a nagyobb kedvezményt kapja. Ha a kedvezmény megegyezik, akkor értelemszerűen az egyik eset választható.
A fenti tesztesetek tesztelésére az alábbi döntési táblázatot készíthetjük:
Feltételek | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
2 év alatti utas | I | I | N | N | |||
2-16 éves utas | N | N | I | I | |||
Törzsutas | N | I | I | ||||
Államon belüli járat | I | N | N | ||||
Korai foglalás | N | I | N | I | |||
Szezonon kívül | N | N | I | ||||
Műveletek | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
10% kedvezmény | - | - | X | - | - | - | - |
15% kedvezmény | - | - | - | - | X | - | X |
20% kedvezmény | - | - | - | X | - | X | - |
70% kedvezmény | - | X | - | - | - | - | - |
80% kedvezmény | X | - | - | - | - | - | - |
A táblázatban üresen hagyott cellák azt jelképezik, hogy az adott feltétel bármely értéket felvehet, a tesztelés során erre figyelni kell! Amennyiben ezeket is beírjuk, akkor a tesztesetek számát növelni kell a táblázatban az adott feltétel lehetséges értékeivel, miközben a többi feltétel változatlan marad. Esetünkben egy-egy feltétel mindkét értékének tesztelése el is maradhat, mert pl. a 7. oszlopban 2 év alatti utas esetén a 70%-os kedvezmény (a 2. feltétel) is érvényesül, ami "erősebb", mint a szezonon kívüli kedvezmény. Ezt azonban minden feltétel esetén vizsgálni kell.
Döntési táblákat készíthetünk Excelben és Wordben is. Van olyan termék, ami támogatja ezt a modellt, például a Visual Paradigm. Egy példa a fenti döntési táblázatra:
Gyakorlati feladatok¶
Telefon számlázási szoftver
Egy telefontársaság számlázási szoftvert készít. A díjszámítás eléggé bonyolult, többféle kedvezmény is igénybe vehető.
- Az alapdíj 1 peták másodpercenként.
- A hívás alapja csúcsidőben (minden nap 8 és 16 között) az alapdíj 150%-a, éjszaka (minden nap 22 és 6 között) az alapdíj 75%-a.
- Üzletpolitikai kedvezményként a saját hálózatba irányuló hívások mindig 40%-kal olcsóbbak.
- Van továbbá életkor alapú kedvezmény is, a 18 év alattiak 10%, a 14 év alatti gyerekek további 10% kedvezményt kapnak.
- 18 és 26 év között is jár 5%.
- A 15 perc feletti időtartamú beszélgetések 15 perc feletti részére 15%, a 30 percen túli beszélgetésekre 30% kedvezmény jár.
- A különböző jogalapú kedvezmények összeadódnak.
- Egyazon flottába tartozó telefonok között csúcsidőn kívül ingyen lehet beszélni.
- A nemzetközi hívásoknak viszont mindig 3 peták másodpercenkénti díja van.
Telefon számlázási szoftver tesztje
Határozd meg az egyes tesztelemeket. Mindegyikhez rendelj teszteseteket többféle módszer segítségével.
Lehetséges tesztek ekvivalenciapartícionálás (EP) módszerével
Említettük, hogy a partíciókat többféle szempont szerint is elkészíthetjük. Itt minden érintett változóhoz készítünk partíciókat, majd a lehetséges tesztesetek ezek kombinálásából adódnak (minden osztálykombinációt tesztelni kell), illetve az egyes kombinációkhoz a konkrét elvárt viselkedést is meg kell adni.
A lehetséges partíciók az alábbiak:
- Időszak: { Éjszaka, Normál, Csúcsidő } vagy { [0:00:00-5:59:59], [6:00:00-7:59:59], [8:00:00-15:59:59], [16:00:00-21:59:59], [22:00:00-23:59:59] }
- Hossz: { Rövid = [0:01-15:00], Közepes = [15:01-30:00], Hosszú = [30:01+] }
- Kor: {Gyermek = 14 év alatt, Ifjú = 14-17, Fiatal = 18-25, Felnőtt = 26 év felett}
- Irány: {Flotta, Saját hálózat, Belföld, Külföld}
Lehetséges tesztek határértékanalízis (BVA - Bound Value Analysis) módszerrel
A fent meghatározott partíciókat tekintjük alapnak, ugyanis a BVA módszerhez ismerni kell a partíciókat, mert azok határait teszteljük. Megadjuk a kétpontos és hárompontos eseteket is. A tesztesetek az így kialakított értékek kombinálásából (párosításából) adódnak az elvárt viselkedés megadása mellett.
- Időszak:
- 2 pontos: 0:00:00, 5:59:59, 6:00:00, 7:59:59, 8:00:00, 15:59:59, 16:00:00, 21:59:59, 22:00:00, 23:59:59
- 3 pontos (pluszban): 0:00:01, 5:59:58, 6:00:01, 7:59:58, 8:00:01, 15:59:58, 16:00:01, 21:59:58, 22:00:01, 23:59:58
- Hossz:
- 2 pontos: 0:00, 0:01, 15:00, 15:01, 30:00, 30:01
- 3 pontos (pluszban): 0:02, 14:59, 15:02, 29:59, 30:02
- Kor (napi éves pontossággal):
- 2 pontos: 13 év, 14 év, 17 év, 18 év, 25 év, 26 év
- 3 pontos (pluszban): 12 év, 15 év, 16 év, 19 év, 24 év, 27 év
- Kor (napi pontossággal):
- 2 pontos: 14 év - 1 nap, 14 év, 18 év - 1 nap, 18 év, 26 év - 1 nap, 26 év
- 3 pontos (pluszban): 14 év - 2 nap, 14 év + 1 nap, 18 év - 2 nap, 18 év + 1 nap, 26 év - 2 nap, 26 év + 2 nap
Lehetséges kombinációs tesztek DT módszerrel
A döntési tábla cellái nemcsak bináris (Y/N, I/N, X/-) értékeket, hanem konkrétakat is tartalmazhatnak. Ezek mindig az adott feladat leírásától függenek. A fenti feladat esetében konkrét értékeket adunk meg. Ez összesen 144 esetet jelentene. A teljes megoldáshoz minden esetben meg kell adni az elvárt viselkedést is, amely követelménytől itt a táblázat jelentős mérete miatt eltekintünk.
- Teljes: 144db: 1-144
- Kivonat a táblázatból:
TC | 1 | 2 | .. | 48 | 49 | .. | 70 | .. | 96 | 97 | .. | 139 | .. | 144 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Időszak | É | É | .. | É | N | .. | N | .. | N | Cs | .. | Cs | .. | Cs |
Hossz | R | R | .. | H | R | .. | K | .. | H | R | .. | H | .. | H |
Kor | Gy | Gy | .. | Fe | Gy | .. | I | .. | Fe | Gy | .. | Fi | .. | Fe |
Irány | F | S | .. | K | F | .. | S | .. | K | F | .. | B | .. | K |
- Páros (16db): 1, 13, 24, 27, 38, 55, 64, 66, 78, 89, 92, 100, 106, 117, 131, 143
- Minimális (egyenként minden): 4db: 1, 70, 139, 48
Biztosítótársaság jutalmazás 1.
Egy biztosító egyesület elhatározta, hogy bevonul a tőzsdére, és ezzel egyidőben jutalmat ajánl fel tagjainak a korábbi ügyfeleikért.
- Minden jelenlegi kötvénytulajdonos részesedik a jutalomból.
- Akinek összesen legalább 20 ügyfele van, az részvényhányadot is kaphat, a többiek csak készpénzt.
- Akinek legalább 10 prémium ügyfele van, az elbírálásnál +50% osztalékra is jogosult, míg aki legalább 50%-ban normál ügyfelekkel rendelkezik, az 25%-kal több osztalékot kap.
A kötvény
A kötvény hitelviszonyt megtestesítő értékpapír. A kötvényben a kibocsátó (az adós) arra kötelezi magát, hogy az ott megjelölt pénzösszegnek az előre meghatározott kamatát vagy egyéb jutalékait, valamint az általa vállalt esetleges egyéb szolgáltatásokat, továbbá a pénzösszeget a kötvény mindenkori tulajdonosának, illetve jogosultjának (a hitelezőnek) a megjelölt időben és módon megfizeti, illetőleg teljesíti. Vannak olyan kötvénynek nevezett szerződések, értékpapírok, amelyek tartalmilag nem tekinthetők annak, ilyen például a biztosítási kötvény.
A részvény
A részvény tulajdonjogot és egyéb jogokat megtestesítő értékpapír. A részvény birtokosa részesedése arányában résztulajdonosa az adott társaságnak, és jogosult a jövedelem és a szavazati jogok arányos részére is. Magyarországon nagykorú (pontosabban: cselekvőképes) személyek, jogi személyek, és jogi személlyel nem rendelkező szervezetek adhatják, vehetik, birtokolhatják ezen értékpapírokat.
Az osztalék
Az osztalék az a pénzösszeg, melyet a részvénytársaság a részvénytulajdonosainak fizet, általában akkor, amikor nyereséget ért el. Amikor egy vállalat hasznot, vagy többletbevételt ér el, akkor annak egy jelentős részét visszaforgatja a vállalkozás fejlesztésébe, míg egy részét osztalékként odaadhatja részvényeseinek. Az osztalékfizetés történhet készpénzben (banki átutalással), vagy a vállalat további részvényeket is adhat a részvényeseknek osztalék címén.
Biztosítótársaság 1. jutalmazási szoftver tesztje
Döntési tábla segítségével határozd meg a teszteseteket!
Lehetséges kombinációs tesztek DT módszerrel
TC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9-16 |
---|---|---|---|---|---|---|---|---|---|
Tulaj | I | I | I | I | I | I | I | I | N |
20+ üf. | I | I | I | I | N | N | N | N | - |
10+ pr. | I | I | N | N | I | I | N | N | - |
50%+ n. | I | N | I | N | I | N | I | N | - |
Pénz | I | I | I | I | I | I | I | I | N |
Részvény | I | I | I | I | N | N | N | N | N |
+25% | N | N | I | N | N | N | I | N | N |
+50% | N | I | N | N | N | I | N | N | N |
+75% | I | N | N | N | I | N | N | N | N |
A fenti döntési tábla precíz tesztesetleírást biztosít, ugyanis a tevékenységekkel az elvárt viselkedést is specifikáltuk.
Zöldenergia projekt
Egy ház elektromos rendszerét napelemmel, szélkerékkel és tárolókapacitással bővítik. A rendszer vezérlőegységének össze kell hangolnia a forráshasználatot, az energiatárolást és a visszatáplálást. Ennek a logikája a következő:
- Ha van nap-, vagy szélenergia termelés, akkor erről töltődnek az akkumulátorok.
- Ha ezek nem állnak rendelkezésre, de van vezérelt áram (éjszakai áramnak is nevezik, a lényege, hogy olcsóbb mint a nappali, de nem folyamatos, naponta csak 4-6 órán keresztül elérhető), akkor arról töltünk.
- A töltés csak az akkumulátor 100%-os töltöttségéig lehetséges.
- Ha az akkumulátor fel van töltve, és van megújuló termelés, az visszatáplálásra kerül a hálózatba.
- A ház fogyasztását alapvetően akkumulátorról fedezzük (az akkumulátor a vezérlőrendszer szempontjából párhuzamosan tölthető és meríthető, ennek a technikai részleteit a tároló saját vezérlője intézi).
- Ha a tárolóban már nincs energia, akkor a ház átkapcsol hálózati üzemre, és hagyományos módon üzemel.
- A hagyományos hálózatról soha nem töltünk akkumulátort, és akkumulátorról nem táplálunk vissza a hálózatba.
Zöldenergia projekt vezérlőszoftver tesztje
Döntési tábla segítségével határozd meg a teszteseteket!
Lehetséges kombinációs tesztek DT módszerrel
A következő döntési táblát definiálhatjuk (a táblázatban figyelembe vettük az egymást kizáró eseteket, valamint az üres cellák azt jelentik, hogy az adott esetben a feltétel nem releváns):
Feltételek | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
Van megújuló? | Y | Y | Y | N | N | N | N | N |
Van vezérelt áram? | Y | Y | Y | N | N | |||
Töltöttség < 100% ? | Y | Y | N | Y | Y | N | Y | |
Töltöttség > 0% ? | Y | N | Y | Y | N | Y | Y | N |
Műveletek | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Akkumulátor töltés | X | X | - | X | X | - | - | - |
Visszatáplálás | - | - | X | - | - | - | - | - |
Akkumulátor üzem | X | - | X | X | - | X | X | - |
Hálózati üzem | - | X | - | - | X | - | - | X |
Házi feladat: Biztosítótársaság jutalmazás 2.
Egy biztosító egyesület elhatározta, hogy bevonul a tőzsdére, és ezzel egyidőben jutalmat ajánl fel tagjainak a korábbi ügyfeleikért.
- Minden jelenlegi kötvénytulajdonos részesedik a jutalomból, feltéve, hogy osztalékra feljogosító kötvénye van, és ennek 2001 óta tulajdonosa.
- Akik teljesítik ezt a két feltételt, azok választhatnak készpénz vagy az új cég részvényhányada között.
- Akik a szükségesnél rövidebb ideje birtokolnak megfelelő kötvényt, azok csak készpénzre jogosultak, részvényhányadra nem.
- A részvényhányad súlyozásánál az ügyfelek számát is figyelembe veszik:
- a 10-nél kevesebb ügyféllel rendelkezők 1-es szorzóval,
- a 10-19 ügyféllel rendelkezők 2-es szorzóval,
- a 20-49 ügyfelesek 3-mas,
- a többiek 5-ös szorzóval szerepelnek.
Biztosítótársaság 2. jutalmazási szoftver tesztje
Döntési tábla, ekvivalenciapartícionálás és határértékanalízis segítségével határozd meg a teszteseteket! A feladatot a Coospacen kell beadni, Word vagy Excel dokumentum formájában az ott kiírt feladaton.