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

Programozási alapismeretek 9. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/302014. 07. 10.2014. 07. 10.2014. 07. 10.  Tesztelés.

Hasonló előadás


Az előadások a következő témára: "Programozási alapismeretek 9. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/302014. 07. 10.2014. 07. 10.2014. 07. 10.  Tesztelés."— Előadás másolata:

1 Programozási alapismeretek 9. előadás

2 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/  Tesztelés – elvek + módszerek Tesztelés  Futtatás adatfájllal – C++ Futtatás adatfájllal  Hibakeresés Hibakeresés  Hibajavítás Hibajavítás  Dokumentálás + szövegszerkesztési minimum Dokumentálás  Programkészítési elvek Programkészítési elvek Tartalom

3 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Tesztelés Tesztelési fogalmak, elvek: 1. Teszteset = bemenet + kimenet 2. Ideális próba: minden hibát kimutat Megbízható próba: nagy valószínűséggel min- den hibát kimutat 3. Jó teszteset: nagy valószínűséggel felfedetlen hibát mutat ki 4. Rossz a meg nem ismételhető teszteset 5. Érvényes és érvénytelen adatokra is kell 6. Minden teszteset maximális kihasználása 7. Csak más tudja jól tesztelni a programot 3/30

4 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Tesztelés Tesztelési módszerek:  Statikus tesztelés: a programszöveget vizs- gáljuk, a program futtatása nélkül.  Dinamikus tesztelés: a programot futtatjuk különböző bemenetekkel és a kapott eredményeket vizsgáljuk. A tesztelés eredménye:  hibajelenséget találtunk;  nem találtunk –még– hibát. 4/30

5 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Statikus tesztelés  Kódellenőrzés: o algoritmus-kód megfeleltetés o algoritmus+kód elmagyarázása másnak  Szintaktikus ellenőrzés: o fordítóprogram vagy értelmező esetén futtatással  Szemantikus ellenőrzés, ellentmondás- keresés: o inicializálatlan változó, érték nélküli fv. o felhasználatlan érték ( i=1;for(i=2;… ) vagy változó o önmagának értékadás ( i=1*i+0 ) 5/30

6 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Statikus tesztelés  Szemantikus ellenőrzés, ellentmondás- keresés (folytatás) : o azonosan igaz elágazás-feltétel ( i>1 || i<100 ) o végtelen számlálós ciklus ( i= ciklusmagban i=1 tán az i+=1 helyett ) o végtelen feltételes ciklus ( i< N feltételű ciklusban sem i, sem N nem vagy „szin- kronban” változik) o konstans értékű, változókat tartalmazó kifejezés ( y=tan(x)–sin(x)/cos(x) ) 6/30

7 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés Tesztelési módszerek:  Fekete doboz módszerek (nincs kimerítő beme- net – nem lehet minden lehetséges bemenet- re kipróbálni): a teszteseteket a program spe- cifikációja alapján választjuk.  Fehér doboz módszerek (nincs kimerítő út – nem lehet minden végrehajtási sorrendre kipróbálni): a teszteseteket a program struk- túrája alapján választjuk. 7/30

8 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés: fekete doboz módszerek  Ekvivalencia-osztályok módszere: a bemeneteket (vagy a kimeneteket) soroljuk olyan osztályokba, amelyekre a program vár- hatóan egyformán működik; ezután osztá- lyonként egy tesztesetet válasszunk!  Határeset elemzés módszere: az ek- vivalencia-osztályok határáról válasszunk tesztesetet! 8/30

9 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés: fekete doboz módszerek  Feladat: Egy N természetes szám valódi (1-től és önmagától különböző) osztója… Ekvivalencia osztályok ( bemenet alapján ): o N prímszám o N-nek egyetlen valódi osztója van o N-nek több, különböző valódi osztója is van o N páros o N nem természetes szám Érvényes adatokra Érvénytelen adatokra 9/30

10 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dinamikus tesztelés: fehér doboz módszerek Kipróbálási stratégiák:  utasítás lefedés: minden utasítást legalább egy- szer hajtsunk végre!  feltétel lefedés: minden feltétel legyen legalább egyszer igaz, illetve hamis!  részfeltétel lefedés: minden részfeltétel legyen legalább egyszer igaz, illetve hamis! Tesztadat-generálás:  automatikus tesztbemenet-előállítás Ezekhez továbbiakat talál itt: vi/PrM1felev/Pdf/PrTea7.p df vi/PrM1felev/Pdf/PrTea7.p df fejezetében vi/PrM1felev/Pdf/PrTea7.p df 10/30

11 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Speciális tesztelések  Funkcióteszt: tud minden funkciót?  Stressz-teszt: gyorsan jönnek a feldol- gozandók,...  Volumen-teszt: sok adat sem zavarja  Biztonsági teszt: ellenőrzések vannak?  Hatékonysági teszt 11/30

12 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Futtatás adatfájllal (C++) Elv: A standard input/output átirányítható fájlba. Ekkor a program fájlt használ az inputhoz és az outputhoz. Következmény: szerkezetileg a kon- zol inputtal/outputtal megegyező kell legyen / lesz a megfelelő fájl. „Technika”: A lefordított kód mögé kell paraméterként írni a megfelelő fájlok nevét. prog.exe outputfájl Nyereség: Kényelmes és adminisztrálható tesztelés. Figyelem! Ha van outputfájl, akkor a kérdés szövege is abban „jelenik meg”. prog.exe >>outputfájl outputfájlhoz írás! 12/30

13 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Futtatás adatfájllal (C++) Demo: 1. Készítsen néhány bemeneti adatot tartalmazó fájlt (a konzol inputnak megfelelő szerkezetben) 2. Futtassa ezekkel az előbb elmondottak szerint: 1. prog.exe 1.ki 2. prog.exe 2.ki 3. … 3. Ellenőrizze a kimeneti fájlok tartalmát: olyan-e, amilyennek várta-e Megjegyzés: tovább egyszerűsítheti a tesztelést, ha egy batch állománnyal automatizálja a 2.-t! Valahogy így: próba…próba Kód jegyzet- ként 13/30

14 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresés Hibajelenségek a tesztelés során…  hibás az eredmény,  futási hiba keletkezett,  nincs eredmény,  részleges eredményt kaptunk,  olyat is kiír, amit nem vártunk,  túl sokat (sokszor) ír,  nem áll le a program,  … 14/30

15 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresés Célja: a felfedett hibajelenség okának megtalálása. Elvek:  Eszközök használata előtt alapos végiggondolás.  Egy megtalált hiba a program más részeiben is okozhat hibát.  A hibák száma, súlyossága a program méretével nemlineárisan ( annál gyorsabban! ) nő.  Egyformán fontos, hogy miért nem csinálja a prog- ram, amit várunk, illetve, hogy miért csinál olyat, amit nem várunk.  Csak akkor javítani, ha megtaláltuk a hibát. 15/30

16 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresés Hibakeresési eszközök:  Memória-, változó-kiírás ( feltételes fordítás )  Nyomkövetés ( hibától visszafelé is )  Adat-nyomkövetés  Állapot-nyomkövetés ( pl. paraméterekre vonat- kozó előfeltételek, ciklus-invariánsok )  Töréspont elhelyezése  Lépésenkénti végrehajtás  A hiba helyének és okának kijelzése  Speciális ellenőrzések ( pl. indexhatár ) 16/30

17 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresési módszerek Célja: bemenetnekmely  A bemenetnek mely része, amire hibásan működik a program?  Hol programban  Hol található a programban a hibát okozó utasítás? Módszerfajták: Indukciós módszer ( hibásak körének bővítése ) Dedukciós módszer ( hibásak körének szűkítése ) Hibakeresés hibától visszafelé Teszteléssel segített hibakeresés ( olyan teszteset kell, amely az ismert hiba helyét fedi fel ) hibásak nem hibásak 17/30

18 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresési módszerek Példa az indukciós módszerre: Feladat: 1 és 99 közötti N szám kiírása betűkkel  Tesztesetek: N=8  jó, N=17  jó, N=30  hibás  Próbáljunk a hibásakból általánosítani: tegyük fel, hogy minden 30-cal kezdődőre rossz!  Ha beláttuk (teszteléssel), akkor próbáljuk tovább általánosítani, pl. tegyük fel, hogy minden 30 felettire rossz!  Ha nem tudjuk tovább általánosítani, akkor tudjuk mit kell keresni a hibás programban.  Ha nem ment az általánosítás, próbáljuk más- képp: hibás-e minden 0-ra végződő számra!  … 18/30 hibásak

19 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibakeresési módszerek Példa a dedukciós módszerre: Feladat: 1 és 99 közötti N szám kiírása betűkkel  Tesztesetek: N=8  jó, N=17  jó, N=30  hibás  Tegyük fel, hogy minden nem jóra hibás!  Próbáljunk a hibás esetek alapján szűkíteni: tegyük fel, hogy a 20-nál kisebbekre jó!  Ha beláttuk (teszteléssel), akkor szűkítsünk tovább, jó-e minden 40-nél többre?  Ha nem szűkíthető tovább, akkor megtalál- tuk, mit kell keresni a hibás programunkban.  Ha nem, szűkítsünk másképp: tegyük fel, hogy jó minden nem 0-ra végződő számra!  … 19/30 nem hibásak

20 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Hibajavítás Célja: a megtalált hiba kijavítása. Elvek:  A hiba kijavítása a program más részében hibát okozhat ( rosszul javítunk, illetve korábban elfedett más hibát ).  A hibát kell javítani és nem a tüneteit.  Javítás után a tesztelés megismételendő!  A jó javítás valószínűsége a program méretével fordítva arányos.  A hibajavítás a tervezési fázisba is visszanyúlhat ( a módszertan célja: lehetőleg ne nyúljon vissza ). 20/30

21 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Dokumentációk Fajtái:  Felhasználói dokumentáció  Fejlesztői dokumentáció  Programismertető  … 21/30

22 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Felhasználói dokumentáció Tartalma:  feladat (összefoglaló és részletes is)  környezetleírás  használat leírása (telepítés, kérdések + lehet- séges válaszok,...)  bemenő adatok, eredmények, szolgáltatások  mintaalkalmazások – példafutások  hibaüzenetek és a hibák lehetséges okai 22/30

23 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Fejlesztői dokumentáció Tartalma:  specifikáció, követelményanalízis  környezetleírás  Adatleírás (feladatparaméterek reprezentálá- sa)  algoritmusok leírása, döntések, más alternatí- vák, érvek, magyarázatok  kód, implementációs szabványok, döntések  tesztesetek  hatékonysági mérések  fejlesztési lehetőségek 23/30

24 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szövegszerkesztési isme- retek a dokumentációhoz  Karakterformázás (szöveg, program)  Bekezdésformázás  Tabulátorok  Képbeillesztés  Oldalformázás  Táblázatok (struktogram, tesztek)  Egyenletszerkesztő 24/30

25 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Programkészítési elvek  Stratégiai elv: a problémamegoldás logikája – a lépésenkénti finomítás.  Taktikai elvek: az algoritmuskészítés gondolati elvei a felülről lefelé kifej- téshez.  Technológiai elvek: algoritmus és kód módszertani kívánalmai.  Technikai elvek: kódolási technika.  Esztétikai, ergonómiai elvek: ember- közelség. 25/30

26 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Stratégiai elv: lépésenkénti finomítás  Felülről–lefelé (top–down) = probléma–dekomponálás, –analizálás.  Alulról–felfelé (bottom–up) = probléma–szintézis. 1. szint 2. szint 3. szint 26/30 Nem alternatívák!

27 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Taktikai elvek  Párhuzamos finomítás  Döntések elhalasztása  Döntések nyilvántartása  Vissza az ősökhöz  Nyílt rendszer felépítés (általánosítás)  Párhuzamos ágak függetlensége  Szintenkénti teljes kifejtés  Adatok elszigetelése 27/30

28 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Technológiai elvek  Struktúrák zárójelezése  Bekezdéses struktúrák  Kevés algoritmusleíró szabály  Értelmes sorokra tördelés  Beszédes azonosítók, kifejező névkon- venciók (pl. Hungarian Notation)Hungarian Notation 28/30

29 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Technikai elvek  Barátságosság  Biztonságosság  Jól olvashatóság 29/30

30 ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás Esztétikai/ergonómiai elvek  Lapokra tagolás, kiemelés, elkülönítés  Menütechnika  Ikontechnika, választás egérrel  Következetesség (beolvasás, kiírás,...)  Hibafigyelés, hibajelzés, javíthatóság  Súgó, tájékoztató  Ablakkezelés  Értelmezési tartomány kijelzése  Naplózás 30/30

31 Programozási alapismeretek 9. előadás vége


Letölteni ppt "Programozási alapismeretek 9. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/302014. 07. 10.2014. 07. 10.2014. 07. 10.  Tesztelés."

Hasonló előadás


Google Hirdetések