Académique Documents
Professionnel Documents
Culture Documents
Sziray Jzsef
Dr. Beny Balzs
Heckenast Tams
SZOFTVERMINSGBIZTOSTS
Gaul Gza
Szchenyi Istvn Egyetem,
Informatika Tanszk
Szerzk, 2007
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
A dokumentum hasznlata
Vissza
A dokumentum hasznlata
Mozgs a dokumentumban
A dokumentumban val mozgshoz a Windows s az Adobe Reader megszokott elemeit s mdszereit hasznlhatjuk.
Minden lap tetejn s aljn egy navigcis sor tallhat, itt a megfelel
hivatkozsra kattintva ugorhatunk a hasznlati tmutatra, a tartalomjegyzkre, valamint a trgymutatra. A s a nyilakkal az elz s a kvetkez oldalra lphetnk t, mg a Vissza mez az utoljra megnzett oldalra
visz vissza bennnket.
Pozcionls a knyvjelzablak segtsgvel
A bal oldali knyvjelz ablakban tartalomjegyzkfa tallhat, amelynek
bejegyzseire kattintva az adott fejezet/alfejezet els oldalra jutunk. Az
aktulis pozcinkat a tartalomjegyzkfban kiemelt bejegyzs mutatja.
A tartalomjegyzk hasznlata
Ugrs megadott helyre a tartalomjegyzk segtsgvel
Vissza
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Tartalomjegyzk
Vissza
Tartalomjegyzk
1. Bevezets ........................................................................................ 6
2. Szoftverminsgbiztosts............................................................ 9
2.1. Minsgi koncepcik................................................................................... 9
2.2. Minsgbiztostsi fogalmak .................................................................... 11
2.3. Szoftverminsg (Software quality) ........................................................ 11
2.4. Szoftver-mrszmok (metrikk) ............................................................ 12
2.5. Szoftver-megbzhatsg............................................................................ 19
3. Biztonsgkritikus rendszerek....................................................... 22
3.1. Alapfogalmak.............................................................................................. 22
3.2. Minsgi s megbzhatsgi kvetelmnyek.......................................... 23
3.3. Rendszerstruktrk.................................................................................... 27
3.4. A hardver redundancia megvalstsa..................................................... 29
3.5. A szoftver redundancia megvalstsa.................................................... 31
3.6. Az ELEKTRA tpus vezrlrendszer felptse s mkdse ......... 35
4. Szoftver-tesztelsi mdszerek ...................................................... 42
4.1. Tesztelsi alapfogalmak............................................................................. 42
4.2. Hibamodellek s rvnyessgi krk ...................................................... 43
4.3. A tesztek megtervezse ............................................................................. 45
4.4. A programtesztels pszicholgija s gazdasgossga (Glenford
Myers elvei)................................................................................................. 47
4.5. Funkcionlis tesztels ................................................................................ 53
4.6. Strukturlis tesztels .................................................................................. 63
4.7. Tesztminsgi mrszmok..................................................................... 71
4.8. A mdszerek sszekapcsolsa.................................................................. 75
5. Tesztelsi stratgik s folyamatok ............................................. 76
5.1. Szoftverfejlesztsi modellek ..................................................................... 77
5.2. Verifikci s validci.............................................................................. 85
5.3. A verifikci s a validci fzisainak tervezse.................................... 88
5.4. Egysgek, modulok tesztelse .................................................................. 91
5.5. Integrcis tesztels s rendszertesztels .............................................101
5.6. Validcis tesztels ..................................................................................105
5.7. A tesztels kltsge..................................................................................108
Vissza
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Tartalomjegyzk
Vissza
5.8. Bizonylatols.............................................................................................111
5.9. A formlis mdszerek szerepe ...............................................................113
6. Objektum-orientlt szoftvertesztels ..........................................118
6.1. Az OO rendszerek jellemzi tesztelhetsgi szempontbl ...............118
6.2. Tesztels nem OO rendszerekben ........................................................120
6.3. Hagyomnyos tesztelsi mdszerek alkalmazsa OO
krnyezetben ............................................................................................121
6.4. OO rendszerek tesztelsi techniki .......................................................122
6.5. Mrtkszmok hasznlata .......................................................................125
6.6. Konkrt tesztel rendszerek...................................................................127
Felhasznlt irodalom ...........................................................................................130
Vissza
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Bevezets
Vissza
1. Bevezets
Az informatikban hatalmas fejlds ment vgbe az elmlt negyedszzadban. Aki ezt szakmailag vgiglte, szinte mr maga sem tudja elhinni, ami a
25 vvel ezeltti vilgban volt. A fejlds pontosan nyomon kvethet a
szmtgpek s szmtgp-hlzatok hardvernek vonaln. Ez a mszaki, tervezstechnolgiai s gyrtstechnolgiai fejlds megkrdjelezhetetlenl impozns. A nyomon kvethetsg elssorban annak ksznhet,
hogy a hardver ellltsi folyamatai szigoran kttt, meghatrozott
rendben, jl bevlt, kitapasztalt folyamatokba szortva mehetnek vgbe. A
be nem vlt vagy tl drga j technolgik, irnyzatok igen hamar kiszorulnak a piacrl, s feledsbe merlnek. Ilyenek voltak pldul a buborkmemrik, vagy a kszb logikn alapul digitlis ramkrk.
Az informatikai rendszerek msik szerves sszetevje a szoftver. Ami
azt illeti, a szoftver vonalon vgbement fejlds mg dntbben szmt
bele a mai helyzet kialakulsba. Ezen a tren sokkal kevesebb volt a ktttsg, mint a hardvernl. A fejlesztsbe jval szlesebb rtegek tudtak s
tudnak ma is bekapcsoldni. Ezen tl mg olyan orszgok is, mint Magyarorszg pldul, amelyek a hardverfejlesztsbe nem tudnak beleszlni.
Az itt munklkod szakemberek szma rohamosan nvekszik, nagyon sok
a szertegaz egyedi fejleszts, mg akkor is, ha ugyanazon a hardver platformon mennek vgbe. A fejleszts nagyobb szabadsgfoka teszi lehetv
a szoftver rendszerek belthatatlan mrtk kibontakozst, fejldst,
ami a mretekben, vagyis az utastsok szmban, valamint a bonyolultsgban s az ehhez kapcsold teljestmnyben nyilvnul meg.
A nagy szabadsgfok, valamint az egyedi fejleszts s a nvekv bonyolultsg ugyanakkor megnveli a veszlyt annak, hogy a szoftver rendszer hibsan mkdik. A hiba addhat a specifikci sorn elkvetett tvedsbl, vagy aminek nagyobb az eslye, a programozs sorn elkvetett
tvedsbl. A hibk kiszrse s kijavtsa a fejleszts elrehaladtval egyre nagyobb rfordtst ignyel. Az ilyen rfordts mrtke exponencilisan
nvekszik. Ezrt nagy jelentsge van annak, hogy a fejlesztsi folyamatokat minl szigorbb technolgiai rendben, minl alaposabban megtervezve
s kivitelezve hajtsuk vgre.
A szoftver rendszerek megbzhat zemeltetse, felhasznlsa teht
szigor kvetelmnyeket tmaszt a fejlesztskre vonatkozan. Ebbe szorosan beletartozik az a minsgbiztostsi technolgia, amely a teljes fej-
Vissza
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Bevezets
Vissza
Vissza
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Bevezets
Vissza
Vissza
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
2. Szoftverminsgbiztosts
2.1. Minsgi koncepcik
A minsg tgabb rtelemben az emberisg trtnelmvel egyids, azonban korszer rtelmezse a mlt szzad elejn jelent meg, az ipari termels
elterjedsvel. A minsg s a minsggy igazi rtelmezse csak napjainkban alakul ki. A korszer minsgfogalom a termelsben s a fogyasztsban rdekelt szemlyek, ill. a trsadalom rtktlete arra, hogy a termelsi-fogyasztsi folyamat mennyire elgti az ignyeket. Ebbl kvetkezen
a minsg rtk. A minsggy a termelsi-fogyasztsi folyamat minsgnek szablyozsval foglalkozik. Napjainkban egyre nagyobb hangsly
fordtdik a minsgbiztostsra, azaz a termels s a fogyaszts magas
sznvonal minsgre, amely a fogyasztvdelem, s a fogyaszti ignyek
kielgtse mellett a termel nyeresgt is eredmnyezi. Mindez nem csak a
vllalkozs gazdasgi felemelkedst jelenti, hanem hasznos a trsadalom
szmra is.
2.1.1. A minsg filozfiai rtelmezse
Az igny-kielgtsi folyamat, ezen bell elssorban a termk s a fogyasztsi folyamat minsgnek fogyaszti rtelmezse a minsg rtkszemllet filozfiai rtelmezsn alapul. A fogyasztsi folyamat minsgt a
fogyaszt szempontjbl azok a funkcik hatrozzk meg, amelyek alkalmass teszik a termket a fogyaszts sorn a fogyaszt ltal ignyelt funk-
Vissza
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
10
cik kielgtsre, vagyis biztostjk a fogyasztsi folyamat megfelel minsgt. Ez mskpp a termk hasznossgnak is nevezhet.
A fogyaszti minsg sok mindenre kiterjed, gy a fogyasztsi cikkek
esetn a tnyleges fogyasztsi ignyek mellett tartalmazza tbbek kztt a
cmkzs, a csomagols, a trolhatsg, a megismerhetsg, a hasznlhatsg, a karbantarthatsg, a szerelhetsg, a tartalkalkatrsz-ellts, a szervzellts s a garancia krdskrt.
2.1.3. A minsg termeli rtelmezse
Az igny-kielgtsi folyamat minsge korszer minsggyi szemlletben egyrszt a termk s a fogyasztsi folyamat fogyaszti minsgt, azaz
a fogyaszti ignyek kielgtst, msrszt a termelsi folyamat s a termk
termeli minsgt, a hasznossgot, valamint az igny-kielgtsi folyamat
trsadalmi minsgt, ezen bell elssorban a vdelmet s a tmogatst
foglalja magban.
Vissza
10
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
11
Vissza
11
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
12
minsg azt jelenti, hogy a fejlesztsi folyamat a specifikcis kvetelmnyeket kielgti (Crosby 1979). Idelis esetben ez a definci minden termkre alkalmazhat lehetne, de a szoftverek esetben nehzsgek akadnak
ezzel:
A specifikcinak a felhasznl ltal kvnt termk karakterisztikjt
kell kvetni, azonban a fejlesztsi szervezetnek is vannak kvetelmnyei, amelyek nem szerepelnek a specifikciban.
A szoftver specifikcik rendszerint nem teljesek.
A minsg tervezsnek kritikus pontja a fontos minsgi jellemzk kivlasztsa, s annak megtervezse, hogy ezek hogyan rhetk el. A szoftverminsg menedzserek 3 fajta tevkenysgrt felelsek:
Minsgbiztosts (quality assurance): szervezeti eljrsokat, valamint
szabvnyokat kell rgzteni, amelyek j minsg szoftverekhez vezetnek.
Minsgtervezs (quality planning): ki kell vlasztani az alkalmas eljrsokat, s szabvnyokat, s ezeket illeszteni kell a specilis szoftver
projektekhez.
Minsgszablyozs (quality control): biztostani kell, hogy ezeket az
eljrsokat s szabvnyokat kveti a szoftverfejleszt csapat
A szoftverminsget alapveten meghatroz sszetevk:
Minstsi, illetve kirtkelsi szempontok
Minsgfaktorok (hordozhatsg, megbzhatsg, hatkonysg, felhasznlsi knyelem, tesztelhetsg, rthetsg, mdosthatsg), minsgjegyek
Szoftverjellemzk (eszkzfggetlensg, teljessg, pontossg, konzisztencia, hatkonysg, elrhetsg, strukturlhatsg, dokumentltsg,
tmrsg, rthetsg, olvashatsg, bvthetsg)
Szoftvermrtkek, szoftver-mrszmok
2.4. Szoftver-mrszmok (metrikk)
A szoftver-merszmok (metrikk) a szoftver rendszerekhez, folyamatokhoz, vagy kapcsold dokumentcihoz tartoznak. A metrikk kt osz-
Vissza
12
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
13
szoftver termk
(software product)
szoftver folyamat
(software process)
prediktor mrsek
(predictor measurements)
ellenorzo mrs
(control measurement)
menedzsment dntsek
(management decisions)
Vissza
13
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
14
Eljrs paramterek
szma
Megbzhatsg
(Reliability)
Ciklomatikus komplexits
Hordozhatsg
(Portability)
Programmret kdsorban
Hibazenetek szma
Hasznlhatsg
(Usability)
Felhasznli segdlet
hossza
Vissza
14
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
15
megn az igny erre. Szmos nagy cg (pl. a HP, AT&T) gyjti s hasznlja ezeket a mrszmokat a fejlesztsek folyamn. A kzppontban leginkbb a programhibk, valamint a verifikcis s validcis eljrsokhoz
tartoz mrszmok llnak. Ezrt ahogyan risi a hajlandsg a mennyisgi informcis fejlesztsekre, gy nvekszik a metrikk ipari hasznlatnak is a fontossga.
2.4.1. Termk minsgmrtke
A szoftvermrsekben rszt vev szervezeteknek sokkal inkbb kell tmaszkodni a loklisan gyjttt adatokra, mint megbzni a kls tapasztalatokban. Ahhoz, hogy felfedezzk, hogy egy bizonyos metrika egy termk
minsgnek hasznos prediktora, egy minsgbiztost csoportnak kell
kirtkelni a metrikt, loklis adatokat hasznl szisztematikus mdon, a
helyi eljrsokat s szabvnyokat is figyelembe vve.
A 2.3. bra mutatja a mrszmok hasznlatnak folyamatt a minsg
elrejelzsre. Alapveten a rendszer minden egyes komponenst fggetlenl vizsgljk, s a mrszmok klnbz rtkeit sszehasonltjk,
mind egymssal, mind pedig egy rgebbi projektbl szrmaz adatokkal.
Rendhagy mrseket kellene hasznlni, hogy kzppontba a minsgi
problmkkal rendelkez komponensek minsgbiztostsa kerljn.
rendhagy komponensek
vizsglata
mrsek vlasztsa
a kirtkelendo
komponensek
kivlasztsa
rendhagy mrsek
meghatrozsa
komponensek
karakterisztiikjnak
mrse
Vissza
15
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
16
Sok fontos tervezsi tulajdonsg van, de a legfontosabb ezek kzl a karbantarthatsg. A minsgbiztosts ezrt leginkbb a hibadetektlssal,
valamint a karbantarthatsg kirtkelsvel foglalkozik. A karbantarthatsgot nem tudjuk kzvetlenl mrni. A tervezs karbantarthatsga
kapcsoldik:
A kohzihoz (Cohesion): A komponens rszei milyen szorosan kapcsoldnak?
A csatoldshoz (Coupling): Mennyire fggetlen a komponens?
Az rthetsghez (Understandability): Milyen knny megrteni a
komponens funkcijt?
A beilleszthetsghez (Adaptability): Milyen knny a komponenst
lecserlni?
A kohzi egy egyszer minsgi fogalom, de nehz a kirtkelse a komponens cljnak megrtse nlkl. A komponensek csatoldsa mrhet a
komponensek kzti kapcsolatok szmnak figyelsvel, ha egy megfelel
jellst hasznlnak a tervezsi folyamatban. Sem a komponensek rthetsge, sem az alkalmazhatsga nem mrhet kzvetlenl. Azonban kapcsolat van e tulajdonsgok, s a komponens komplexitsa kztt. A
komplexits mrse lehetsget biztost arra, hogy egymssal sszehasonltsuk a komponensek rthetsgt s alkalmazhatsgt, nhny szabvnyt is figyelembe vve.
Constantine s Yourdon (1979) javaslatra a tervezs trstsa meghatrozhat a tervezsi komponensek fan-in, s fan-out mrsvel. A fan-in
azon komponensek szma, amelyek ezt a komponenst meghvjk, a fanout pedig azon komponensek szmt jelenti, amelyeket a komponens
meghv.
Henry s Kafura javasolta a komponens komplexitsnak meghatrozsra a kvetkez kpletet az informcis Fan-in, valamint Fan-out-okkal:
Complexity = Length (Fan-in Fan-out)2
Vissza
16
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
17
Vissza
17
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
18
Azonostk hossza (Length of identifiers): ez a programban hasznlatos klnbz azonostk tlagos hossznak a mrtke. Minl hoszszabb az azonost, annl tbb jelentst hordoz, teht jobban rthet a
program.
Feltteles szerkezetek mlysge: a programban szerepl if-utastsok
mlysgnek, begyazottsgnak a mrtke. Minl mlyebbek az ifutastsok, annl nehezebben rthetek, teht annl nagyobb a hibaforrs.
A program mretnek mrse hasznlhat a minsgbiztostsi eljrs rszeknt. Egy szabvnyban adtak egy fels korltot a komponens mretre
vonatkozlag. Azok a komponenseket, amelyek ezt tlhaladtk, azokat jra
kell tervezni, vagy pedig jabb rszletes analzis al vonni. Azonban a mret
az egyik legegyszerbb metrika, s a legknnyebb gyjteni, Kitchenman
(1990) szerint ez legalbb olyan j indiktora a rendellenes komponenseknek, mint ms bonyolultabb metrika.
Egy eljrs ciklomatikus komplexitsa a komponensek bels komplexitsnak mrtke. E metrika alacsony rtke a program rthetsgvel fgg
ssze. A ciklomatikus komplexits, mint a teljes kr komponenskomplexits mrtke kt htrnnyal br:
A program dntsi komplexitst mri, amely feltteles utastsokkal,
valamint elfelttelekkel van meghatrozva. Ha a program adatorientlt, akkor a ciklomatikus komplexitsra alacsony rtk addik, viszont ettl mg mindig elg komplex, s nehezen rthet.
Ugyanazon sllyal szerepelnek a begyazott, s nem begyazott ciklusok. Azonban a mlyen begyazott feltteles struktrkat nehezebb
megrteni, mint a nem-begyazottat.
Oviedo (1980) kidolgozott egy program-komplexitsi mrszmot, amely
szerint a komponens komplexitsa a kvetkez formulval becslhet
meg:
C = aE + bN,
ahol a s b konstans egytthatk, s
E a vezrlsi folyamatgrf leinek szma,
N: olyan adatokra val hivatkozsok szma, amelyek nincsenek deklarlva
a komponensben.
Vissza
18
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
19
Vissza
19
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
20
Vissza
20
Szoftver-minsgbiztosts
Szoftverminsgbiztosts
Vissza
21
Vissza
21
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
22
3. Biztonsgkritikus rendszerek
Ebben a fejezetben a biztonsgkritikus informatikai rendszerekkel foglakozunk. A szoftver technolgia terletn azrt van kiemelt jelentsge az
ilyen rendszereknek, mivel ezekben jelentkezik a legnagyobb mrtkben a
fejlesztsi s tesztelsi feladatok szigor elrsokhoz kttt vgrehajtsnak ignye. Az ebbe a kategriba tartoz szoftverekre rvnyes elrsok
sorbl nem mindegyik vonatkozik a ms kategrij szoftverekre, hanem
azoknak csak egy rsze. A verifikcis s validcis folyamatok a biztonsgkritikus rendszereknl hajtandk vgre a legnagyobb gonddal, hozzrtssel s rfordtssal.
3.1. Alapfogalmak
Biztonsgkritikus rendszer: Olyan informatikai rendszer, amely azzal az
elsdleges kvetelmnnyel mkdtetend, hogy ne veszlyeztesse az emberi letet, egszsget, ne okozzon gazdasgi vagy krnyezeti krokat. Tipikusan ilyenek a vasti llomsirnyt kzpontok, az atomermvek
vezrlst, rhajk, rreplk irnytst, replgpek irnytst ellt
rendszerek, valamint a krhzakban, bankokban, hadszatban (pl. cirkl
rakta) alkalmazott informatikai rendszerek.
A felsorolt pldkban jl lthat az alkalmazott rendszerek hibs mkdsbl szrmaz krok milyensge. Egy banki alkalmazs risi anyagi
krokkal jrhat, egy vegyipari folyamat krnyezetei krt okozhat, hadszati
eszkz esetben pedig a civil lakossgnak okozott vesztesg jhet szba.
A biztonsgot eredmnyez mkds mellett a msik legfontosabb tulajdonsg a megbzhatsg. Csak nagy megbzhatsg rendszerek alkalmazhatk eben a kategriban. ltalban 24 rn keresztl tart folyamatos
zemelsre van igny. A biztonsg elrshez n. hibatr rendszerek alkalmazsra van szksg.
Hibatr rendszer: Egy informatikai rendszer hibatr, ha kpes elvgezni, ill. tovbb folytatni elrt feladatnak helyes vgrehajtst hardver-meghibsodsok s szoftver-hibk jelenlte esetn. A hibatrs nem
azt jelenti, hogy a rendszer ugyanazzal a hatsfokkal, teljestmnnyel mkdik hibsan is, mint hibamentesen, hanem azt, hogy a teljestmnye lecskkenhet, esetleg nem mindegyik funkcijt ltja el maradktalanul, viszont a legfontosabb elrt feladatait mg vgre tudja hajtani.
Vissza
22
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
23
A hibatr rendszerek tervezsekor bizonyos tervezsi clokat kell elrni, amelyek elre megadott kvetelmnyek teljestst szolgljk. Ezek a
kvetelmnyek klnbz matematikai, valsznsg-szmtsi mutatk
minimlis rtknek elrst rjk el. A kvetkez alpontban ezeket a
mutatkat soroljuk fel, s definiljuk.
3.2. Minsgi s megbzhatsgi kvetelmnyek
Az albbiakban felsorolt mutatk szmszer rtknek meghatrozsra
pontosan kidolgozott mrsi, vizsglati s szmtsi eljrsok lteznek,
amelyekkel ebben a knyvben nem foglalkozunk.
Megbzhatsg (Reliability): Annak feltteles valsznsge, hogy a
rendszer hibtlanul mkdik a [t0, t] idintervallumban, feltve, hogy a
t0 t idpontban hibtlanul mkdtt. A megbzhatsgot ler valsznsgi fggvny jele R(t).
A megbzhatsgi rtk teht annak a valsznsgt fejezi ki, hogy a
rendszer a [t0, t] idintervallumban vgig hibtlanul mkdik. Ez az rtk
az intervallum hossznak a nvekedsvel nyilvnvalan cskken, hiszen
az elektronikus rszegysgek az zemeltetsk, ignybe vtelk elrehaladtval egyre inkbb elhasznldnak, elregszenek. A szoftver rsz elregedsrl, megbzhatsgi rtelemben, termszetesen nem beszlhetnk.
Ezt a paramtert elssorban olyan rendszerek jellemzsre hasznljk
kiemelten, ahol egy rvid idre sincs megengedve a hibs mkds, vagy
pedig nincs md a javtsra. Az elbbi felttelre plda egy rvid replsi
idej replgp, ahol az intervallum 10 ra. Erre vonatkozan el van
rva az
R(t) 0,9999999 = 0,97 rtkszint.
Egy nem javthat rszondnl a mkdsi id 10 vet is kitehet. Ebben
az esetben a kvetelmny a 10-ves peridus vgn:
R(t) 0,95.
A megbzhatsg s a hibatrs nem ugyanazt jelenti. A hibatrs olyan
technika, amely javtja a megbzhatsgot, de ettl mg nem biztos, hogy
valban magas lesz a megbzhatsg. Ha egy rendszer ki tud vdeni hardver hibkat, de azok nagy gyakorisggal jelentkeznek, akkor az R(t) rtke
mg alacsony is lehet. Msrszrl pedig, ha egy nagy megbzhatsg
rendszerbe nincs beptve hibatrs, akkor az els hiba fellpstl kezdve
rosszul fog mkdni.
Vissza
23
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
24
Vissza
24
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
25
Vissza
25
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
26
Vissza
26
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
27
szerek (on-line transaction processing, OLTP), ahol a felhasznli megkeress vletlenszer mdon rkezik tbb helyrl, s ezekre azonnali feldolgozs, kiszolgls van megkvetelve. Ilyenek pldul a banki alkalmazsok.
Az OLTP-rendszerek ltalban nagykiterjeds orszgos hlzatban
zemelnek, ezen bell tbb loklis hlzattal. Az zemels legtbbszr
24-rs munkarendben trtnik, de a felhasznls jellegbl addan md
van az jszakai karbantarts idnknti elvgzsre is. Az ilyen rendszereknl nemcsak a kzponti szmtgp a hibatr, hanem a helyi hlzatok
szerver gpei is. A felhasznli terminlok ltalban szemlyi szmtgpek, amelyekre mr nincs elrva a hibatrs. Fontos azonban, hogy ezek
is nagymegbzhatsg, kivl minsg gyrtmnyok legyenek.
A bankok mellett tovbbi elterjedt OLTP-alkalmazsok a kvetkezk:
Rendrsgi gyeleti bevetsirnyt rendszer, amely a bejelentsek
feldolgozsn tl a rendri beavatkozsok nyilvntartst s szervezst is vgzi. Ugyanilyen funkcij a mentk s tzoltk bevetsirnytsa is.
Orszgos vagy nemzetkzi szlltssirnyts, amely a vasti, kamionos, vagy lgi ruszllts nyomon kvetsre, nyilvntartsra s optimlis szervezsre szolgl.
3.3. Rendszerstruktrk
A hibatrs megvalstsa mindenkppen elre betervezett redundancival kell
hogy jrjon. Ennek az a magtl rtend oka van, hogy a hibatr informatikai rendszerre a norml funkcijn kvl a sajt hibs mkds felismerse s az ilyenkor megvalstand feladatteljests is rhrul. A redundancia mind a hardverben, mind pedig a szoftverben rvnyre jut, mivel
egyedl egyik f komponens sem kpes a msik hibjt felismerni s funkcijt elltni. Termszetesen a szoftver s a hardver egymssal sszhangban zemel, amibe az is beletartozik, hogy a hibafelismersben s az ilyenkor szksges reakcikban is kiegsztik, vagy tfedik egymst. A hibatr
rendszerek felptse sok esetben olyan, hogy a hardver is hozzjrul a
szoftver-hibk felismershez, s viszont, a szoftver is rszt vehet a hardver-hibk szlelsben.
A redundancia megvalstsra ngy terlet vlt alkalmass. Ezek a
kvetkezk:
Vissza
27
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
28
Vissza
28
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
29
sszehasonlt
egysg
Kimenet
2. modul
Vissza
29
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
30
Norml modul
Bemenet
tkapcsol
egysg
Kimenet
Tartalk modul
Vissza
30
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
31
1. modul
Bemenet
Szavaz
egysg
2. modul
3. modul
Kimenet
(Tbbsgi szavazs)
Vissza
31
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
32
SW1
SW2
CPU1
CPU2
sszehasonlt
Vissza
32
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
33
Ebben a struktrban a szoftverben elfordul hibk detektlsra semmilyen lehetsg nincsen, mivel mindkt csatorna hibsan is azonosan
mkdik, s gy az sszehasonlt ezt helyes mkdsnek rzkeli. Hardverhiba esetn a csatornk kztt eltrs fog mutatkozni, ami hibadetektlsra vezet.
Ha egy TMR-rendszerben alkalmazzuk ugyanezt az elrendezst, akkor
sem vltozik a helyzet, az ismtld szoftver hibjt ilyenkor sem lehet
szlelni. A megolds kulcsa abban ll, hogy elkerlend a teljesen azonos
szoftverek alkalmazsa. Ezt gy valsthatjuk meg, hogy a klnbz csatornk szoftverje nem lesz azonos, viszont ugyanazt a mkdst vrjuk el
az egyes vltozatoktl. Ezt az elvet szoftver diverzitsnak nevezzk.
A kvetkezkben kt olyan megoldst mutatunk be, amely a szoftver
hibatrst szolglja a diverzitsi elv rvnyestsvel.
3.5.1. N-verzis programozs
Az N-verzis programozsban a teljes szoftvert N db. pldnyban valstjk meg, kt lehetsges megkzeltsben:
Ugyanazt a programozsi nyelvet alkalmazva, egymstl fggetlen,
klnbz fejleszt csoportok, teamek.
Eltr programozsi nyelveket alkalmazva, egymstl fggetlen, klnbz fejleszt csoportok, teamek.
A fejleszt csoportok ugyanazt a specifikcit realizljk. Eltr nyelvek
esetn az egymstl val fggetlensgk azt a clt szolglja, hogy nehogy
ugyanazokat a hibkat kvessk el s vigyk bele a szoftverbe.
Az N-verzis rendszer mkdse a kvetkez: Az N program a szmtgpes szervezstl fggen lefut, akr prhuzamosan, akr sorosan.
Elbbi esetben N db. CPU vesz rszt a feldolgozsban, utbbi esetben
csak egyetlen CPU. Az egyes programverzik ugyanazokat a bemen adatokat hasznljk, s a kimen adatok sszehasonltdnak. Az sszehasonltst egy erre a clra elksztett program vgzi.
N = 2 esetn, ha prhuzamos feldolgozs trtnik, csak a hibadetektls tnye derl ki. A hibs szoftver-komponensre, vagy a hibs hardverre
nem kapunk informcit. Egymst kvet feldolgozsok esetn ugyanez a
helyzet, azzal a klnbsggel, hogy a hardverben fellp esetleges tmeneti
hiba detektlsra is sor kerlhet.
Vissza
33
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
34
Ennl hatkonyabb megolds az N = 3, ahol md nylik a TMR-szisztma alkalmazsra, egy a szavazst megvalst programkomponens bevonsval. Ez a szervezs lehetv teszi a hibs szoftver meghatrozst,
s hibjnak eltrst is.
A szmtgpes implementci meglehetsen kltsges, hiszen ugyanazt a szoftvert tbbszrsen kell kifejleszteni. A futtats szervezse is
plusz fejlesztst kvn. Akr prhuzamos a feldolgozs, akr soros, a futsi
eredmnyek eltrolsrl s sszehasonltsrl kln kell gondoskodni.
Esetenknt ez igen komoly adatmennyisg kezelst teheti szksgess.
A magas ltrehozsi kltsgek korltoztk a mdszer elterjedst. Az
egyik jellegzetes megvalsts az Egyeslt llomokban trtnt, ahol az
AIRBUS A330/340 nagyteljestmny replgp fedlzeti irnyt szmtgpn hoztak ltre TMR-rendszer szoftvert.
3.5.2. A javt blokkok mdszere
Vissza
34
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
35
Vissza
35
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
36
Szmtgpes
irnytrendszer
Vasti plyaudvar
irnyt kzpontja
Hardver
interfsz
Klstri berendezs:
jelzlmpk, vltk
Plyaudvar
1.
Szmtgprendszer
A
Csatorna
B
sszehasonlt
Csatorna
Logikai
csatorna
Biztonsgi
csatorna
Hardver interfsz
Irnytott folyamat
Vissza
36
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
37
Az A csatorna elnevezse: logikai csatorna. A B elnevezse: biztonsgi csatorna. Norml, hibamentes zemben a plyaudvar irnytst az A csatorna
intzi. A kt csatorna szoftverei kztt lnyeges mkdsbeli klnbsg
van, a kvetkezk szerint:
1. Az A csatorna szoftvere egy CHILL programozsi nyelven elksztett
procedurlis vgrehajts program. (A CHILL magas szint programnyelv, a telekommunikci terletn fejlesztett vals idej (real-time)
rendszereknl terjedt el a felhasznlsa.) A bemen adatok a kls plyaudvari esemnyek, helyzetek, amiknek alapjn a program lefut, s ennek eredmnyeknt kiadja a szksges vezrl jeleket a plyaudvar fel.
2. A B csatorna szoftvere nem procedurlis program, hanem egy nll
szakrti rendszer. Elnevezse: SAFETY BAG (biztonsgi csomag). Ltrehozsa a PAMELA nev fejleszti krnyezetben ment vgbe. A
rendszer tudsbzisa szablyalap: tbb mint 800 szablyt tartalmaz. A
szablyok PAMELA nyelven rdtak. (PAMELA: PAttern Matching
Expert System LAnguage.) A SAFETY BAG egy-egy szablynak
struktrja: Ha egy adott esemny vagy esemnylnc kvetkezett be,
akkor egy elre definilt intzkedsre van szksg. Pldul:
IF track 27 is occupied AND signal 33 is free THEN set signal 33 to stop
Ennek rtelmezse: HA a 27-es vgny foglalt S a 33-as jelz szabad,
AKKOR lltsd a 33-as jelzt llj-ra.
Amikor egy helyzetet elemez a szakrti rendszer, akkor azt vizsglja
vgig, hogy az sszes szably kzl melyek azok, amelyeket figyelembe
kell venni az adott helyzetben, ill. melyeket nem, s a szerint kell dntst
hozni a plyaudvari teendket illeten.
A mkdsi folyamat a kvetkez:
Az A jel csatorna a forgalomirnyts bejv jeleit dolgozza fel logikailag, az adott helyzetet elemzi, kirtkeli, s a szksges vezrl jeleket kldi ki.
A B csatorna a biztonsgi mkdst szolglja. A bejv jeleket elemzi,
dntst hoz, majd megvizsglja az A csatorna dntst. Ha azt elfogadja, az A intzkedse kimegy. Ha nem fogadja el, akkor a kvetkez
esetek lehetsgesek:
1. B veszi t az intzkedst.
2. B tilt jelet ad ki a forgalom korltozsra.
3. B lelltja a forgalmat.
Vissza
37
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
38
Vissza
38
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
39
HE: Az elre felttelezett s detektlhat hardver-hibk halmaza, amelyek felfedsrl a tervezs sorn gondoskods trtnt (vagyis az
ELEKTRA bizonythatan felfedi ezeket a hibkat).
HN: Olyan hibk, amelyek bekvetkezsvel nem kell szmolni, mert
felismerskrl s elkerlskrl az ELEKTR-n kvl kln trtnt
gondoskods. (Pldul: kbelezsi hibk.)
HI: A biztonsgra nem hat, irrelevns hibk kre.
HU: Azon hibk kre, amelyekrl nincs semmilyen elzetes tudomsunk. Ide tartoznak azok a veszlyes forgalmi helyzetek is, amelyek kezelse a tervezs sorn nem volt kalkullva s megoldva.
HE
HN
H:
HU
HI
Vissza
39
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
40
lyeket nem ismernk, s amelyek megnyilvnulsa, jelentkezse a B csatorna mkdsnek a kvetkezmnye. A kt halmazt a 3.8. brn tntettk fel.
HB
HA
HA
HB
HX
Vissza
40
Szoftver-minsgbiztosts
Biztonsgkritikus rendszerek
Vissza
41
Vissza
41
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
42
4. Szoftver-tesztelsi mdszerek
4.1. Tesztelsi alapfogalmak
A kvetkezkben a szoftverek tesztelshez kapcsold legfontosabb
fogalmakat s defincikat soroljuk fel.
Defincik
Bemeneti adat: Olyan szmtgpes adat, amely egy tetszleges szoftver
mkdtetst vonja maga utn, felhasznli szinten.
Kimeneti adat: Olyan szmtgpes adat, amely egy tetszleges szoftver
mkdtetse sorn jelenik meg, a mkdtets eredmnyeknt, felhasznli
szinten.
Hibamodell: Azon szoftverhibk halmaza, amelyeknek a felfedsre irnyul a teszttervezs.
Tesztels: A szoftver bemeneti adatokkal val sorozatos elltsa s a
kimeneti vlaszadatok megfigyelse.
Egy hiba tesztje: Bemeneti adatok olyan rendezett sorozata, melynek
hatsra az adott hibt tartalmaz szoftver a legutols adatkombincira a
helyestl eltr (hibs) kimeneti adatkombincival vlaszol. Ebben az
esetben azt mondjuk, hogy a teszt kimutatja, felfedi vagy detektlja a hibt. Itt
hasznlatban van mg az a kifejezs is, hogy a teszt lefedi az adott hibt.
Detektlhat hiba: Egy hibrl akkor mondjuk, hogy detektlhat, ha
legalbb egy tesztje ltezik. (Tervezsi redundancia folytn ltezhetnek olyan
hibk, amelyek semmilyen krlmnyek kztt nem reztetik hatsukat a
szoftver egsznek mkdsben. Az ilyen hibk nem detektlhatk a
teszt defincija rtelmben.)
Tesztkszlet: Tbb hiba tesztjeinek egyttese, halmaza.
Tesztkszlet hibalefedse (fault coverage): Azon hibk szzalkos arnya az sszes felttelezett hibhoz kpest, amelyeket a tesztkszlet detektlni tud. Msknt megfogalmazva: Azon hibk szzalkos arnya az sszes
felttelezett hibhoz kpest, amelyeknek van tesztjk a tesztkszletben. Az
elrend cl a 100%-os lefedst produkl tesztkszlet ltrehozsa.
Teljes tesztkszlet/teszthalmaz: Teszteknek olyan sszessge, amely a
szoftver mindegyik elre felttelezett s detektlhat hibjnak tesztjt
Vissza
42
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
43
magban foglalja. Az ilyen teszthalmazrl azt mondjuk, hogy teljes hibalefedst eredmnyez. A teljes teszthalmaz 100%-os hibalefeds.
Teszttervezs: Az a tervezsi folyamat, amelyben egyms utn meghatrozzuk az egyes elre felttelezett szoftverhibk tesztjt. Ennek sorn
megtrtnik a bemeneti tesztek s az ezekre elvrt vlaszadatok meghatrozsa az elre felttelezett hibahalmazra nzve. A szmtsok mindenkori
clja egy olyan tesztsorozat ellltsa, amely kpes az sszes elre definilt hiba felfedsre, amikor az adott ltez szoftveren vgrehajtjuk a teszteljrst.
Megjegyzs: A mai informci-technolgia mr olyan bonyolult szoftver-rendszerek ellltst teszi lehetv (millis szmban tudnak utastsokat tartalmazni), hogy a teljes hibalefeds elrse gyakorlatilag nem valsthat meg. ltalban a 90%-on felli minl jobb lefeds a relis s elfogadhat cl.
Tesztszmts vagy determinisztikus tesztgenerls: Egy adott hiba
tesztjnek szisztematikus szmtsokkal trtn meghatrozsa.
Vletlenszer/random tesztgenerls: Bemen adatok sorozatnak
vletlenszer kpzse a hibk tesztjeknt trtn felhasznlsra. (Angolban: random test generation.) Ilyenkor a bemeneti tesztadatokat egy adott
tartomnyban hasznlt vletlenszm-genertorral lltjuk el.
4.2. Hibamodellek s rvnyessgi krk
Hibamodellnek nevezzk azoknak az elre felttelezett hibknak a konkrt
halmazt, amelyekre vonatkozan a teszttervezst vgre kvnjuk hajtani.
Tbb fajta hibamodell ltezik a gyakorlatban. Egy hibamodell meghatrozsakor a kvetkez fbb szempontokat rdemes tekintetbe kell venni:
A teszttervezs kivitelezhetsgi lehetsgei s a rfordtand kltsgek.
Az adott fejlesztsi technolgihoz kapcsold hibajelensgek elzetes
ismerete.
A tesztels vgrehajtshoz szksges hardver s szoftver eszkzk
ltal nyjtott szolgltatsok kre.
Vissza
43
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
44
Megjegyzs: A publiklt gyakorlati tapasztalatok alapjn ltalban megllapthat, hogy a szoftver rendszerek fejlesztsi s ellltsi kltsgben a
tesztelsi folyamatok megtervezsre s vgrehajtsra fordtand kltsg
tbb mint 50%-ot tesz ki. A technolgik fejldsvel folyamatosan nvekszik a rendszerek bonyolultsga s mrete, ami vgs soron a tesztkltsgek arnynak nvekedst vonja maga utn. Mindebbl az kvetkezik,
hogy folyamatosan szksg van jabb s hatkonyabb mdszerek, eszkzk kidolgozsra mind a teszttervezs, mind pedig a tesztvgrehajts
terletn.
A kvetkezkben a hasznlatban lev fontosabb hibamodelleket tekintjk
t. Fontos megjegyezni, hogy a szoftver-hibk mindig jelen vannak a mkds sorn, a krds csak az, hogy milyen mdon nyilvnulnak meg.
Szoftver hibk
a) Szoftver specifikcis hibk
A fejleszts kezdetekor megjelen hibk, amelyek a szoftver elre megadott, specifiklt mkdsi funkciiban nyilvnulnak meg, mgpedig oly
mdon, hogy a szoftver valamilyen vonatkozsban nem teljesti a felhasznli kvetelmnyeket. A specifikcis hiba addhat: tves specifikcibl, ellentmondsos specifikcibl, valamint hinyos specifikcibl.
b) Programozi hibk
A szoftver tervezse s kdolsa sorn a programoz ltal elkvetett hibk
krt foglalja magban. A lehetsges hibk az albbiak:
Hibs funkciteljests.
Hinyz funkcik.
Adatkezelsi hibk az adatbzisban.
Indtsi (inicializlsi) s lelltsi hibk.
Felhasznli interfsz hibi
Hatrrtkek tllpse
Kdolsi hiba
Algoritmikus hiba
Kalkulcis hibk
Inicializlsi hiba
Vezrlsi folyamat hibja
Vissza
44
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
45
Adattovbbtsi hiba
Versenyhelyzet programblokkok kztt
Terhelsi hiba
A kvetkez alpontokban a teszttervezs legfontosabb megkzeltsi
mdjaival foglalkozunk. Ezekhez kapcsoldan olyan determinisztikus
mdszereket mutatunk be, amelyek felhasznlsval a klnbz hibk
tesztjeit tudjuk megkeresni.
4.3. A tesztek megtervezse
Annak rdekben, hogy betekintst kapjunk a szmtgpes programok
tesztelsi feladatnak sszetettsgbe, vegynk egy egyszer pldt. Tegyk fel, hogy a kvetkez funkcit teljest programot kell ellenriznnk:
A program beolvas hrom egszszmot, amelyek egy hromszg oldalainak hosszt kpviselik. A feladata annak meghatrozsa, hogy az gy
elll hromszg szablytalan, egyenl szr, vagy pedig egyenl oldal.
Ha tesztelni akarjuk az elkszlt programot, akkor a kvetkez vizsglatokat, teszteket vgezhetjk el rajta:
1. Hrom olyan szmot adunk meg, amelyek egy rvnyes hromszget
tesznek ki.
2. Hrom olyan szmot adunk meg, amelyek egyenlk, vagyis egyenl
oldal hromszget alkotnak.
3. Kt egyenl s egy ettl klnbz szmot adunk meg, melyek gy
egyenl szr hromszget adnak.
4. Olyan szmokat adunk meg, amelyek kzl kettnek az sszege kisebb, mint a harmadik szm.
5. Olyan szmokat adunk meg, amelyek kzl kettnek az sszege egyenl a harmadikkal.
6. Hrom 0-t adunk meg.
7. Olyan szmokat adunk meg, melyek kztt nem egsz szm is van.
8. A hrom szm kztt negatvat is magadunk.
Az rvnytelen bemeneti adatokra azrt volt szksg, hogy ellenrizzk,
hogyan reagl rjuk a program. Ha elfogadn valamelyiket, akkor az programhiba lenne.
A fenti vizsglati esetek mg egyltaln nem elegendek arra, hogy
mindegyik elvileg lehetsges hibt fel tudjk derteni. Ebbl is lthat,
hogy egy ilyen egyszer program tesztelse sem knny feladat. Mindez
Vissza
45
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
46
Vissza
46
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
47
dntshozatal feltteles elgazsa. A felttel nlkli elgazst (GO TO) reprezentl pontbl kivezet irnytott l az elgazst kvet utasts pontjhoz vezet. A ciklusutastsokat (pldul FOR DO, REPEAT WHILE) egy
visszafel irnyul hurokl reprezentlja. Mint lthat, a VFG a programok
vgrehajtsi menetnek az elvont brzolsra szolgl, a vgrehajts strukturlis vzt hordozza magban.
A grf egyes csompontjai kztt definiljuk az t fogalmt:
Az Si s Sj utastsok kztti t P(Si, Sj), az egymst kvet csompontok
azon sorozata, amely Si-vel kezddik s Sj-vel r vget. Az Si s Sj kztt
tbb lehetsges t ltezhet.
4.4. A programtesztels pszicholgija s
gazdasgossga (Glenford Myers elvei)
Jllehet a tesztels tmakrt szmos technikai szempontbl trgyalhatjuk,
gy tnik, hogy a legfontosabb szempontok a pszicholgihoz s a gazdasgossghoz ktdnek. Ms szval, az olyan megfontolsok, mint a tesztelshez val szellemi hozzlls, egy program teljes tesztelsnek kivitelezhetsge, vagy ki legyen a tesztels elvgzje, jval tbbet szmt a vgrehajts sikerben, mint a technikai megfontolsok. Ezekkel a krdsekkel
Glenford Myers (USA) foglalkozott behatbban.
Elszr is, vizsgljuk meg a tesztels cljnak krdst. Szoksos megfogalmazsok a kvetkezk:
Annak bizonytsa, hogy nincsenek a programban hibk.
Annak bizonytsa, hogy a program a neki sznt funkcikat helyesen hajtja vgre.
Ezek a defincik helytelenek, mivel ppen az ellenkezjt rjk le annak,
aminek a tesztelst tekintennk kellene. Egy program rtkt akkor tudjuk
nvelni, ha javtjuk a minsgt s megbzhatsgt. A megbzhatsg
nvelse azltal rhet el, hogy megkeressk s eltvoltjuk a hibkat. Abbl a feltevsbl kell teht kiindulnunk, hogy a program hibkat tartalmaz,
s azrt teszteljk, hogy minl tbb hibt fedjnk fel benne. Eszerint:
A tesztels clja a program olyan vgrehajtsa, amelyben a szndkunk a hibk
megtallsa.
Itt azonnal addik a krds, hogy md van-e arra, hogy az sszes hibt
megtalljuk. A vlasz egyrtelmen negatv, mg az egyszerbb esetekre
nzve is. Az ltalnos gyakorlatban nem rdemes, vagy ppensggel lehe-
Vissza
47
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
48
Vissza
48
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
49
lg prhuzam itt a kimert ttesztels lehet, vagyis az sszes lehetsges vgrehajtsi t vgigprblst eredmnyez vizsglati input megadsa.
A kimert ttesztels ugyancsak belthatatlan mennyisg szmtssal
jrna. Ennek demonstrlsra tekintsk a 4.1. brn szerepl vezrlsi
folyamatgrfot.
Vissza
49
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
50
A plda folyamatgrfja mintegy 15-20 utastst tartalmaz egyszer programot kpvisel. Tegyk fel, hogy az egyetlen DO-ciklus maximum 20-szor
hajtand vgre. A DO-cikluson bell begyazott IF-utastsok halmaza
helyezkedik el. Az elklnl logikai utak szmnak meghatrozsa
ugyanazt jelenti, mint az A pontbl a B-be val eljuts klnbz lehetsges mdjainak megszmllst. Ha feltesszk, hogy a grfon mindegyik
dnts fggetlen egymstl, akkor ez a szm megkzeltleg 1014, vagyis
100 trilli lesz. A pontos rtket a kvetkez sszeg kiszmtsval kaphatjuk meg:
520 + 519 + 518 + + 51,
ahol 5 a hurokban tallhat utak szma. Ha felttelezzk, hogy egy teszt
megrsa, vgrehajtsa s leellenrzse 5 percet ignyel, akkor a teljes folyamat krlbell egy millird vig tartana.
Termszetesen a valsgos programokban a dntsi elgazsok ltalban nem fggetlenek egymstl, vagyis a bejrand utak szma ezltal
kevesebb lesz. Ugyanakkor azonban a valsgos programok jval bonyolultabbak, mint a pldban szerepl. Ebbl lthat, hogy a kimert ttesztelst sem lehetsges a gyakorlatban alkalmazni.
A msik gondot az jelenti, hogy nem llthat, hogy a kimert ttesztelssel fel tudjuk fedni az sszes programhibt. Az egyik oka ennek az,
hogy egyltaln nem biztos, hogy a letesztelt program teljesti a specifikcijt. Ha pldul egy nvekv sorba rendez rutin helyett egy cskken
sorba rendezt runk, akkor a kimert ttesztels ezt nem tudn detektlni. A msik ok az, hogy egy program tves lehet attl is, hogy hinyoznak
belle utak. Az ttesztels ilyenkor nem lenne kpes kimutatni a hinyz
utakat. A harmadik gond az, hogy ez a megkzelts esetleg nem mutat ki
n. adatrzkenysgi hibkat, vagyis olyan hibkat, amelyek csak az adatok
bizonyos rtkei mellett lpnek fel. Erre egy egyszer plda az olyan szszehasonlts, amelyben azt akarjuk eldnteni, hogy kt vltoz adat kzti
eltrs kisebb-e, mint egy elre megadott rtk (konvergencia-vizsglatnl
jelentkez feladat). Ha a kvetkez utastst vesszk, ami
IF ((A B) < EPSZILON) THEN .
alak, akkor lthat, hogy az hibs, mivel az A B klnbsg abszolt
rtkt kellett volna vennnk. Ennek a hibnak felfedse azonban fgg az
A s B konkrt rtktl, s nem biztos, hogy a program sszes tjnak a
szisztematikus bejrsa kihozza ezt a felfedst.
Vissza
50
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
51
Vissza
51
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
52
Annak a valsznsge, hogy egy programszakaszban mg hibk lteznek, egyenesen arnyos az ugyanott mr megtallt hibk szmval.
Ezt a jelensget, amit a gyakorlati tapasztalat igazol, a 4.2. brn szemlltetjk. Pldul, ha egy program kt modulbl ll, A-bl s B-bl, s A-ban
t hibt talltunk eddig, B-ben pedig csak egyet, s ha A-t mg nem vizsgltuk meg alaposan, akkor ez az elv azt mondja ki, hogy nagyobb a valsznsge annak, hogy A-ban mg tallunk hibt, mint annak, hogy B-ben
tallunk. Msknt fogalmazva, gy ltszik, hogy a hibk sokszor csoportosan jelentkeznek, klnsen az olyan modulokban, programszakaszokban,
amelyeket nehezebb volt megrni.
Tovbbi hibk
ltezsnek
valsznsge
Vissza
52
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
53
Vissza
53
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
54
Vissza
54
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
55
Vissza
55
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
56
Jllehet az ekvivalencia osztlyokra val partcionls jval hatkonyabb, mint a random kivlaszts, mgis maradhatnak ki hatkony tesztek
az alkalmazsa utn. Emiatt rdemes ms mdszereket is ignybe venni. A
kvetkezkben ilyen mdszereket ismertetnk.
4.5.2. Hatrrtk-analzis
A tapasztalatok szerint azok a tesztek, amelyek a hatrrtkekre vonatkoz feltteleket rnak el, kifizetdbbek, mint azok, amelyek nem. A
hatrfelttelek a bemeneti s kimeneti adattartomnyok als s fels szlt
jelentik. A vizsglatokat ezen rtkek krl rdemes vgezni, vagyis a hatrrtken, ill. alatta s felette. A hatrrtk-analzis kt szempontbl klnbzik az ekvivalencia felosztstl:
1. Egy ekvivalencia osztlyt tekintve annyi szmrtket tartalmaz, amenynyire szksg van az osztly mindegyik hatrrtknek a vizsglathoz.
Egy ekvivalencia osztlynak ugyanis tbb hatrrtke is lehet.
2. Nemcsak a bemeneti felttelekre kell koncentrlni, hanem a kimenetiekre is, ahol a kimeneti ekvivalencia osztlyok hatrrtkeit vesszk
szmtsba.
ltalnos receptet nem lehet adni, ez a mdszer sok intuitivitst is ignyel.
Mindazonltal nhny irnymutatt adunk az albbiak szerint:
1. Ha egy bemeneti felttel rtktartomnyt tartalmaz, akkor teszteket
runk a tartomny szleire, tovbb rvnytelen bemenet teszteket, a
szlsrtkeket minimlisan tllpve. Pldul, ha egy bemeneti rtk
(1,0) s (+1,0) kz eshet, akkor a tesztek a kvetkezk lehetnek:
1,0, 1,0, 1,001, valamint 1,001.
2. Ha egy bemeneti felttel fix szm rtket enged meg egy vltozzra,
a minimumra, a maximumra, tovbb alatta s felette rdemes egy-egy
rtket megadni. Pldul, ha egy input fjlnak 1255 rekordja ltezhet,
akkor a teszteket 0, 1, 255, s 256 rekordra rjuk el.
3. Hasznljuk fel az 1-es tmutatt a kimeneti felttelekre is. A kimeneti
hatrrtkek vizsglata azrt is fontos, mert azok nem mindig a bemeneti hatrrtkek hatsra jnnek ltre (ilyen pl. a szinusz fggvny).
Msrszrl nem mindig lehetsges a kimeneti hatrrtkeken tli
eredmnyt produklni, a vizsglatot akkor is rdemes elvgezni, ahhoz
hogy a hiba lehetsgt biztosan ki tudjuk zrni.
4. Ugyancsak hasznljuk fel a 2-es tmutatt is mindegyik kimeneti felttelhez.
Vissza
56
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
57
Az ekvivalencia partcionlsnak s a hatrrtk-analzisnek az a kzs hinyossga, hogy nem vonjk be a vizsglatba a bemeneti felttelek kombinciit. A bemeneti kombincik sorravtele nehz feladat, mivel a lehetsges
tesztek szma rendszerint horribiliss vlhat. Ezen a tren mindenkppen
arra kell trekedni, hogy szisztematikus mdon vlogassuk ki a lehetsges
kombincik azon rszhalmazt, amely a lehet leghatkonyabb lesz.
Az ok-hats-analzis olyan technika, amely eredmnyes tesztek szisztematikus kivlogatst teszi lehetv. Megjegyzend mg, hogy a mdszernek olyan hasznos mellkhatsa is van, amellyel specifikcis hinyossgokat s ellentmondsokat tudunk felfedezni. Az eljrshoz Boole-algebrai
formalizmust hasznlunk fel, a szoksos alapmveletek bevonsval.
Ezek: S, VAGY, valamint NEM. A mveletekhez az ket megjelent
logikai kapukat tudjuk ignybe venni, ill. a kapukbl felpl kombincis
logikai hlzat grfreprezentcijt, az n. Boole-grfot.
A Boole-grf egy irnytott grf, melynek csompontjai a logikai mveleteket kpviselik. Egy csompontba befut lek ugyancsak egy-egy
csompontbl indulnak ki. Egy csompont 0 vagy 1 rtket vehet fel,
ahol a 0 rtelmezse a hinyzik (nincs), az 1- pedig a jelen van (ltezik). A
grf jellsrendszert a 4.3. bra foglalja ssze. A NEM mvelet az a rt-
Vissza
57
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
58
NEM
a
VAGY
v
c
c
b
b
4.3. bra. Az ok-hats Boole-grfjnak jellsei
Vissza
58
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
59
4. A grfhoz mg hozz kell rendelnnk azokat a kiegszt megszortsokat, amelyek meg nem engedett okok s hatsok kombincijt foglaljk magukba.
5. A grf llapotfeltteleinek mdszeres vgigkvetsvel a grfot egy n.
dntsi tblzatba konvertljuk t. A tblzat mindegyik oszlopa egy
tesztet kpvisel.
6. A dntsi tblzat mindegyik oszlopbl leszrmaztatjuk a teszteket.
Egy grf illusztrlsra vegyk a kvetkez rvid specifikcit.
Az 1-es oszlopban lev karakter A vagy B kell legyen. A 2-es oszlop karaktere csak szmjegy lehet. Ezzel a megadssal fjl-frissts (updateols) hajtdik vgre. Ha az els karakter helytelen, az X12 zenet jelenik
meg, ha a msodik helytelen, akkor pedig az X13 zenet.
Az okok a kvetkezk:
(1) Az 1-es oszlop karaktere A.
(2) Az 1-es oszlop karaktere B.
(3) A 2-es oszlop karaktere szmjegy.
A hatsok a kvetkezk lesznek:
(71) Frissts hajtdik vgre.
(72) Az X12 zenet jelenik meg.
(73) Az X13 zenet jelenik meg.
A specifikcit megjelent ok-hats grf a 4.4. brn lthat.
72
v
4
2
^71
73
Vissza
59
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
60
1
2
3
71
72
73
1
0
1
1
1
0
0
2
1
0
1
1
0
0
3
1
1
1
1
0
0
4
0
0
0
0
1
1
5
0
0
1
0
1
0
6
0
1
0
0
0
1
7
1
0
0
0
0
1
8
1
1
0
0
0
1
Vissza
60
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
61
Vissza
61
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
62
Vizsglt funkcik
1
10
1
2
3
4
5
6
7
8
9
10
Mr korbban emltettk, hogy a vletlenszeren (random mdon) kpzett bemeneti adatoknak a hibafelfed kpessge meglehetsen korltozott a
determinisztikusan ellltott tesztekhez kpest. Ennek ellenre mindenkppen rdemes ezt a megkzeltst is bekapcsolni a tesztelsi stratginkba. Ennek a legfbb oka az, hogy a vletlen szmok ellltsa s bemeneti
adatknt val felhasznlsa elhanyagolhat szmtsi rfordtssal jr a
determinisztikus adatkpzshez kpest. A msik emltst rdeml ok az,
hogy nagyszm, nagytmeg adatot tudunk gy a folyamatban ignybe
venni, ami megnveli az eslyt a hibafelfedsnek. A random tesztek olyan
hibk felfedst is eredmnyezhetik, amelyek a determinisztikus teszttervezsnl elkerltk a figyelmet.
A vletlen szmok ellltsnak folyamatt mindenkppen clszer
elre tgondolt, megtervezett mdon vgezni. A kvetkezkben egy erre
vonatkoz szervezsi elvet ismertetnk:
Vissza
62
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
63
1. Hatrozzunk meg mindegyik bemen adathoz egy olyan szmtartomnyt, amelyen bell a vletlen szmok kpzst akarjuk elvgezni.
2. Az egyes adatokhoz kpezzk a sajt tartomnyukon bell es, normlis eloszls random szmokat, amelyek a bemeneti tesztadatok lesznek.
3. A szoftverre adott teszteket kt mdon szervezhetjk:
Egy vagy annl tbb, de nem mindegyik adat vltozik random mdon, a tbbi rgztett rtken ll.
Mindegyik adat vltozik a sajt tartomnyn bell.
4. A tesztvlaszok meghatrozsa random inputok esetn kln meggondolst ignyel. Vgl is hrom eset lehetsges:
Az egyes tesztszmok ismeretben magunk hatrozzuk meg az elvrt vlaszreakcikat.
Ha automatizltan kldjk a szoftverre a random teszteket, akkor a
reakcik folyamatos kls figyelse a feladatunk, anlkl, hogy
tudnnk mit kell elvrnunk. Ebben a mkdsi mdban a feladatunk abbl ll, hogy azt dntsk el mindig, hogy nem trtnt-e valamilyen szrevehet rendellenes megnyilvnuls. (Itt az automatizmust egy tesztmeghajt keretprogram kpviseli, amely a random
szmgenertort is magban foglalja.)
Lehetsges olyan szimulcis krnyezet ltrehozsa is, amelyben a
random bemeneti rtkekre adott vlaszadatok kiszmtsa a szimulcis szoftvernek a feladata.
Ezzel befejeztk a funkcionlis tesztelsi elvek s mdszerek ttekintst.
A kvetkez alfejezetben a strukturlis megkzeltssel foglalkozunk rszletesebben.
4.6. Strukturlis tesztels
Mint mr korbban emltettk a szoftver tesztelsi technikk ill. mdszerek kt f csoportba sorolhatak:
Funkcionlis (black-box) tesztels s
Strukturlis (white-box) tesztels (ST).
Mg funkcionlis tesztels esetn a tesztelt szoftver felptst, a megvalsts rszleteit nem vesszk figyelembe, addig a ST esetn a tesztels a
szoftver a specifikciban megadott funkcit megvalst program szerkezete alapjn trtnik.
Vissza
63
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
64
A hibamodell nem ms, mint a lehetsges hibk valamilyen knnyen kezelhet, tmr lersa. A szoftver tesztels ltalnos problmja a megfelel hibamodell generlsa. A nehzsget az jelenti, hogy a szoftver hibk
forrsa igen vltozatos: megklnbztethetnk specifikcis, tervezsi
kdolsi stb. hibkat.
A hibamodelltl azt vrjuk, hogy egyrszt leth legyen, vagyis tartalmazza (lerja) az sszes elfordul hibt, msrszt a tesztels sorn knynyen hasznlhat legyen. Ez utbbi ignyt kevsb lehet tmren, egzakt
mdon meghatrozni, mert a meghatrozs fgghet a konkrt tesztelsi
mdszertl. ltalnossgban a kvetkezket mondhatjuk: A tesztels sorn trtn knny felhasznlhatsg magban foglalja azt az ignyt, hogy
a hibamodell adjon lehetsget a lehetsges hibk szisztematikus (algoritmikus) kezelsre, a tesztels sorn mr lefedett (tesztelt) hibk arnynak
meghatrozsra, adott teszthalmaz hibafedsnek meghatrozsra stb.
ltalnos tapasztalat, hogy a szoftver tesztels esetn nem lehet olyan
hibamodellt tallni, amely minden alkalmazs esetn, minden fejlesztsi
krnyezetben jl hasznlhat lenne. Az egyes hibamodellek a felttelezhet szoftver hibknak csak egy rszhalmazt fedik le (4.7. bra). ltalban a
klnbz technikk ms s ms rszhalmazt fedik le, ezrt ltalnos elv,
hogy clszer a klnbz technikkat egymssal vegyesen hasznlni a
tesztels sorn.
Vissza
64
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
65
A ST arra a megllaptsra alapszik, hogy a szoftver hibk ltalban a vezrlsi szerkezetet rintik (Beizer, 1990). Pl.: A programoz if( c ) kifejezs helyett if( !c ) kifejezst hasznl. Termszetesen ez a kijelents a gyakorlati eseteknek csak egy rszben helytll, ezrt szksges meghatrozni azokat az alkalmazsi terleteket s tesztelsi clokat, ahol a ST hatkonyan hasznlhat. ltalnossgban azonban kijelenthetjk, hogy ha a fenti
llts igaz, akkor a strukturlis tesztelsi technikk hatkonyan alkalmazhatak.
Vizsgljuk meg rszletesen, a ST ltal hasznlt hibamodell tulajdonsgait. A strukturlis tesztelskor a tesztel lnyegben nem foglalkozik a
feldertend hiba termszetvel. Csak a hibamentes program mkdst,
vezrlsi szerkezett modellezi a ksbbiekben rszletesen is bemutatand
.n. folyamat vezrls grf segtsgvel. A tesztel azt felttelezi, hogy a
programban ltrejv hibk valamilyen mdon befolysoljk a a vezrlsi
szerkezet mkdst (a folyamat vezrlsi grf bejrst). A hasznlt hibamodell lnyegben egy implicit hibamodell, mert a tesztel nem hatrozza meg explicit mdon, milyen hibkat tesztel.
4.6.3. A tesztels menete ST esetn
Vissza
65
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
66
tl szksges a vezrlsi szerkezet vgrehajtott vezrlsi gnak azonostsa is. Ennek megfigyelst vagy magnak a kdnak, vagy a tesztelsi krnyezetnek kell tmogatnia.
4.6.4. A strukturlis tesztels elnyei s felhasznlsa
Vissza
66
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
67
2
3
4
5
6
7
END
Vissza
67
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
68
A programok vgrehajtsa is kvethet, ill. szemlltethet, az FVG segtsgvel. Hasznljuk azt a terminolgit, hogy ha egyms utn vgrehajtdik egy program kt utastsa, akkor FVG-ben bejrjuk a kt utastsoknak
megfelel kt grf pontot, ill. a kztk lv let. A program minden, adott
bemenetek hatsra trtn vgrehajtsakor az FVG egy jellemz pont- s
lsorozata jrdik be.
A program minden futtatskor a belpsi ponttl a kilpsi pontig tart pont- s lsorozatot sorozatot, egy n. grf utat jr be. A 4.9. brn a
fenti FVG-ben lehetsges utak felsorolst talljuk.
1
2
3
4
5
6
7
1
2
3
4
5
6
1
2
3
4
6
7
1
2
3
4
6
1
2
4
5
6
7
1
2
4
5
6
1
2
4
6
7
1
2
4
6
Vissza
68
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
69
1
2
3
4
5
6
1
2
3
4
6
7
1
2
3
4
6
1
2
4
5
6
7
1
2
4
5
6
1
2
4
6
7
1
2
4
6
A CK legnagyobb elnye, hogy az FVG egyszer elemzse alapjn kiszmthat. Hasznljuk a kvetkez jellst:
G: grf,
V(G): CK,
E: lek szma;
N: pontok szma;
P: elgazs utastsok szma.
CK rtkt kt kplet alapjn is meghatrozhatjuk:
V(G)= E-N+2
V(G)=P+1
A msodik kplet csak abban az esetben ad helyes eredmnyt, ha ketts
elgazsok vannak csak az FVG-ben, vagyis csak egy grfpontbl kt kimen l lehet.
Vissza
69
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
70
A ST mdszerek legnagyobb problmja a ciklusok tesztelse. A programok vezrlsi szerkezetben gyakoriak a ciklus utastsok. Ezek az FVGben krnek felelnek meg. A problma az, hogy minden olyan grf tbl,
melyben van kr ha nem limitljuk a kr bejrsnak szmt elvben
vgtelen tovbbi utat tudok generlni, attl fggen, hogy az adott krt
hnyszor jrom be. Erre mutatunk egy egyszer pldt a 4.11. brn.
1
3
1
2
3
1
2
2
3
1
2
2
2
3
1
2
2
2
2
3
Vissza
70
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
71
Ennek a problmnak a kezelsre egyetlen technika ltezik: ciklus bejrsnak limitlsa. Minden FVG krhz nknyesen, vagy a ciklus felttel
alapjn egy egsz szmot rendelek, mely a kr bejrsnak maximlis szma lesz.
Sajnos mg gy is igaz lesz, hogy minden krt tartalmaz thoz annyi
tesztvektort kell generlnom, mint a kr bejrsnak szma plusz egy.
Mg nehezebb a helyzet, ha a ciklus utastsok egymsba gyazdnak.
Ekkor sajnos az utak szma (s ezzel egytt a szksges tesztek szma is)
exponencilisan n a ciklusok szmval.
ltalnossgban igaz, hogy a ciklusok kezelse jelenti a legnagyobb kihvst az sszes strukturlis tesztelsi mdszerrel szemben.
4.7. Tesztminsgi mrszmok
A ST alapossgnak jellemzsre hasznlhatunk mrtkszmokat. Ezek a
mrtkszmok tmpontot adhatnak a tesztels alapossgnak jellemzsre.
Megmutatjk, hogy egy adott szempont szerint mennyire alaposan teszteltk az adott szoftvert.
A mrtkszm egy arnyszm: megmutatja, hogy a kivlasztott szempont szerint a tesztelhet elemek (egysgek, ttelek) mekkora rszt teszteltk le, a terlet terminolgijt hasznlva az adott ttelek mekkora rszt fedtk le.
A mrtkszmok tipikusan strukturlis tesztelshez kapcsoldnak.
Nhny plda a mrtkszmokra:
Utasts lefedettsg: Az utastsok mekkora hnyadt hajtottuk vgre
tesztelskor.
g lefedettsg (dnts lefedettsg): AZ FVG gainak mekkora hnyadt fedtk le (hajtottuk vgre) tesztelskor.
t lefedettsg: AZ FVG-ben tallhat utaknak mekkora hnyadt fedtk le (hajtottuk vgre) tesztelskor.
A tesztels, teszt generls clja minl magasabb, lehetleg 100%-os lefedettsg elrse. A mrtkszmokat ennek megfelelen hasznljk a tesztgenerls sorn az egyes teszthalmazok tesztel kpessgnek sszehasonltsra.
Fontos kiemelni, hogy a mrtkszmok kzelrl sem a lehetsges hibk lefedettsgt, vagyis a konkrt hibk megltnek teszteltsgt mutatjk. Mint emltettk a ST minden mdszere implicit hibamodellt hasznl,
Vissza
71
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
72
nem llt fel explicit hibamodellt, vagyis a teszteket nem egyes konkrt
hibk tesztelse rdekben generlja.
Azt is hozz kell tenni a kp teljessghez, hogy a tesztels minsgnek szmszer jellemzsre ma a fenti mrtkszmoknl jobb eszkz
nincs.
4.7.1. Lefedettsgi elemzs (coverage analisys)
hibafeds
hatkony tesztels
Vissza
72
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
73
hatkony tesztels
tesztelsre fordtott id (erfeszts)
A fenti kdrszlet teljesen fedettnek tekintjk az utasts lefedettsg mrtkszm szerint, akkor is, ha nincs olyan teszt, amely hatsra a felttel
hamis rtket vesz fel. Viszont egyrtelm, hogy hibt okoz, ha futs sorn a felttel hamis rtket kap.
Vissza
73
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
74
Vissza
74
Szoftver-minsgbiztosts
Szoftver-tesztelsi mdszerek
Vissza
75
A Bool lefedettsg alaposabban teszteli az elgazs utastsok feltteleit, azonban rdekes mdon kszthet olyan kd, amely esetn a teljes
Bool lefedettsg nem eredmnyez teljes dnts lefedettsget.
4.7.5. t lefedettsg
Vissza
75
Szoftver-minsgbiztosts
Vissza
76
Vissza
76
Szoftver-minsgbiztosts
Vissza
77
rik, egyb szabvnyos, kiprblt ptelemek vannak vilgszerte forgalomban, amelyek jl bevltak, amelyeket mindentt hasznlnak. Az elterjedtsgbl addan az esetleges tervezsi hibk is knnyebben napfnyre
kerlnek. J plda erre az Intel-Pentium processzor els kibocstott vltozata, amelyrl egy felhasznl dertette ki, hogy hibsan mkdik. Az illet
egy amerikai matematikus volt, aki kpfeldolgozsi szmtsokat vgzett,
s magas helyrtk lebegpontos mveleteknl tallt bittvesztst. Az
Intel cg szmra ez risi fiask volt. A hiba kijavtsrl, majd a hibs
processzorok becserlsrl, ill. megsemmistsrl szinte azonnal gondoskodtak.
A hardvertechnolgia fejldsvel a versenyben fennmaradt vezet
nyugati s japn cgek olyan magas szintre tudtk mr emelni a fejlesztsi
s gyrtsi minsgbiztostst, hogy ezzel lnyegesen javult az ltaluk kibocstott termkek megbzhatsga s idtllsga.
A szoftver ezzel szemben mindegyik fejlesztsnl egyedi, specilis, az
adott alkalmazshoz lett ltrehozva. Ezeket nem hasznljk fel szles krben, a kereskedelmi forgalomban nem hozzfrhetek. Mindez lnyegesen
cskkenti a biztonsgos mkdsrl szerezhet tapasztalatok lehetsgt,
ezltal a jelentkez hibk kiszrsnek lehetsgt is.
Egy konkrt biztonsgkritikus rendszerrl sszegyjttt tapasztalatok
is llnak rendelkezsnkre. Az USA-beli AT & T Bell telefontrsasg szmtgpes vezrlssel zemelteti az egsz orszgra kiterjed hlzatt. Itt
10-perces lells mr tbb millird dollrban mrhet vesztesget, ill. krt
okozhat. A Bell az ltala zemeltetett rendszerben 1997-ben statisztikai
felmrst vgzett a lellsi idk okaira vonatkozan. Eszerint az egy vre
terjed eredmnyek azt mutattk, hogy 70%-ban szoftverhiba, 20%-ban
tmeneti s idztsi hardver-hiba, tovbb llandsult statikus hardverhiba csak 10%-ban volt a lellsok elidzje. Mindez altmasztja a
szoftver-minsgbiztosts jelentsgt, a fejlesztsi s vizsglati folyamatok minl alaposabb elvgzsnek fontossgt.
5.1. Szoftverfejlesztsi modellek
Amg egy szoftvertermk elkszl, addig tbb fejlesztsi fzison megy
keresztl. Ilyen fzisok lehetnek a kvetkezk: specifikls rendszerterv
elksztse programterv elksztse kdols modulok tesztelse
modulok sszeptse (integrlsa) rendszertesztels.
Minden szoftver rendszerhez egy n. letciklus tartozik. Az letciklus
mindazon tevkenysgek, fzisok sorozata, amelyek a fejleszts elkezds-
Vissza
77
Szoftver-minsgbiztosts
Vissza
78
tl a rendszer hasznlatba vteln keresztl addig tartanak, amg a rendszer mr vgleg hasznlaton kvl kerl. Az letciklus a kvetelmnyek
specifiklsval veszi kezdett. Ennek alapjn megy vgbe a fejlesztsi
folyamat, ami az zembe helyezssel, majd az zemeltetssel s karbantartssal folytatdik, egszen a hasznlaton kvlre kerlsig.
A szoftverek letciklusra nzve tbb modellt dolgoztak ki. A legelterjedtebb modellek: az n. vzess modell, a spirl modell, valamint a V-modell.
Ezeknek a modelleknek az elnevezse az egyms utn kvetkez letciklus-fzisok geometriai elrendezsnek alakja szerint trtnt.
A klnbz modellek a fejlesztsi projektek egyes fontosabb aspektusainak hangslyozsban trnek el egymstl. gy pldul a vzess modell leginkbb a vllalati informcis rendszerekhez alkalmas, a spirl modell pedig az erforrsok elosztsra s a kltsgekre koncentrl. A Vmodell a biztonsgi kvetelmnyek teljestshez alkalmazkodik. Mindegyik techniknak megvan a maga elnye s htrnya. Ezeknek a modelleknek az elemzsvel s sszehasonltsval ebben a knyvben nem foglalkozunk.
A modellek legfontosabb kzs vonsa az, hogy mindegyikk egy j
minsgbiztostsi-fejlesztsi paradigma sajtsgait hordozza magban. Ez
a paradigma abban tr el az elz paradigmtl, hogy nem a fejleszts
lefolytatsa utn ksrli meg a termk elrsok szerinti kialaktst, hanem
a fejlesztsi folyamat minden egyes fzisban gondoskodik az ahhoz a
fzishoz elrt felttelek betartsrl. A szakirodalomban szerepl szemlltet plda a kvfzsbl van kivlasztva. A rgi metdus szerint megfztk a kvt, s a benne maradt kvport megprbltk eltvoltani, amenynyire csak lehetett. Az j metdus szerint a fzs sorn a kv tbb szrsi
procedrn megy keresztl, s az utols fzist kveten mr gyakorlatilag
nem tartalmaz kvport.
A vzess modell fbb fzisai:
Rendszerkvetelmnyek megadsa.
Szoftver-kvetelmnyek megadsa.
Elzetes programtervek elksztse, elemzse.
Programtervezs.
Programkdols.
Tesztels.
Mkdtets.
Vissza
78
Szoftver-minsgbiztosts
Vissza
79
Vissza
79
Szoftver-minsgbiztosts
Kvetelmnyek
specifiklsa
1.
2.
Rendszervalidls
Architektratervezs
5.
80
Modultervezs
6.
Rendszerverifikls
Rendszer
integrlsa s
tesztelse
11.
10.
Bizonylatols
Specifikls
4.
Rendszer
zemeltetse
Hazrd- s
kozkzatanalzis
3.
Vissza
9.
8.
7.
Modulok
ellltsa s
tesztelse
Vissza
80
Szoftver-minsgbiztosts
Vissza
81
mentci azt rja le, hogy milyen funkcikat s milyen mdon kell a
rendszernek teljesteni. Pldul a Magyar llami Vast (MV) n. felttfzetben rja el a vasti biztostberendezsek funkciit.
2. Hazrdok s kockzatok elemzse: Clja: a lehetsges veszlyhelyzetek meghatrozsa a rendszerben, a megelz kiszrs rdekben.
Hazrd: Olyan helyzet, amely egy valsgos vagy lehetsges veszlyt
jelent az emberek vagy a krnyezet szmra.
Kockzat: Egy hazrdhoz kapcsold esemnyek s azok kvetkezmnyei, valsznsgi alapon. Azt fejezi ki, hogy milyen valsznsg
veszlyes kvetkezmnyei lehetnek egy hazrdnak.
Az analzisek elvgzshez klnfle mdszerek llnak rendelkezsre.
A hazrdanalzisre az albbiak hasznlatosak:
Hibamdok s hatsuk analzise: Ebben az eljrsban komponenshibkat tteleznk fel kln-kln, s azt vizsgljuk, hogy a
hibknak milyen hatsuk lehet a rendszer biztonsgra. Ez gy trtnik, hogy vgigkvetjk a hiba hatst a teljes mkdsen keresztl. Ha ezt szmtgpes modellen vgezzk, akkor hibaszimulcirl beszlnk. Ilyenkor egy hibamodellez szoftver felhasznlsval szimulljuk a mkdst. A felttelezett hibk lehetnek kisebb
rszegysgben, nagyobb modulban stb., a modellez programtl
fggen. A modellezs trtnhet hardver-elem szinten, vagy pedig
funkcionlis szinten is, a teljes mkds lejtszsval, ahol a hardvert s szoftvert egytt, egszben vve kezeljk.
Esemnyfa-analzis (event-tree analysis): Ennek az elve hasonlt a hibahatsok analzishez. Itt egy-egy olyan esemnyt tteleznk fel, amely hatssal lehet a rendszer mkdsre. Az analzis
sorn ennek a hatst kvetjk vgig. Nemcsak a lehetsges hibs
esemnyeket vesszk kiindulsul, hanem a norml mdon betervezett esemnyeket is. Ennek az az oka, hogy a norml esemnyekbl
is addhat katasztrfa, a hibs tervezs folytn. Az esemnyfa egy
fa tpus irnytott grf, amelynek gykere a kiindulsi esemny, ezt
kveten pedig annak hatsai szerint gazik szt a klnbz szinteken, egszen a lehetsges vgs kimenetelekig (a fa leveleiig). Ha
egy vgs kimenetel veszlyt jelent, akkor gondoskodni kell annak
megszntetsrl, a tervezsbe val visszanylssal, vagy pedig a
rendszer mkdtetsre vonatkozan kell olyan elrsokat lefektetni, amelyek kizrjk a vszhelyzet fellpst.
Vissza
81
Szoftver-minsgbiztosts
Vissza
82
Hibafa-analzis (fault-tree analysis): Ez a megolds is egy fa tpus irnytott grf kiptsn alapul. A kiinduls viszont itt teljesen fordtott, ennek megfelelen a grfon trtn halads irnya is
fordtott, az irnytssal ellenttes. Kiindulsknt egy vszhelyzetet
tteleznk fel, s azt hatrozzuk meg szintrl szintre visszafel haladva, hogy mik lehetnek elidzi az adott vszhelyzetnek. A grf
egy-egy cscsa logikai Boole-opertort kpvisel: S, VAGY, ill.
NEM mveletet. Ez azrt van gy, mert a kiindulsi helyzetet elidz lehetsges okok meghatrozsakor az okok egyttes (S),
kln-kln (VAGY), ill. tagad (NEM) ltezst kell megllaptanunk. Ha egy vszhelyzetrl kiderl, hogy semmikppen nem kvetkezhet be, akkor nincs szksg a mdostsra. Ha viszont tallunk legalbb egy okot, amitl bekvetkezhet, akkor a terv talaktsa vlik szksgess.
A kockzatok elemzsre valsznsg-szmtsi segdeszkzket
hasznlnak fel, aminek eredmnyeknt szmszer rtkeket rendelnek
az egyes veszlyes kvetkezmnyekhez.
Az elemzsi folyamatok eredmnyeknt ltrehozand a biztonsgi
kvetelmnyek dokumentcija. Ez a dokumentum arra ad elrst, hogy
mit kell betartani a rendszernl, mit szabad, ill. mit nem szabad megengedni a rendszer mkdse sorn.
3. A teljes rendszerspecifikci: A funkcionlis kvetelmnyek valamint a biztonsgi kvetelmnyek egyttese alkotja. Mindezen specifikci alapjn megkezdhet a teljes rendszer konkrt tervezsi folyamata.
4. Architekturlis tervezs: A teljes informatikai rendszer architektrja
hardverbl s szoftverbl tevdik ssze. A tervezsnek ebben a fzisban azt kell eldnteni, hogy mely funkcik legyenek megvalstva
hardver, s melyek szoftver ltal. Az ltalnos mkds szempontjbl
ez a tervezsi fzis dnt szerepet jtszik. A kt informatikai szfra
kztti megoszts egyarnt kihatssal van a sebessgre, a megbzhatsgra, a teljestmnyre, valamint a biztonsgossgra. A vastirnyt
szmtgpek pldul tipikus vals idej rendszerek, amelyeknl mindegyik reakciidnek igazodni kell a forgalmi esemnyek idtartamaihoz. Megjegyzend mg, hogy ma mr egyre inkbb terjedben van a
hardver-szoftver egyttes tervezsnek kivitelezse, angolul az n.
HW-SW co-design. Ebben a megkzeltsben a tervezsi folyamatnak
csak egy ksbbi szakaszban dl el a HW-SW-megoszts, addig a tervezs azonos elveken, azonos eszkzkkel halad elre.
Vissza
82
Szoftver-minsgbiztosts
Vissza
83
A tervezs eredmnyeknt ltrejnnek a hardver s a szoftver rendszertervei, tervdokumentcik formjban. Ezek alapjn mind a hardvert, mind
pedig a szoftvert hierarchikusan fentrl lefel haladva (top-down) tervezik meg. A kvetkezkben az letciklusnak a szoftver vonalra fogjuk a hangslyt helyezni, a hardverrel csak rintlegesen foglalkozunk.
5. A szoftver modulokra bontsa: Clja a tervezsi folyamat egyszerstse, ttekinthetbb ttele, a fejlesztsi feladatok rszekre val sztosztsa. A tervezs eredmnyeknt a szoftver modulok specifikcija,
valamint a kztk lev interfszek, ill. kapcsoldsi folyamatok terve
kszl el.
6. A modulok elksztse s tesztelse: Ebben a szakaszban trtnik
meg az egyes modulok forrsnyelvi kdjnak megrsa, a modulok
egyenknti lefordtsa, a nyomkvetses fejleszti belvse, ezt kveten pedig az elkszlt modulok nll tesztelse. A tesztelsi folyamatok elzetesen megtervezendk. A tesztels mr integrns rsze a
szoftver verifikcis folyamatnak, amelyben azt dntjk el, hogy egyegy modul megfelel-e a specifikcijnak. Ehhez az inputot a modulok
terve szolgltatja.
7. A szoftver-modulok sszeintegrlsa: Miutn mindegyik modul
tment a tesztelsen, a teljes rendszer sszeintegrlsra kerl sor. A
gyakorlatban ktfle megkzelts terjedt el erre vonatkozan:
a) Integrls egyenknti bvtssel s tesztelssel: Inkrementlis tesztels.
Ekkor egy kiindulsi, minimlis szm modulhoz egyms utn illesztjk a bvtsknt szolgl modulokat. Minden egyes bvts
utn kln teszteljk az addig sszellt komplexumot. A megolds
elnye az, hogy az jabb hibk egy-egy bvts sorn lphetnek be
nagy valsznsggel, s gy knnyebb felfedni ket a bonyolultsg
lpcszetes nvekedsvel.
b) A msik megkzeltsben az sszes modult egyszerre rakjuk ssze,
s a teljes komplexumra hajtjuk vgre a tesztelst. Ez a megolds
azon a feltevsen alapul, hogy az elzetesen kitesztelt modulok mr
nagy valsznsggel egytt is helyesen fognak mkdni. A lert
megkzelts az n. big bang tesztels (testing). Az elnevezs arra
utal, hogy szmtanunk kell az els indtst kvet sszeomlsra.
(Big bang: nagy csattans.) Ekkor a hibk megtallsa viszonylag
nehezebb lesz a feladat bonyolultsga miatt.
Ennek a folyamatnak a vgrehajtshoz a bemen ionformcit a modulok terve, s a teljes rendszer terve kpviselik.
Vissza
83
Szoftver-minsgbiztosts
Vissza
Kvetelmnyek
elemzse
84
zemeltets/
Karbantarts
Bizonylatolt
rendszer
Kvetelmnyek
dokumentcija
Rendszerspecifikls
Validls/
Bizonylatols
Rendszerspecifikci
Verifiklt
rendszer
Fels szint
tervezs
Rendszer
tesztelse
Rendszer
terve
sszeintegrlt
rendszer
Rszletes
tervezs
Rendszer
sszeintegrlsa
Modulok
terve
Tesztelt
modulok
Konstrukcis
tervezs
Kdols
Modulok
tesztelse
Modulok
Vissza
84
Szoftver-minsgbiztosts
Vissza
85
Vissza
85
Szoftver-minsgbiztosts
Vissza
86
Szoftver specifikci
1. tervezsi fzis
Mdosts
Nem
1. fzis megfelel
Igen
2. tervezsi fzis
Mdosts
Nem
2. fzis megfelel
Igen
Mdosts
Nem
Vissza
86
Szoftver-minsgbiztosts
Vissza
87
Vissza
87
Szoftver-minsgbiztosts
Vissza
88
Ha sszehasonltst tesznk a kt megkzelts kztt, akkor a kvetkez tmr megklnbztetst tudjuk tenni:
A verifikci vgs soron arra ad vlaszt, hogy a termk ellltsa helyesen trtnt-e.
A validci arra ad vlaszt, hogy a helyes termket lltottuk-e el.
A fentiekhez mg a kvetkez fontos megjegyzst fzzk:
Nem minden szoftverfejleszts kveteli meg a V & V eljrs vgrehajtst. Az olyan esetekben, amikor teljes bizonyossggal kijelenthet, hogy
a kiindulsi specifikciban nincsen semmilyen hinyossg, nincs szksg
a validlsra. Ekkor elegend a specifikcival val sszhangot bizonytani, vagyis egyedl csak verifiklni. Ilyen eset lehet pldul egy jl definilt
algoritmust vagy szmtsi eljrst megvalst szoftver elksztse, ami
akr egy igen nagy, sszetett rendszert is adhat eredmnyl. A biztonsgkritikus rendszerek azonban nem ebbe a kategriba esnek, itt mindig
szksg van mind a kt V-re.
5.3. A verifikci s a validci fzisainak
tervezse
Amikor egy biztonsgkritikus rendszer tervezse trtnik, a teljes rfordtsnak igen jelents rszt kpezi a verifikcinak s a validcinak a megtervezse. Kvetkezskppen az elre val tervezs lnyeges mind a kltsgek becslse, mind pedig minimalizlsa szempontjbl. Mivel a verifikls s a validls egyarnt a tesztelsen alapul, a tesztek megtervezse
igen fontos rsze lesz a fejlesztsi folyamatnak. A tervezs egyik terlete a
szoftveregysgek, vagyis a modulok ellenrzse, a msik pedig a modulok
sszeintegrlsnak ellenrzse. A teljes rendszer validlsa a rendszerfejleszts utols fzisai kz tartozik, viszont ennek a tevkenysgnek a megtervezse mr egy korai szakaszban meg kell hogy trtnjk. Ennek az a
legfbb indoka, hogy a validcis terv befolysolni tudja magnak a projektnek a tovbbi menett. A validcis szempontoknak a figyelembe vtele a tervezs egy korai szakaszban jelents megtakartshoz vezethet a
ksbbi szakaszok rfordtsban.
Az 5.3. bra szerinti folyamatot tekintve lthat, hogy a projekt korai
fzisai informcis kapcsolatban vannak a ksbbi fzisokkal, amit a szaggatott vonalak fejeznek ki. A diagram jobboldali ga a megvalstsi, ill. a
tesztelsi tevkenysgeket kpviseli. Amint a rendszer az egyes modulok-
Vissza
88
Szoftver-minsgbiztosts
Vissza
89
bl teljes egssz kezd sszeplni, gy kell az ptsi llapotokat sszevetni a nekik megfelel tervezsi llapotokkal. gy pldul egy adott modul
megvalstst a modul tervvel sszehasonltva kell tesztelni, mg a teljes
rendszert a rendszer specifikcija alapjn teszteljk. Az erre vonatkoz
teszttervezsi tevkenysget be lehet iktatni a V-diagramba, amint azt az
5.4. bra mutatja. Az brbl vilgosan kitnik, hogy a baloldali g minden
egyes fzisnak egy jabb fzisba val transzformcijhoz meg kell tervezni a transzformci helyes vgrehajtsnak verifiklst.
A rendszer validlsa megkveteli, hogy a rendszer sszes szempontjt, tovbb az sszes mkdsi mdjt tekintetbe vegyk. Ez tbbek kztt azt jelenti, hogy a klnbz technolgikon alapul biztonsgi mechanizmusokat is vizsglni kell, mint pldul a hardvert, vagy a mechanikus, esetleg hidraulikus rszeket, s az ezekhez kapcsold kls kockzatcskkent megoldsokat. Mieltt egy rendszert megvalstannak, vgs validlst meg kell tervezni, az sszes olyan tnyez figyelembevtelvel, amelyek a biztonsgot befolysoljk.
Az IEC 1508 szabvnytervezet 1995-s vltozata megad egy kvetelmnylistt az ltalnos validcis tervekre vonatkozan. (IEC: International Electrotechnical Commission, Nemzetkzi Elektrotechnikai Bizottsg). A kvetelmnylistt az albbiakban ismertetjk:
a) Annak lersa, hogy a validls mikor hajtand vgre.
b) Annak megadsa, hogy ki hajtja vgre a validlst.
c) A rendszermkds figyelembe veend mdjainak megadsa, az albbiak szerint:
A hasznlat elksztse
Indts
Automatikus zemeltets
Manulis zemeltets
Flautomatikus zemeltets
llandsult llapotbeli mkds
jrallts (reset-els)
Teljes lellts
Karbantarts
Elrelthat abnormlis felttelek kezelse
d) A biztonsgra kihat rendszerek megadsa, s azon kls kockzatcskkent eszkzk megadsa, amelyeket validlni kell mindegyik mkdsi mdban.
Vissza
89
Szoftver-minsgbiztosts
Vissza
Kvetelmnyek
elemzse
90
zemeltets/
Karbantarts
Kvetelmnyek
dokumentcija
Bizonylatolt
rendszer
Teszttervezs
Rendszerspecifikls
Validls/
Bizonylatols
Rendszerspecifikci
Verifiklt
rendszer
Teszttervezs
Fels szint
tervezs
Rendszer
tesztelse
Rendszer
terve
Teszttervezs
Rszletes
tervezs
Modulok
terve
sszeintegrlt
rendszer
Rendszer
sszeintegrlsa
Teszttervezs
Konstrukcis
tervezs
Kdols
Tesztelt
modulok
Modulok
tesztelse
Modulok
Vissza
90
Szoftver-minsgbiztosts
Vissza
91
Vissza
91
Szoftver-minsgbiztosts
Vissza
92
rekkel, majd az gy ellltott tesztesetek kiegsztse a specifikci tesztelsre szolgl black-box mdszerekkel ellltott tesztesetekkel.
Az egysg- vagy modultesztek jelentik a szoftverfejleszts kzbeni legalacsonyabb szint tesztelst. Ilyenkor a szoftver egyes nll egysgeinek
tesztjt a program tbbi rsztl elszigetelten vgzik. A modultesztek teht lehetv teszik, hogy a programot ne csak teljes egszben az elkszlte
utn teszteljk, hanem a tesztelst mr kisebb ptelemeinek elkszlte
utn is elvgezhessk. A modultesztelst magt a tesztelsi fzis vgrehajtsa is motivlta. Egyrszt lehetv teszi a tesztelsi folyamat komplexitsnak kezelst (kisebb modulok tesztelsre kell csak sszpontostani),
msrszt megknnyti a felfedezett hibs mkds oknak s a hibk helynek pontosabb azonostst, s vgl lehetsget ad a tesztels prhuzamostsra tbb modul egyidej tesztelsvel. Az gy ltrehozott tesztesetek nem csak egyszer hasznlatosak a fejleszts sorn a hibamentes kdols ellenrzsre, hanem mindannyiszor vgre kell hajtani ket, ahnyszor a szoftveren vltoztatst vgznk vagy a modult egy j, msik krnyezetben hasznljuk fel (regresszis tesztels).
A modultesztek sorn teszteljk az adott modul s a modult a rendszerhez csatol interfsz funkcionlis mkdst. A modul tesztelse egy
tesztkrnyezetben trtnik, mely lehetv teszi a tesztesetek ellenrztt
vgrehajtst. A modul a tesztkrnyezettel kombinlva alkot egy mkd
rendszert. Ennek a rendszernek a szerkezett, kialaktst, erforrs ignyt a kvetett modultesztelsi stratgia hatrozza meg. Ktfle megkzeltsmd kpzelhet el: az egyik esetben a modulok egymstl teljesen
fggetlenl kerlnek tesztelsre (izolcis tesztels), illetve a tesztelend
modul mr korbban tesztelt modulokkal kombinlva kerl tesztelsre
(inkrementlis tesztels). A tesztkrnyezetek egy tesztvgrehajt egysgbl
s egy kiegszt rszbl llnak. A tesztvgrehajt egysg a tesztesetek
elvgzst biztostja a megfelel input paramterek belltsval, a tesztelend modul vgrehajtsval s a kimen paramterek kiolvassval. A
kiegszt rsz a modul eredeti krnyezett helyettesti a teszt sorn n.
csonkokkal, melyek a tesztels alatt ll modulbl a krnyezetbe irnyul
hvsokat kezelik le s szolgltatnak visszatrsi rtkeket.
5.4.1. A modultesztels szksgessge s elnyei
Vissza
92
Szoftver-minsgbiztosts
Vissza
93
sokkal hatkonyabb integrcis fzisba kezdhetnek, tudva azt, hogy megbzhat komponensekkel dolgoznak. A jl megvalstott egysgtesztels
teht jobb id kihasznlst biztost.
A modultesztels nem csak azt bizonythatja, hogy a kd azt teszi, amit
kdoltak. Ehhez azonban az szksges, hogy a kdot a specifikcijnak
tkrben teszteljk. gy nem csak tbb kdolsi hibt, de specifikcibeli
hibkat is felderthetnk. Amennyiben egy specifikci nlkli modult kell
tesztelni, akkor a kd visszafejtsvel egy vzlat specifikcit kell ltrehozni a modul felttelezett mkdsre vonatkozan.
Az integrcis, vagyis az alkalmazst egszben tekint tesztek nem
alkalmasak a hibk jrsznek feldertsre. Az ok az, hogy a nagyobb kd
integrcik sokkal komplexebbek. Amennyiben a szoftvert alkot modulok nem estek t egysgtesztelsen mr maga a szoftver futsnak elrse,
tesztesetek vgrehajtsa nlkl, sem kis feladat. Az integrcis tesztels
sorn nagyon nehz lehet olyan helyzetek teremtse, hogy egy bizonyos
egysg vgrehajtsra kerljn s radsul kimerten tesztelve legyen, vagyis az egysgszint alapos tesztels elrse integrcis tesztels kzben
sokkal komplexebb feladat, mint az egyes egysgek elszigetelt tesztelsnl. Ennek a kvetkezmnye pedig az lesz, hogy a szoftver bizonyos rszei
nem kerlnek tesztelsre s feldertetlen hibk maradnak a benne.
Alkalmazs
Potencilis
hibk
Modulok
Teszt input
Vissza
93
Szoftver-minsgbiztosts
Vissza
94
Teszt input
Modul
Potencilis
hibk
Vissza
94
Szoftver-minsgbiztosts
Vissza
95
h jt
D
Te szte l s
l tt
E
Cso nk
F
Cso nk
G
Cso nk
Vissza
95
Szoftver-minsgbiztosts
Vissza
96
Vissza
96
Szoftver-minsgbiztosts
Vissza
97
B
Te szte lve
C
Te szte lve
D
Te szte l s
l tt
E
Cso nk
F
Cso nk
G
Cso nk
Vissza
97
Szoftver-minsgbiztosts
Vissza
98
Bottom-up egysgtesztelskor a modulok az ket hv moduloktl elszigetelten kerlnek tesztelsre, de a valdi hvott modulokat hasznljk sajt
hvsaikhoz. Elszr a legals szinten lv modulokat kell tesztelni, majd
ezeket kell hasznlni a felsbb szint egysgek tesztjeinl, vagyis mr tesztelt hvott egysgekkel kerl sor a tesztelsre. A folyamatot addig kell is-
Vissza
98
Szoftver-minsgbiztosts
Vissza
99
h jt
H
Te szte lve
D
Te szte l s
l tt
E
Te szte lve
F
Te szte lve
I
Te szte lve
J
Te szte lve
G
Te szte lve
Vissza
99
Szoftver-minsgbiztosts
Vissza
100
Vissza
100
Szoftver-minsgbiztosts
Vissza
101
Potencilis hibk
Teszt input
Vissza
101
Szoftver-minsgbiztosts
Vissza
102
Vissza
102
Szoftver-minsgbiztosts
Vissza
103
Vissza
103
Szoftver-minsgbiztosts
Vissza
104
Vissza
104
Szoftver-minsgbiztosts
Vissza
105
Vissza
105
Szoftver-minsgbiztosts
Vissza
106
Az eddig bekvetkezett katasztrfk vizsglata mindig azt az eredmnyt hozta, hogy tbb egyttesen fellp vratlan esemny kombincija
idzte el a nem kvnt esetet. Mivel a tervezs sorn nem vrhat el, hogy
minden lehetsges esemnyre fel lehessen kszlni, minden elfordulhat
helyzetet vgig lehessen kvetni, ezrt ennek a ptlsra egyedl a tesztels ad mdot. A tesztelsben megvan a lehetsge annak, hogy a tervezstl fggetlen szemly vagy csoport teremtsen olyan helyzeteket a vizsglt
rendszer szmra, amelyben kiderlhet, hogy az nem lett felksztve az
ilyenek megfelel feldolgozsra, kezelsre. Clszer teht arra trekedni,
hogy minl tbb esemnykombinci kerljn vizsglatra, amelyek lehetnek szokatlanok, ill. kis valsznsggel elfordulk. Az ilyen irnyultsg
tesztek ellltsra rdemes ignybe venni a vletlenszer adatgenerls
mdszert is. Ugyanis a random bemeneti adatok kztt elfordulhatnak
olyanok is, amelyek extrm zemeltetsi feltteleket rnak el.
5.6.1. Idztsi szempontok
Az ipari, gyrtsi, vagy kzlekedsi, replsi folyamatokat irnyt biztonsgkritikus rendszerek vals idben kell hogy zemeljenek. A vals idej
rendszerekre nzve olyan idkorltok rvnyeslnek, amelyeken bell kell
a rendszernek a kls esemnyekre reaglni, s a megfelel vlaszt adni.
Az egyes idkorltok fggenek az adott kls esemnyek kategrijtl,
vagyis a klnbz esemnyekhez klnbz reaglsi idkorltok vannak rendelve.
A vals idej megktsek kielgtse sok esetben igen komoly kvetelmnyt jelent mind a hardver, mind pedig a szoftver oldalrl. Ugyancsak nehz feladat annak az igazolsa is, hogy a megktsek feltteleit teljesti az adott berendezs. Az igazolsi feladat megoldsa kt rszbl ll:
A rendszerkvetelmnyekbl meg kell hatrozni az idztsi korltozsokat.
Meg kell mutatni, hogy ezek a korltozsok ki vannak elgtve.
Az els feladat jval nehezebb, mint amilyennek ltszik, mivel sok idkorlt valaminek a kvetkezmnye, ahelyett, hogy kifejezetten deklarlva lenne. Amikor a specifikci termszetes nyelven van lerva, akkor klnsen
nehz a lersbl azonostani s szmszersteni az sszes idztsi kvetkezmnyt.
Miutn az idkorltok azonostva lettek, szksgess vlik annak verifiklsa, hogy azok mindegyike ki van elgtve. A hardver ilyen irny
Vissza
106
Szoftver-minsgbiztosts
Vissza
107
Vissza
107
Szoftver-minsgbiztosts
Vissza
108
Vissza
108
Szoftver-minsgbiztosts
Vissza
109
Kvetelmnyek
Kdolva
Kibocstva
(Id)
Vissza
109
Szoftver-minsgbiztosts
Vissza
110
Programozs
Tesztels
100300$
5001.500$
Installls/
Karbantarts
10.000$
millik $-ban
A fejlesztst vgz intzmnyeknek rdemes lland kltsgfigyelst vgezni a hibajavts terletn. Ehhez fel kell jegyeznik az sszes olyan
rfordtst, amely a hibakeressre s javtsra vonatkozott. Elfordulhat
olyan eset is, amikor egy-egy hiba miatt nagyobb ttervezst, talaktst
kell vgrehajtani a szoftveren. Ez is jelents kltsgnvekedssel jrhat.
A biztonsg-orientlt rendszereknl a ksn szlelt hibk nemcsak a
javtsi kltsgben jelentkezhetnek, hanem a rendszer tves mkdse ltal
okozott krokban is, ami ugyancsak kltsgnvel tnyez. Az ilyen rendszereknk fokozott jelentsge van a korai hibaelhrtsnak.
A tesztelsi rfordtsok a fejleszts tekintlyes rszt teszik ki. Az erre
irnyul kltsgek cskkentse ezrt nagyon fontos. A mrsre a kvetkez kifejezs ltal definilt szmot (tesztkltsgi tnyez, test cost factor TCF)
szoks hasznlni:
Tesztkltsgi tnyez =
Tesztels kltsge
Tesztels kltsge + Tervezs kltsge
A tesztkltsgi tnyez rtke a ltrehozott alkalmazs termszettl, sajtsgaitl fgg. Ersen valsznsthet, hogy rtke mind a komplexits,
mind pedig a biztonsgi szint nvekedsvel egytt nvekszik. A hasonl
jellemzkkel br rendszerek tnyezi kztti klnbsg azt tkrzi, hogy
a fejleszt teamek milyen kpessggel s sikerrel ksreltk meg cskkenteni az ellenrzsi rfordtsokat. Azt mutatja, hogy mennyire sikerlt nekik jl tesztelhet rendszert ltrehozni. A gyakorlati tapasztalatok szerint a
Vissza
110
Szoftver-minsgbiztosts
Vissza
111
tesztkltsgi tnyez tipikusan a 0,250,75 kztti svban mozog. (Irodalmi adat: N. Storey, Nagy-Britannia, 1996.)
5.8. Bizonylatols
Bizonylatols (certification): Annak igazolsa, hogy a termk minden
tekintetben megfelel a hatsgi elrsoknak, szabvnyoknak, kvetelmnyeknek.
A bizonylatolst minden orszgban egy erre a clra ltrehozott hatsg
rja el. Ilyen elrs vonatkozhat pldul a replgpekre, amelyek csak
akkor kerlhetnek forgalomba, vagyis szllhatnak fel, ha erre megvan a
megfelel bizonylat. A forgalomba helyezshez szksges bizonylatok
minden lgi jrmre el vannak rva. A biztonsgkritikus rendszerekre
nzve is hasonl jelleg elrsok vonatkoznak, melyek orszgonknt vltoznak. Az esetek tbbsgben llami hatsgokra tartozik a bizonylatok
elrsi rendjnek kidolgozsa s betartatsa.
A biztonsgkritikus rendszerek esetben a biztonsgrl kell meggyzni
a megfelel szablyoz szervet. Ez ltalban igen nehz feladat. A fejlesztnek meg kell mutatnia, hogy minden fontosabb hazrd azonostva lett,
s gondoskods trtnt az elkerlskrl, tovbb hogy a rendszer kell
vdelmet kapott az illetktelen hozzfrs s helytelen kezels ellen. A
bizonylat kiadshoz ugyancsak szksg lehet annak igazolsra is, hogy az
adott rendszer miden pontban megfelel-e az sszes ide vonatkoz szabvny elrsainak. A fejleszt s kivitelez cgnek rszletesen dokumentlnia kell a fejlesztsnl hasznlt mdszereket, tovbb a tesztelsnl
hasznlt megoldsokat is. Mindezeken tl szigoran al kell tmasztani azt
az lltst, hogy a rendszer kellkppen biztonsgos, s az is marad a teljes
letciklusa alatt. A bizonylat kiadsig terjed munka meglehetsen nagy
volumen, s ehhez mg igen gondos, alapos tervezst kvetel meg.
A biztonsgkritikus rendszerek gyrti mindenkppen r vannak utalva
arra, hogy az ltaluk fejlesztett berendezsek megkapjk az zembe helyezshez szksges bizonylatot. Az erre vonatkoz kvetelmnyek vltoznak az alkalmazstl s az orszgtl fggen. Pldul az orvosi elektronika
terletn Nagy-Britanniban a bizonylatols nkntes, az Egyeslt llamokban s Nmetorszgban viszont szigoran ktelez. A polgri replsben s a nukleris ermveknl a bizonylatols mindig ktelez. Az
esetek tbbsgben a teljes rendszerre vonatkozik az engedlyezsi elrs,
mskor pedig csak a kritikus komponensekre.
Vissza
111
Szoftver-minsgbiztosts
Vissza
112
Vissza
112
Szoftver-minsgbiztosts
Vissza
113
sszefoglalva a kvetkezket llapthatjuk meg: A bizonylatols hrom kvetelmnyrendszer kielgtsnek elismerst, elfogadst szolglja:
A specifikcis kvetelmnyeknek val megfelelst (verifikci).
A felhasznli kvetelmnyeknek val megfelelst (validci).
A hatsgi elrsoknak val megfelelst.
5.9. A formlis mdszerek szerepe
A formlis mdszerek matematikai alapokon ll eljrsok, amelyeket az
informatikai rendszerek
specifiklsra,
tervezsre, valamint
analzisre
hasznlnak fel. A felsorolt felhasznlsi mdok egyarnt vonatkoznak a
hardverre s a szoftverre. Az ide tartoz formlis megkzelts a diszkrt
matematika, a szmtgpes nyelvek s fordtprogramok, a matematikai
nyelvszet, valamint a matematikai logika felhasznlsn, ill. tovbbfejlesztsn alapszik. Jelentsge a matematikai precizits s szigorsg tfog
kihasznlsban rejlik, ami pontos, ellentmondsmentes s egyrtelm megoldsokat
segt el.
Ebben a felfogsban az eddig lert megoldsok valjban informlis
specifikcis s tervezsi mdszereken alapultak. A specifikci ltalban
valamilyen verblis, lersos alapon van elksztve. Ez a lers lehet pontatlan, nem egyrtelm, nem teljes, esetleg ellentmondsokat is tartalmazhat.
A formlis megkzelts precz matematikai technikinak alkalmazsa ppen arra irnyul, hogy ezeket a hinyossgokat ki lehessen kszblni.
(Ismeretes, hogy a formalitst teljesen nlklz jogalkots lland velejrja a trvnyek kztti ellentmondsok meglte, valamint hinyos trvnyek megszletse, amelyek tele vannak joghzaggal. A mszaki vilgban ugyangy keletkezhetnek specifikcis hzagok is, amelyek pldul
slyos kvetkezmnyekkel jrhatnak a biztonsgra nzve.) Az alapvet
feladat teht az egyrtelm, pontos s ellentmondsmentes specifikci megteremtse.
Ebben az irnyban mr rgta komoly trekvsek trtntek. Ilyenek
pldul a szoftverfejlesztsben az n. CASE-eszkzk (CASE: ComputerAided Software Engineering, szmtgppel segtett szoftvertechnolgia),
vagy a grafikus specifikcis eszkzk a rendszerek lersra. Ezek n.
Vissza
113
Szoftver-minsgbiztosts
Vissza
114
formalizlt mdszerek, amelyek szisztematikusak, s nagymrtkben elsegtik a pontos tervezst, azonban mg nem garantljk a kvnt cl elrst.
Ugyanis teljes mrtkben a terveztl fgg az alkalmazsuk mikntje, mg
akkor is, ha komoly segtsget jelentenek szmra. Arrl van sz, hogy a
terveznek ezek a munkjt knnytik meg, teszik gyorsabb, egy sereg
manulis, ill. munkaignyes feladatot levve a vllrl, de a tervezs helyessge egyedl a tervezn mlik. A hibzsi lehetsgeket lnyegesen
cskkentik, de meg nem szntetik.
A formlis mdszerek ettl klnbznek. Olyan formlis nyelveken
alapulnak, amelyek igen precz szablyokat hordoznak magukban. A terveznek ezeket a szablyokat ktelez betartani, mert a nyelv fordtprogramja kijelzi a szablyok megszegst. Ez egyrtelm specifikcit eredmnyez, msrszt pedig a szablyok betartsa lehetv teszi azt is, hogy
egy kln szoftver automatikusan tudja ellenrizni s kimutatni a tervezsi
hibkat, ellentmondsokat is. Az ilyen nyelvek elnevezse:
Vissza
114
Szoftver-minsgbiztosts
Vissza
115
Transzformci s ellenrzs
Verifikci
1. tervezsi fzis
Transzformci s ellenrzs
Verifikci
2. tervezsi fzis
Transzformci s ellenrzs
Verifikci
Vgs tervezsi fzis
Vissza
115
Szoftver-minsgbiztosts
Vissza
116
Felhasznli
kvetelmnyek
Specifikls
Hardverspecifikls
Szoftverspecifikls
Hardvertervezs
Szoftvertervezs
Hardvermegvalsts
Szoftvermegvalsts
sszeintegrlt
rendszer
Ha a szoftver folyamatt tekintjk, lthatjuk, hogy az a specifikcis fzissal veszi kezdett. Ez transzlland t a szoftvertervbe, majd a terv a
szoftver-implementciba. Mivel a specifikci pontosan definilja, hogy
mit kell teljestenie a programnak, ezrt kivihetnek ltszik egy olyan fajta
fordtprogram ellltsa, amely a specifikcit kzvetlenl forrskdba
alaktja t. Ehhez teht egy olyan kompjlerra van szksg, amely a terve-
Vissza
116
Szoftver-minsgbiztosts
Vissza
117
zsi specifikcit fogadja inputknt. A forrskd alapjn (pldul C nyelven) mr egy norml fordtprogram fogja generlni a megvalstott programot.
Ugyanez az t a hardver esetben is felvzolhat. Ekkor egy hardver
kompjler veszi inputknt a hardver-specifikcit, ebbl ellltja a szksges logikai terveket, a logikai kapcsolsi rajz formjban, ezt kveten a
fizikai terveket, mint pldul a nyomtatott huzalozs krtyk tervt, valamint a logikai elemeket realizl integrlt ramkrk (IC-k) layout-jnak
tervt.
Ismt megjegyezzk, hogy jelenleg mg messze vagyunk a fenti folyamatok teljesen automatizlt megvalststl, jllehet folyamatos fejlesztsi erfesztsek trtnnek ezen cl elrsre. Az itt sszegylt s jl bevlt
eszkzk mindenesetre kitn segtsget tudnak nyjtani a jl felkszlt
tervezmrnkk s szoftverfejlesztk szmra. A hardverben pldul
nagy jelentsgre tett szert az USA Vdelmi Minisztriuma ltal szabvnyostott VHDL nev hardver-ler s szimulcis nyelv (Hardware Description Language). A VHDL egy magas szint nyelv, amely kitnen
alkalmas a hardver logikai s idbeli mkdsi mdjainak definilsra.
Tbb jl bevlt silicon compiler (szilcium kompjler) ltezik mr, amely
az integrlt ramkrk tervt generlja a hardver-tervbl. A szoftverben
egyre inkbb terjedben van pldul az UML (Unified Modeling
Language, egysges modellez nyelv) felhasznlsa. Az UML az objektumorientlt szoftvertervezst tmogatja, grafikus megjelentssel prosulva. Az UML-t magban foglal Rational Rose elnevezs keretrendszer mr
tbb nyelvre, mint pldul C ++, JAVA, kpes forrskdot generlni.
Jllehet a formlis mdszerek alkalmazsa szmos fontos elnnyel jr,
a felhasznls ugyanakkor jelents mrtk megszortsokat is jelent a
tervezsi mdszerekre nzve. Tudvalev, hogy egy lnc erssgt a leggyengbb szeme hatrozza meg, ezrt a formlis bizonytsokat a fejlesztsi folyamat mindegyik llomsnl el kell vgezni annak rdekben, hogy a
maximlis hasznunk szrmazzon ebbl. Mindez komoly kihatssal van a
projekten bell alkalmazhat tervezsi mdszerekre is. A formlis bizonytsok vgrehajtsa ugyanakkor ersen tmaszkodik a matematikai technikkra, amitl sok mrnk idegenkedik. Ennek a gondnak a cskkentse
tovbbkpz tanfolyamok megtartst kveteli meg.
Vissza
117
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
118
6. Objektum-orientlt
szoftvertesztels
Alapvet krds objektum-orientlt (OO) rendszerek tesztelsvel kapcsolatban, hogy lehet-e alkalmazni OO rendszerek vizsglatakor a nem OO
rendszerek tesztelsre hasznlt mdszereket. Termszetes vlasz lehet a
krdsre, hogy mirt ne lehetne, hiszen az OO programozsi paradigma is
a procedurlis nyelvek tovbbfejlesztseknt szletett meg. A C++ nyelv
pldul a C nyelv kiterjesztse, ugyan ma mr nem felttlenl generlhat
minden C++ kddal ekvivalens C kd, mint a nyelv kialakulsakor, azonban a nyelv megtartotta az alapvet utasts kszlett, csak jelentsen kiterjesztette azt.
A problmt egy kicsit kzelebbrl megvizsglva azonban sokkal bonyolultabb a kp. Egyazon szoftver problmnak OO, ill. nem OO krnyezetben trtnt megoldsa egymstl lnyegesen klnbzhet struktrjban s egyb tesztelhetsg szempontjbl fontos jellemzjben.
Ezek a klnbsgek egyrszt az OO tervezsi metodikbl, msrszt a
hasznlt OO nyelv (krnyezet) sajtossgaibl kvetkezhetnek.
A kvetkez fejezetben elszr rviden sszefoglaljuk, az OO rendszerek tesztelsi szempontbl fontos jellemzit. Bemutatjuk, hogy a nem
OO rendszerek tesztelshez hasznlt mdszerek OO rendszerek tesztelsre trtn alkalmazsakor milyen problmkkal kell szembenzni. Ezutn ismertetjk azokat a technikkat, amelyek segtsgvel megoldhatjuk
az ismertetett problmkat.
6.1. Az OO rendszerek jellemzi tesztelhetsgi
szempontbl
Az OO tpus tervezsnek, problmamegoldsnak kt olyan jellemzje
van, mely problmk forrsa lehet tesztelskor:
Problmk sztdarabolsa.
Adatrejts.
A OO krnyezetek sajtossga, hogy lehetsget ad a problmk sztdarabolsra, s a rszproblmk hierarchikus megoldsra. A OO tervezs
egyik alapideolgija, hogy igyekezznk a megoldand feladat elemzsvel
azt olyan kisebb egysgekre, rszfeladatokra osztani, amelyeket mr kny-
Vissza
118
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
119
nyebben meg lehet oldani. Ennek eredmnye ltalban, hogy az OO rendszerek nagyszm, egymssal aktvan kapcsolatban lev, egyttmkd
komponensekbl llnak. A tesztelt rendszer ilyen jelleg felptse elssorban az izolcis (elhatrolsos) tesztels esetn lehet kedveztlen.
Az OO programozs msik jellemzje a komponensek jl definilt interfszen keresztl trtn elrse, s ezzel prhuzamosan a nem publikus
adatok s funkcik elrejtse. Az adatok s fggvnyek elrejtse a tesztels
sorn igen sok gondot okozhat, ha a szoftvernk mkdst meg szeretnnk figyelni, ill. irnytani szeretnnk, egy adott mkdsi llapotba szeretnnk juttatni.
A problmk tovbbi forrsai lehetnek nyelvi sajtsgok. Ilyen pl. a
C++-ban hasznlatos virtulis fggvnyek. Egy adott objektum osztly
virtulis fggvnyeit a leszrmaztatott osztlyban fll lehet definilni. Ha
egy flldefinilt virtulis fggvnyt hvok meg a szl osztlyra mutat
pointeren keresztl, akkor az adott pointer tpustl (ellettl) fggen
a szl osztly, vagy valamelyik gyermek osztly fggvnye fog tnylegesen meghvdni. Logikailag ezt gy tekinthetjk, mintha az adott helyen
egy specilis elgazs utasts lenne, mely a pointer tpustl fggen
klnbz vezrlsi gat, klnbz fggvnyt vlaszt. Az ilyen kdba
rejtett, implicit elgazsok kezelse igen nehz tesztels sorn.
Mindenkppen szt kell ejteni arrl, hogy az OO paradigmban szles
kren hasznlt polimorfizmus (egyazon kd hasznlati krnyezettl fgg rtelmezse) milyen hatssal van a tesztelsre. A fenti plda, a C++
virtulis fggvnyek kezelse is polimorfizmus, de sokkal egyszerbb pldkat is mondhatunk polimorfizmusra: template-ek hasznlata, azonos
nev fggvnyek paramterlisttl fgg meghvsa, szl osztlyban definilt fggvnyek flldefinilsa, ill. hasznlata. Ezek a nyelvi lehetsgek elssorban a tesztels alapossgnak mrsekor (lefedettsgi analzis)
okozhatnak problmt. A tesztels alapossgnak jellemzsekor a tesztel
rendszerek ltalban strukturlis mrtkszmokat (utasts lefedettsg, t
lefedettsg stb.) hasznlnak.
OO kd esetn ezeknek a mrtkszmoknak a kzvetlen hasznlata
igen megtveszt lehet. Vegynk egy nagyon egyszer pldt. Egy G
(gyermek) osztly egy S (szl) osztlybl szrmazik. Ttelezzk fel, hogy
van az S osztlynak egy F fggvnye, amit G nem definil fell. Ha G
osztlyt teszteljk, termszetesen teszteljk az F fggvnyt is, melynek
kdja az S osztlyban van definilva. Ha az S osztly kd lefedettsgt
vizsgljuk, akkor a G osztly tesztelse utn az S osztlybeli F fggvny
Vissza
119
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
120
Vissza
120
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
121
Vissza
121
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
122
Vissza
122
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
123
A fenti kittelek sajnos nagyon ltalnosak, s ami rosszabb, az OO programozs eszkztrt lnyegesen korltozzk. Az esetek nagy tbbsgben
a szablyok betartsa a kd hatkonysgnak cskkenshez, az OO tervezs elnyeinek elvesztshez vezetne. Ezrt a fenti szablyok betartsnak realitsa megkrdjelezhet.
A fenti ltalnos szablyoknl gyakorlati szempontbl gretesebb lehetsg az Absztrakt Bzis Osztlyok (ABO: Abstract Base Classes) hasznlata. Ennek a tesztelhetre tervezsi techniknak a lnyege, hogy az osztlyok interfszt egy kln osztlyban valstjk meg absztrakt (fggvnytrzs nlkli virtulis) fggvnyekknt. Ekkor ugyan a rendszerben lev
osztlyok szma megn, azonban knnyebben lehet az egyes osztlyokat
egymstl elhatrolni, s alkalmazni az izolcis technikt.
6.4.2. Wrapper osztlyok hasznlata
Vissza
123
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
124
Class A
public
Class B
fggvny hvs
public
return
private
private
Wrapper Class B
Class A
Class B
public
public
return
private
private
Teszt
dokumentci
Vissza
124
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
125
Tesztelskor egyes osztlyok, ill. az osztlyokat megtestest objektumok mkdst egy-egy llapot automatval, ill. annak mkdst reprezentl llapottmenet diagrammal rjuk le. A tesztelt szoftver rendszer
reprezentcija a hozz tartoz objektumokat ler automatk halmaza lesz.
Az egyes objektumokhoz tartoz automatk kapcsolatt, a teljes rendszer mkdst egy rendszer szint llapot automatval rhatjuk le. Az
globlis rendszer a kls hatsokra, a bemenetekre ad vlaszokat. A bemeneteket a rendszer szint automata fogadja, s tovbbtja az egyes objektumok, vagyis az ket reprezentl automatk fel. Az egsz rendszer
gy esemnyvezrelten mkdik, a bemenetek hatsa vgig szalad az egsz
rendszeren.
kls esemny
vlasz
szl
receptor
emitter
Ltezik llapot-tmeneti diagram alapjn trtn tesztelst tmogat rendszer, melyben egyszeren definilhatak az automatk, s kvethet a
rendszer mkdse.
6.5. Mrtkszmok hasznlata
Mint mr emltettk, a strukturlis mrszmok hasznlata OO rendszerek tesztelse esetn torz mrsi eredmnyt eredmnyezhet. Ennek a
problmnak megoldsra egyrszt definiltak specilisan OO rendszerek
tesztelsnek alapossgt jl jellemz mrszmokat, msrszt kidolgoz-
Vissza
125
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
126
tk egy a strukturlis mrszmok szmolsnak OO rendszerek tesztelsekor hasznlhat mdszert. Ezeket a szrmaztatott mrtkszmokat
nevezzk krnyezetfgg mrtkszmoknak.
Elssorban OO szoftvertesztelshez definilt mrtkszmok:
Belpsi pont lefedettsg Entry point coverage.
Klcsns hvs lefedettsg Call-pair coverage.
Krnyezetfgg mrtkszmok:
rklsfgg lefedettsg Inheritance context coverage
llapotfgg lefedettsg State based context coverage
Szlfgg lefedettsg Thread based context coverage
6.5.1. Belpsi pont fedettsg Entry point coverage
Objektum-orientlt rendszerek elssorban integrcis funkcionlis tesztelsnl hasznlt mrszm. Azt mutatja meg, hogy egy adott objektum
publikus interfszben definilt fggvnyek mekkora hnyadt hvtuk meg
a tesztels folyamn. A mrtkszm elnye, hogy alkalmas az esetlegesen
nem megvalstott, gy nem felhvhat fggvnyek feldertsre.
6.5.2. Klcsns hvslefedettsg Call-pair coverage
A strukturlis mrtkszmok OO krnyezetben, mint lttuk, nem szolgltatnak megfelel tmpontot a tesztels alapossgra vonatkozan. A f
problma abbl addik, hogy a kd jrahasznlsa, ill. a polimorfizmus
miatt egy adott kdrszlet (adott FVG-beli g, csompont, t stb.) a program klnbz helyeirl, klnbz (program) krnyezetbl meghvhat.
A meghvott kd mkdse fgghet a meghvsi (aktivizlsi) krnyezettl, gy az alapos tesztelshez hozztartozik az adott kdrszlet minden
lehetsges krnyezetbl trtn meghvsa, tesztelse.
A krnyezetfgg mrtkszmok pontosan ezt oldjk meg. Minden
hagyomnyos strukturlis mrtkszmbl szrmaztathatunk krnyezet
Vissza
126
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
127
Vissza
127
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
128
tesztelend forrskd, a teszt script s a Cantata++ Test Harness fordtsval, ill. linkelsvel keletkez futtathat program, mely futtatva egy
teszteredmny fjlt hoz ltre. Az gy keletkezett program lehetv teszi a
teszt futtatst, dokumentlst s megismtlst. A Cantata++ teszt
scriptek C++ nyelven rdnak s tulajdonkppen egy main fggvnybl
llnak, ami vgrehajtja a tesztelend szoftveregysget. Egy SM Tool
nev egysg lehetv teszi, hogy a Test Harness s ezen az interfszen
keresztl a teszt script hozzfrhessen a tesztelend egysg implementcija ltal elzrt olyan rszletekhez, mint adat elemek s ms egysgek fel
irnyul interfszek. Ez az egysg vgzi a forrskd bemszerezst, mely
C++ friend deklarcik s wrapping formjban jelentkezik. A csonkok
(stub) rsa a felhasznlra marad, de megadhat, hogy tesztelskor az
egyes meghvsokkor milyen visszatrsi rtkei legyenek a szimullt fggvnynek. A teszt scriptekben ellenrizhetk az adatelemek rtkei ill. ellenrizhetk azok az adatterletek melyek rtkeinek nem szabad vltozniuk a teszt futsa alatt. A Cantata lehetv teszi hogy mrjnk klnbz
vgrehajtsi idket s sszehasonltsuk ket meghatrozott kvetelmnyekkel. A Cantata++ biztost eszkzket arra, hogy a leszrmaztatott
osztlyok tesztelsre teszteket szrmaztassunk le az alap osztly tesztjeibl (parallel inheritance hierachy). A bemszerezs elltja a kdot teszt
lefedettsgi metrikk meghatrozshoz szksges adatgyjt rszekkel. A
kvetkez lefedettsgi metrikk mrhetk: statement coverage, decision
coverage, boolean expression coverage, call-pair coverage, call coverage,
modified condition coverage. A Cantata rendelkezik egy statikus analiztorral is, mely kd metrikk meghatrozsra alkalmas, pl. a Halstead-fle
szoftver metrikk, a McCabe-fle ciklomatikus metrikk, nyelvi konstrukcik szma sorok szma, megjegyzsek, fggvny paramterek stb.
Meghatrozhatk klnbz objektum orientlt szoftver metrikk is, pl.
Chidamber s Kremerer metrikk, osztly entrpia metrikk stb.
6.6.2. SGI Tester
A Tester az sgi ProDev debugger-csomag dinamikus teszt lefedettsg analzis eszkze. A Tester nem biztost egy komplett tesztvgrehajt krnyezetet, csupn a vgrehajthat kd specilis bemszerezsre szolgl, teszt
lefedettsgi adatok gyjtsre, s lehetv teszi ezen adatok grafikus felleten val elemzst. C, C++ s Fortran programokhoz hasznlhat. A
folyamat a kvetkez: a felhasznl definilja, hogy milyen kd moduloknl milyen jelleg lefedettsgi adatokat kell gyjteni. A rendszer ez alapjn
Vissza
128
Szoftver-minsgbiztosts
Objektum-orientlt szoftvertesztels
Vissza
129
Vissza
129
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Felhasznlt irodalom
Vissza
130
Felhasznlt irodalom
Alka Jarvis, Vern Crandall: Inroads to Software Quality. Prentice-Hall, Inc.,
USA, 1997.
sten Oskarsson, Robert L. Glass: An ISO-9000 Approach to Building
Quality Software. Prentice-Hall, Inc., USA, 1996.
IEC-1025: International Standard: Fault Tree Anlysis (FTA), Geneva,
International Electrotechnical Commission, 1990.
IEC-65A Secretariat 122: Software for Computers in the Application of
Industrial Safety-Related Systems, Draft Document, Geneva,
International Electrotechnical Commission, 1991.
IEC-1508: Draft International Standard: Functional Safety: Safety-Related
Systems, Geneva, International Electrotechnical Commission, 1995.
European Standard EN-50128, Final Draft, Railway Applications: Software for Railway Control and Protection Systems, CENELEC:
European Committee for Electrotechnical Standardization, 1997.
European Standard EN-50129, Draft, Railway Applications: Standard for
Acceptance and Certification of Safety-Oriented Electronic Systems in
Railway Control, CENELEC: European Committee for Electrotechnical Standardization, 1995.
Ian Sommerville: Software Engineering. Sixth Edition, Addison-Wesley
Publishing Company, Inc., USA, 2001.
Roger S. Pressman: Software Engineering. McGraw-Hill Book Company,
USA, 1997.
David E. Avison, Hanifa U. Shah: The Information Systems Development
Lifecycle: A First Course in Information Systems. McGraw-Hill Book
Company, Great Britain, 1997.
Glenford J. Myers: The Art of Software Testing. John Wiley & Sons, Inc.,
New York, 1979.
B. Chandrasekaran, S. Radicchi (Editors): Computer Program Testing. NorthHolland Publishing Company, Amsterdam, 1981.
Cem Kaner, Jack Falk, Hung Quoc Nguyen: Testing Computer Software. Van
Nostrand Reinhold, Inc., New York, 1993.
Boris Beizer: Black-Box Testing, Techniques for Functional Testing of Software and
Systems. John Wiley & Sons, Inc., New York, 1995.
Software Testing, IPL Information Processing Ltd., Bath, United Kingdom,
1996.
Vissza
130
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Felhasznlt irodalom
Vissza
131
Vissza
131
Szoftver-minsgbiztosts
A dokumentum hasznlata | Tartalomjegyzk | Felhasznlt irodalom
Felhasznlt irodalom
Vissza
132
Vissza
132