8. előadás
Évfolyam ZH:
- Írásbeli: Utolsó jelenléti előadáson (Nov. 30)
- 3-4 feladat
- specifikáció, algoritmusok, visszavezetési táblázat
- Számítógépes: online, januárban
Egymásba ágyazott tételeke
Egy egész számokat tartalmazó mátrixban hány olyan sor van, ami csak páros számokat tartalmaz?
Megszámolásban optimista keresés
Specifikáció
Bemenet: n, m: Egész, x: Tömb(1..n, 1..m: Egész)
Kimenet: db: Egész
Előfeltétel: n = n' és m = m' és x = x'
Utófeltétel:
- Ef és db = \(\sum^n_{\substack{i=1 \\ csakpáros(i)}} 1\)
- csakpáros: Egész -> Logikai és
- csakpáros(i) = \(Mind^m_{j=1} 2 \mid x[i, j]\)
Visszavezetési táblázat
Megszámolás:
- e..u ~ 1..n
- T(i) ~ csakpáros(i)
Optimista keresés:
- i ~ j
- e..u ~ 1..m
- T(i) ~ \(2 \mid x[i, j]\)
Tesztelés
"Tévedni emberi dolog" ~ Seneca "Más szemében meglátja a szálkát, a magáéban a gerendát sem veszi észre" ~ Mt 7,1-12
Célja: Hibás működések kimutatása
Tesztelési fogalmak:
- teszteset = bemenet + kimenet
- próba = teszteset-halmaz
- Jó teszteset: nagy valószínűséggel felfedetlen hibát mutat ki
- Ideális próba: minden hibát kimutat
- Megbízható próba: nagy valószínűséggel minden hibát kimutat
Statikus tesztelés: programszöveget teszteljük, annak lefuttatása nélkül. Pl.: code review, typechecking, linting
Dinamikus tesztelés: programot lefuttatjuk különböző bemenetekkel és leellenőrizzük a kimeneteket
Tesztelési módszerek
Fekete doboz módszerek
- ekvivalencia-osztályok módszere
- érvényes ekvivalencia osztályok és érvénytelen ekvivalencia osztályok
- pl: osztályzatok (1-től 5-ig): \(\{1 \leq i \leq 5\}\), \(\{i < 1\}\), \(\{i > 5\}\)
- osztályonként választunk egy tesztesetet
- érvényes ekvivalencia osztályok és érvénytelen ekvivalencia osztályok
- határeset elemzés módszere
- ha bemeneten értéktartomány jelenik meg, akkor az alsó- és felsőhatár körüli értékeket nézünk meg