Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

H IBAKERESÉS, HIBAJAVÍTÁS. H IBAJELENSÉGEK Szintaktikai hiba:  Csak értelmezés esetén fordul elő, hiszen a fordítóprogramok korábban, még a fordítási.

Hasonló előadás


Az előadások a következő témára: "H IBAKERESÉS, HIBAJAVÍTÁS. H IBAJELENSÉGEK Szintaktikai hiba:  Csak értelmezés esetén fordul elő, hiszen a fordítóprogramok korábban, még a fordítási."— Előadás másolata:

1 H IBAKERESÉS, HIBAJAVÍTÁS

2 H IBAJELENSÉGEK Szintaktikai hiba:  Csak értelmezés esetén fordul elő, hiszen a fordítóprogramok korábban, még a fordítási fázisban kijelzik, s nem is készül el a futtatható változat.  A hibajelenség a hibás utasításnál (vagy annak „környékén”) jelentkezik, csak ki kell javítani. Végrehajtási hiba:  Futás során, a fordítóprogram által beépített hibafigyelő által adott hiba (pl. 0-val való osztás).  A leállás sorában szerepel a – rossz érték miatt – hibát okozó változó, s meg kell keresni, hogy hol romlott el az értéke. 2

3 H IBAJELENSÉGEK Nem áll le a program:  Végtelen ciklusra utal.  A program láthatólag semmit nem csinál, mégsem áll le.  Rosszabb, ha valamit tesz is. Ekkor a program külső leállításakor általában meg lehet tudni az aktuálisan végrehajtott utasítást. Innen kiindulva meg kell keresni azt a ciklust, ami nem fejeződik be, majd meg kell találni a „be nem fejeződés” okát.  A jelenség lehet annak következménye is, hogy túl lassú a programunk  hatékonyság. 3

4 H IBAJELENSÉGEK Nem ír ki semmit a program, illetve „részlegesen” ír ki:  Elfelejtettünk valamilyen kiíró utasítást tenni, vagy  rossz helyre írtuk ki az eredményt, vagy  a kiírások olyan ágon szerepelnek, amelyet nem mindig, vagy nem a kellő pillanatban hajtunk végre.  Tenni való: a kiíró utasítások „kibogarászása”, kijavítása, jó helyre tétele. Rosszat ír ki a program:  Hasonló a végrehajtási hibák esetéhez. 4

5 H IBAKERESÉS Akkor kezdődik, ha egy hibajelenséget tapasztalunk. Célja, hogy a hiba helyét megtaláljuk. Alapelvei:  A hibakeresési eszközök használata előtt célszerű alaposan megvizsgálni a programot, és a program logikája alapján megkeresni a hiba okát.  Ha a programban hibát találunk, akkor ennek a program más részére is lehet hatása, azaz elképzelhető, hogy újabb hibákat fogunk találni.  A hibák száma és súlyosságuk általában a program méreténél sokkal gyorsabban növekszik. 5

6 H IBAKERESÉSI MÓDSZEREK Indukciós módszer:  Indukció: abból a tényből, hogy nagy számú „tárgynak” meghatározott tulajdonsága van és közös „nemhez” tartozik, arra következtethetünk, hogy az adott „nemhez” tartozó összes „tárgynak” megvan ez az ismertető jegye.  Kiindulunk a rendelkezésre álló teszteset-eredményekből, majd megpróbáljuk őket rendezni. Azokat a teszteseteket is célszerű megvizsgálni, amelyek nem idézik elő az adott hibát. A rendezett adatokból megpróbálunk valamilyen feltevést tenni a hiba okára vonatkozóan. A legelső feltevés, hogy a program csak azokra az esetekre hibás, amelyeket már kipróbáltunk és rájuk rossz eredményt kaptunk. Ha ezt igazolni tudjuk, akkor következhet a hiba helyének meghatározása, majd a hiba kijavítása. Ellenkező esetben a hibás bemenő adatok körét próbáljuk meg fokozatosan bővíteni, újabb teszteléssel. Igazoljuk az egyre bővülő adathalmazra a program hibás működését mindaddig, amíg csak lehet. Végül eljutunk a bemenő adatoknak ahhoz a halmazához, amelyre a program hibás, s egy másikhoz, amelyre helyes. Ezután meg kell állapítani, hogy a programon átvezető teszt utak mely ágai azok, amelyek a hibás tesztesetnek megfelelnek, s melyek azok, amelyek nem. Azokon a programágakon kell keresni a hibát, amelyek csak a hibás tesztesetekhez tartoznak. 6

7 H IBAKERESÉSI MÓDSZEREK Dedukciós módszer:  Dedukció: abból a tényből, hogy az adott „nemhez” tartozó összes „tárgy” meghatározott ismertetőjeggyel rendelkezik, arra következtethetünk, hogy bizonyos, az adott „nemhez” tartozó „tárgyak” szintén rendelkeznek a szóban forgó ismertetőjeggyel.  A módszer lényege az, hogy egyre szűkíti a hiba lehetséges okainak körét.  A meglévő teszteset eredményekből adódó mindenféle lehetséges okot feltételezni kell az első lépésben, majd ezek közül ki kell küszöbölni azokat, amelyek a részletesebb vizsgálat során nem állják meg a helyüket. Ha egy feltevést teszünk, ugyanúgy igazolnunk kell,mint az előző módszer esetén. Ha nem sikerül, akkor újabb információkat kell gyűjtenünk a hibakereséshez a hibajelenségről. Ha elérkeztünk a hibás adatok köréhez, akkor már ugyanaz a teendő, mint az előző esetben volt. 7

8 H IBAKERESÉSI MÓDSZEREK Visszalépéses technika:  A legismertebb hibakeresési módszer.  Kiindulunk a hiba előfordulásának helyétől, és a programot visszafelé hajtjuk végre mindaddig, míg a végrehajtás eredményét hibásnak találjuk. Teszteléssel segített hibakeresés:  Olyan tesztesetet végzünk el, amely segítségével egy ismert hibát akarunk előidézni a programban.  Ezeknek a teszteseteknek az a jellegzetességük, hogy csak egyetlen feltételt fednek le.  Ezt a módszert általában nem önállóan, hanem az előző három segítésére használják. 8

9 H IBAKERESÉSI ESZKÖZÖK A programozási környezet olyan elemei, amelyek a hiba okának megállapítását, a hiba helyének megkeresését teszik könnyebbé azzal, hogy futás közbeni információt szolgáltatnak a programról. A jó fordítóprogramok rendelkeznek ún. tesztelő üzemmóddal, amelyben a tesztelő utasításokat is bele kell fordítani a célprogramba, normál üzemmódban azonban nem. 9

10 H IBAKERESÉSI ESZKÖZÖK Kiírás:  Adatkiírások elhelyezésére alkalmas. Nyomkövetés:  A végrehajtott utasítások követése a programban. Adat-nyomkövetés:  A változókat vizsgáljuk. Nyomkövetés a hibától visszafelé:  Akkor lép életbe, ha a program futási hibával megszakad. 10

11 H IBAKERESÉSI ESZKÖZÖK Töréspontok elhelyezése:  A töréspontok a program olyan utasításai, amelyeknél a végrehajtásnak meg kell állnia.  A felhasználó információt szerezhet a program állapotáról, majd folytatódhat a végrehajtás.  Leálláskor a felhasználó dönthet a futtatás abbahagyásáról, illetve folytatásáról. Lépésenkénti végrehajtás:  A program minden utasítására egy töréspontot definiál. 11

12 H IBAKERESÉSI ESZKÖZÖK A hiba helyének és okának kijelzése:  Fordítóprogramok általában rendelkeznek olyan lehetőségekkel, hogy a futás közbeni ellenőrzéseket beépítsék a program kódjába, illetve kihagyják belőle.  A kihagyás a már biztosan helyes programnál futási időt csökkentő tényező lehet, ezért érdemes a kész programokat így lefordítani. Állapotellenőrzés:  Hasonlít az előzőre, de a futás közbeni teljes állapotot ellenőrzi.  Alkalmas lehet feltételes töréspontok feltételes kiírásának elhelyezésére a programban. 12

13 T IPIKUS HIBÁK Gépelési hibák. Elágazás szervezési hibák. Ciklusszervezési hibák. Bemeneti adatok hibái. Kimeneti adatok hibái. File-ok hibái. Változókkal kapcsolatos hibák. Kifejezések hibái. Eljárások hibái. Grafikai hibák. 13

14 H IBAJAVÍTÁS Akkor kezdődik, amikor a hibakeresés véget ért. Alapelvei:  A hibát kell kijavítani, nem csak a tüneteit megszüntetni.  Amíg a hiba helyét és okát pontosan nem találtuk meg, addig ne kezdjünk bele a javításba!  A hibajavítás után a programot alapos tesztelésnek kell alávetni.  Annak a valószínűsége, hogy egy hibát jól kijavítottunk, a program méretével arányosan csökken.  A hibajavítás visszanyúlhat a program tervezési fázisába is. 14

15 K ÖSZÖNÖM A FIGYELMET !  15


Letölteni ppt "H IBAKERESÉS, HIBAJAVÍTÁS. H IBAJELENSÉGEK Szintaktikai hiba:  Csak értelmezés esetén fordul elő, hiszen a fordítóprogramok korábban, még a fordítási."

Hasonló előadás


Google Hirdetések