Grafikus C# – Windows Forms tanfolyam › 13.8 lecke

Windows Forms · 13.8 lecke · tesztelés

Manuális tesztelés és tesztesetek

„Nálam működik” – a legismertebb programozói mondat, és a legnagyobb félreértés. A program akkor jó, ha mások gépén, mások kezében, mindenféle bevitellel is jól működik. A tesztelés célja nem az, hogy bebizonyítsd: nincs hiba (ez nem lehetséges), hanem hogy módszeresen keresd a hibákat, mielőtt a felhasználó találja meg. Ebben a leckében megtanulod a tesztelés fajtáit, azt, hogyan írsz tesztesetet (azonosító, előfeltétel, lépések, elvárt eredmény), hogyan választasz jó teszteseteket (ekvivalencia-osztályok, határérték-elemzés), hogyan írsz hibajelentést, mi a regressziós és a felderítő tesztelés, és mire kell figyelned egy Windows Forms alkalmazásnál.

  • kb. 100 perc
  • közepes szint
  • tesztelés
Anime stílusú kódmentor fiú magyaráz

A lecke végére

  • megkülönbözteted a tesztelés fajtáit (egység, integráció, rendszer, regressziós, felderítő, elfogadási), és tudod, mikor jó a kézi tesztelés;
  • teljes értékű tesztesetet írsz (azonosító, előfeltétel, lépések, elvárt eredmény);
  • ekvivalencia-osztályokkal és határérték-elemzéssel választasz teszteseteket;
  • jó hibajelentést írsz (reprodukálható, egyértelmű, besorolt);
  • regressziós tesztet és felderítő tesztelést végzel;
  • Windows Forms-specifikus ellenőrzőlistával dolgozol (tabulátor, átméretezés, billentyűk, többszöri nyitás).

Mielőtt elkezded

Ehhez a leckéhez a 13.5 lecke (határérték-elemzés), a 13.7 lecke (napló) és a 12.7 lecke (logika külön osztályban, tesztelhetőség) szükséges.

13.7 Diagnosztika és naplózás →

A tesztelés fajtái és célja

FajtaMit vizsgál?Ki és hogyan?
EgységtesztEgy metódus vagy osztály működése (12.7 lecke).A programozó, automatikusan (kód).
Integrációs tesztA részek együttműködése (szolgáltatás + tároló).Programozó, automatikusan vagy kézzel.
Rendszerteszt (kézi)A teljes program a felhasználó szemével: felület, folyamatok.Tesztelő (te vagy más), kézzel, tesztesetek szerint.
Regressziós tesztA javítás vagy bővítés után a régi funkciók még működnek-e.Ismételt tesztek (kézi vagy automatikus).
Felderítő (exploratory)Szabad, kreatív „kutatás”: a tesztelő kipróbál, és közben tanul.Tesztelő, időkerettel és céllal.
Elfogadási tesztMegfelel-e a megrendelő elvárásának?Megrendelő/felhasználó.
Használhatósági tesztÉrthető, kényelmes-e a felület?Valódi felhasználók megfigyelése.
Mire jó a kézi tesztelés?Ahol az automatizálás drága vagy lehetetlen: felület (elrendezés, olvashatóság), folyamatok (egymás utáni lépések), használhatóság, vizuális hibák, és az új funkciók első kipróbálása. Az ismétlődő, számítási részeket jobb automatizálni.
A tesztelés nem bizonyítHa a tesztek nem találtak hibát, az nem bizonyítja, hogy nincs: csak azt, hogy ezek a tesztek nem találtak. Ezért fontos a jó tesztesetek kiválasztása, nem a minél több.
Teljes tesztelés lehetetlenEgy 10 mezős űrlap lehetséges bemeneteinek száma gyakorlatilag végtelen. A cél: a legtöbb hibát a legkevesebb tesztből megtalálni (ezt segítik a technikák, lásd lent).
Más tesztel, mint aki írtaA szerző hajlamos a „szokásos úton” próbálni (vak folt: tudja, hogyan kell használni). Fontos, hogy más is kipróbálja: a barát, a tanár, a felhasználó, mert ők „rosszul” használják.

Jósolj!

A kollégád bevezet egy új funkciót, és kijavít egy hibát. Egy hét múlva a mentés (amit nem is érintett) nem működik. Milyen tesztelés kapta volna el ezt?

Jóslat ellenőrzése

A regressziós tesztelés: minden módosítás után a korábban működő funkciókat újra ellenőrzöd (kézi tesztlistával vagy automatikus tesztekkel). A módosítások gyakran véletlenül elrontanak más részeket.

A teszteset felépítése

Egy tesztesetsablon
Azonosító:       TC-REG-007
Cím: Az életkor alsó határának ellenőrzése (10)
Előfeltétel: A regisztrációs űrlap meg van nyitva, minden más mező érvényesen kitöltve
Tesztadat: Életkor = 10
Lépések: 1. Írd be az Életkor mezőbe: 10
2. Kattints a Mentés gombra
Elvárt eredmény: A mentés sikeres; nincs hibajel az Életkor mező mellett;
az állapotsor: "Mentve."
Tényleges: (a végrehajtás után kitöltendő)
Státusz: Nem futtatva / Sikeres / Hibás / Blokkolt
Megjegyzés: Kapcsolódó hiba: BUG-012 (ha hibás)
Egyértelmű lépésekA lépéseket úgy írd, hogy más is pontosan végre tudja hajtani, ugyanazzal az eredménnyel. „Próbáld ki az életkort” rossz; „írd be: 10, kattints a Mentésre” jó. A tesztadat is szerepeljen: pontos érték, nem „valami érvényes szám”.
Elvárt eredmény: előreAz elvárt eredményt a követelményből vezesd le, még a futtatás előtt (nem a program viselkedéséből: különben a hibát „igazolod”, 12.7 lecke). Legyen konkrét és ellenőrizhető: üzenet szövege, mezőérték, a felület állapota.
Egy teszt, egy célEgy teszteset egy dolgot ellenőrizzen. Ha a teszt elbukik, azonnal tudod, miért. Egy „mindent kipróbáló” teszt hibájánál nem tudod, melyik része bukott el.
Független és ismételhetőA teszt ne függjön egy másik teszt eredményétől, és újra végrehajtva ugyanazt adja (előfeltétel: ismert kiinduló állapot, például tiszta adatbázis).

Jósolj!

Egy teszteset így szól: „Lépés: kattints a Mentésre. Elvárt: működik.” Mi a baj vele?

Jóslat ellenőrzése

Nincs előfeltétel (mi legyen kitöltve?), nincs tesztadat, és az elvárt eredmény nem ellenőrizhető („működik”: mit jelent?). Két tesztelő két különböző dolgot csinálna, és mindkettő „sikeresnek” látná. A jó elvárt eredmény: az állapotsor „Mentve.”, a lista egy új sorral bővült.

Jó tesztesetek kiválasztása: technikák

TechnikaLényegePélda: életkor 10–120
Ekvivalencia-osztályokA bemeneteket csoportokra osztod, amelyeken belül a program ugyanúgy viselkedik; csoportonként 1 teszt elég.Érvényes (10–120): pl. 35. Túl kicsi (<10): pl. 5. Túl nagy (>120): pl. 200. Nem szám: "abc". Üres.
Határérték-elemzésA hibák a határokon élnek: a határ és a két oldala.9, 10, 11 és 119, 120, 121.
Döntési táblaTöbb feltétel kombinációi és az eredményük táblázatban.Kedvezmény: törzsvásárló × 10 000 Ft felett × kupon: 8 kombináció.
ÁllapotátmenetA program állapotai és a köztük lévő átmenetek (melyik gomb mikor aktív).Kölcsönzés: elérhető → kikölcsönzött → késik → visszahozott.
Hibatippelés / tapasztalatA tipikus hibák ismerete alapján.Üres, szóköz, nagyon hosszú, különleges karakter, dupla kattintás, 0, negatív.
Tesztadat-lista az életkor mezőre (13.5 lecke szabálya: egész szám, 10–120)táblázat
Bemenet     Osztály                Elvárt eredmény
--------- -------------------- ----------------------------------------
35 érvényes (tipikus) elfogadva
10 alsó határ elfogadva
120 felső határ elfogadva
9 alsó határ − 1 hiba: "10 és 120 között lehet"
121 felső határ + 1 hiba: "10 és 120 között lehet"
-5 negatív hiba
"" üres hiba: "kötelező"
" " csak szóköz hiba: "kötelező"
"abc" nem szám hiba: "egész szám kell"
"12,5" tizedes hiba: "egész szám kell"
"99999999999" túlcsordulás hiba (nem összeomlás!)
" 15 " szóközök a szám körül elfogadva (Trim) vagy hiba: a szabály döntse el
Miért működik?Ha a program 35-nél jól dolgozik, szinte biztos, hogy 36-nál is: nem kell mindkettőt tesztelni (ekvivalencia). A hibák viszont a határokon sűrűsödnek (< vagy <=), ezért a határokat külön kipróbáljuk.
Érvénytelen osztályok isA kezdők főleg az érvényes bemenetet tesztelik. A hibák többsége az érvénytelennél, a szélsőségesnél és a szokatlannál van: üres, túl hosszú, ékezetes, negatív. A tesztelés „rosszindulatú” gondolkodás: hogyan lehet ezt elrontani?
KombinációkSok mezőnél a kombinációk száma robbanásszerű. Ne próbáld mind: egyszerre egy mezőt változtass (a többi érvényes), és csak a kockázatos kombinációkat próbáld együtt (döntési tábla).
ÁllapotokAz állapotos programoknál (gombok engedélyezése) a tesztek az átmeneteket járják végig: mit lehet tenni mindegyik állapotban, és mit nem (a Mégse gomb tiltott, amikor nincs mit megszakítani).

Jósolj!

Egy mező 1 és 100 közötti pontszámot fogad el. Hány tesztet írnál az ekvivalencia-osztályokkal és a határértékekkel együtt, legalább?

Jóslat ellenőrzése

Kb. 10–12: érvényes tipikus (50), a határok és szomszédaik (0, 1, 2 és 99, 100, 101), üres, nem szám ("abc"), tizedes (1,5), negatív (−1). A 100 lehetséges érték helyett 10–12 jól választott teszt a hibák nagy részét megtalálja.

A hibajelentés

Rossz hibajelentés

Cím:  Nem működik
Leírás: A mentés hibás. Javítsd!

Nem tudni, mi hibás, hogyan hozható elő, mit kellene látni. A fejlesztő nem tudja reprodukálni, és vissza kell kérdeznie.

Jó hibajelentés

BUG-012: A 10 éves korú felhasználó regisztrációja hibával elutasul
Környezet: v1.4.2, Windows 11 (hu-HU), 1920x1080, 125% DPI
Lépések: 1. Töltsd ki az űrlapot érvényes adatokkal
2. Életkor: 10
3. Kattints a Mentés gombra
Elvárt: Sikeres mentés (a határ 10 érvényes)
Tényleges: "Az életkor 10 és 120 között lehet" hibajel
Reprodukál: Mindig (5/5)
Súlyosság: Közepes (a funkció használható, de egy érvényes eset hibás)
Mellékletek: kep-12.png, naplo-20260115.log (09:14:52)
Cím: egy mondatA cím mondja meg, mi a hiba és hol (nem „nem működik”). Egy hibajelentés egy hibáról szóljon (nem három különbözőről).
ReprodukálhatóságA legfontosabb: pontos lépések, tesztadat, környezet (verzió, Windows, kultúra, felbontás). Ha a hiba nem mindig jelentkezik, írd le, hányból hányszor (3/5) és mi a gyanú.
Elvárt és ténylegesMindig mindkettőt írd le: a fejlesztő így érti, miért hiba (az elvárás a követelményből jön).
Súlyosság és prioritásA súlyosság a hiba hatása (kritikus: adatvesztés, összeomlás; súlyos: fő funkció nem működik; közepes: kerülőúttal használható; kicsi: kozmetikai). A prioritás azt mondja meg, mikor javítsák (a két érték eltérhet: egy kozmetikai hiba a főoldalon lehet sürgős).

Jósolj!

A hibajelentés csak annyit mond: „néha lefagy”. Mi a fejlesztő első lépése?

Jóslat ellenőrzése

Visszakérdezni (mikor, mit csinált, melyik gép), vagy a naplót (13.7 lecke) keresni: időt veszít. A jó hibajelentés eleve tartalmazza a lépéseket, a környezetet és a naplót, hogy a fejlesztő azonnal reprodukálhasson. A „néha” sosem elég: legalább az előzmények kellenek.

Windows Forms ellenőrzőlista, regresszió, felderítés

Windows Forms ellenőrzőlista

  • Tabulátor-sorrend: a Tab a logikus sorrendben lép (TabIndex), és minden használható vezérlőt eléri?
  • Billentyűk: Enter (AcceptButton), Esc (CancelButton), gyorsbillentyűk (Alt+betű) működnek?
  • Átméretezés: az ablak kicsinyítve/nagyítva is használható (Anchor, Dock)? Minimális méret?
  • DPI és téma: 125%, 150% nagyításnál sem vágódik le a szöveg? Sötét mód / nagy kontraszt?
  • Többszöri nyitás: a Form kétszer, harmadszor is megnyitva ugyanúgy működik (nem marad régi állapot)?
  • Dupla kattintás: a gomb kétszeri megnyomása nem okoz dupla műveletet?
  • Bezárás: bezárás munka közben, mentetlen változással: rákérdez?
  • Fókusz: hiba után a fókusz a hibás mezőre kerül? Megnyitáskor az első mezőn áll?
  • Hosszú adat: hosszú szöveg, sok sor, nagy lista: nem akad, nem vágódik le?
  • Ékezetek és kultúra: ő, ű, ß, emoji; tizedesvessző (13.5 lecke).

Regressziós és felderítő tesztelés

Smoke teszt (5 perc): a program elindul-e, a fő funkciók (megnyit, ment, bezár) élnek-e. Ha ez elbukik, nincs értelme a részletes tesztnek.

Regressziós készlet: a fontos és a korábban hibás funkciók tesztesetei; minden kiadás előtt végigfuttatod. Minden javított hibához tegyél új tesztesetet: soha ne térjen vissza ugyanaz a hiba.

Felderítő munkamenet: cél (charter: „fedezd fel a keresést ékezetes szövegekkel”), időkeret (30–60 perc), jegyzetelés (mit próbáltam, mit találtam, mi gyanús). Nem összevissza kattintás: tervszerű kutatás, amelyből később tesztesetek lesznek.

Tesztelő gondolkodásNe azt kérdezd, hogyan kell használni, hanem azt: hogyan lehet elrontani? Mi van, ha üres? Ha kétszer? Ha közben bezárom? Ha egy másik program használja a fájlt? Ha a hálózat megszakad?
Tesztadat-kezelésTartsd karban a tesztadatokat (példafájlok, kiinduló adatbázis), hogy a tesztek ismételhetők legyenek. A valós személyes adatot ne használd teszthez.
Dokumentálj, de ne túlzásbaEgy kis projektnél elég egy táblázat (Excel/Google Táblázat) a tesztesetekkel és egy hibalista. A dokumentáció célja: ismételhetőség és átadhatóság, nem a papírmunka.
Teszt a kód részeAmi automatizálható (a logika), azt írd meg tesztkóddal (12.7 lecke); a manuális tesztek a felületre, folyamatokra és a használhatóságra összpontosítsanak.

Jósolj!

Egy beviteli ablak 100%-os DPI-nél tökéletes. Egy másik gépen 150%-os nagyításnál a Mentés gomb szövege félig levágva látszik. Melyik teszt-ellenőrzés tárta volna fel?

Jóslat ellenőrzése

A DPI-ellenőrzés a Windows Forms-listán: a programot 125% és 150% nagyítású beállításon is meg kell nézni (és AutoScaleMode, AutoSize megfelelő használata kell). Ezt a hibát csak másik környezetben, kézi teszteléssel találod meg.

📷 Képernyőkép helye

Mit tegyél ide: a kitöltött tesztterv táblázat egy részlete, és egy hibajelentés a képernyőképpel.Javasolt fájlnév: winforms-13-8-tesztterv.webp · Alt szöveg: A tesztterv és hibajelentés részlete

Hibakeresés: te vagy a hibadetektív

Mi a baj, és hogyan javítod?

Gondold végig az okot, és csak utána nyisd le a megoldást.

1. A tesztelő „sikeresnek” találja a hibás programot

Az elvárt eredményt a program kimenetéből másolták a tesztesetbe.

Ok és javítás

Az elvárt eredménynek a követelményből kell jönnie, még a futtatás előtt, független forrásból (kézi számítás, specifikáció). Különben a hibát „igazolod”.

2. A fejlesztő nem tudja reprodukálni a hibát

„Nálam működik” a válasz a hibajelentésre.

Ok és javítás

A jelentés hiányos: nincs környezet (Windows, kultúra, DPI), nincs tesztadat, nincs pontos lépéssor. Egészítsd ki, és csatold a naplót (13.7 lecke).

3. Csak a szokásos útvonalat tesztelték

A program a bemutatón működik, a felhasználó mégis összeomlasztja.

Ok és javítás

Csak érvényes, tipikus bemenet volt a tesztben. Add hozzá az érvénytelen osztályokat, a határokat, az üreset és a szokatlant (hibatippelés), és kérj meg valakit, aki nem ismeri a programot.

4. A javítás elrontott valami mást

A tegnapi hibajavítás után ma egy másik funkció nem működik.

Ok és javítás

Nincs regressziós teszt. Minden javítás után futtasd a regressziós készletet (smoke teszt + a fontos funkciók), és a javított hibához adj új tesztesetet.

5. Egy teszt mindent ellenőriz

Egy tesztesetben 15 lépés és 8 elvárás van; elbukik, de nem tudni, miért.

Ok és javítás

Bontsd kisebb tesztekre: egy teszt egy cél, így a bukásnál azonnal látszik a hiba oka.

6. A tesztadat elfogyott

Másodszorra a teszt már nem ugyanazt az eredményt adja, mert a program megváltoztatta az adatokat.

Ok és javítás

Nincs ismert kiinduló állapot (előfeltétel). Minden teszt előtt állítsd vissza a tesztadatot (másolat a kiinduló fájlról, tiszta adatbázis).

Mini projekt: tesztterv és hibajelentések egy hibás programhoz

Kapsz egy kis programot szándékosan elrejtett hibákkal. Feladatod: módszeresen tesztelni, tesztesetekkel dokumentálni, és hibajelentéseket írni:

  1. Építsd meg a tesztalanyt: Windows Forms projekt (Pontszamito): txtNev, nudPont (NumericUpDown, 0–100), btnSzamol (Jegy kiszámítása), btnTorol, lblJegy, lstEredmenyek (a korábbi számítások listája); a kódot (lent) másold be.
  2. Követelmény: jegy a pontból: 0–39 → 1; 40–54 → 2; 55–69 → 3; 70–84 → 4; 85–100 → 5. A név kötelező (2–30 karakter). A Jegy kiszámítása hozzáad egy sort az eredménylistához (Anna: 78 pont → 4). Enter = számítás. A Törlés üríti a listát és a mezőket.
  3. Tesztterv: táblázatban (Excel vagy Google Táblázat), legalább 20 tesztesetet írj: azonosító, cím, előfeltétel, tesztadat, lépések, elvárt eredmény, tényleges eredmény, státusz. Használj ekvivalencia-osztályokat és határérték-elemzést (minden jegyhatárra: 39/40, 54/55, 69/70, 84/85, és a 0, 100).
  4. Név-tesztek: üres, szóköz, 1 karakter, 2 (határ), 30 (határ), 31, ékezetes, emoji, nagyon hosszú.
  5. Felület-tesztek (Forms-ellenőrzőlista): Tab-sorrend, Enter, dupla kattintás a gombon, átméretezés, 125%/150% DPI, többszöri számítás, törlés után újraszámítás.
  6. Végrehajtás: futtasd a teszteseteket; töltsd ki a tényleges és a státusz oszlopot.
  7. Hibajelentések: legalább 5 hibát írj le a mintaformátum szerint (cím, környezet, lépések, elvárt, tényleges, reprodukálhatóság, súlyosság, melléklet).
  8. Felderítő munkamenet: 20 perc szabad kutatás egy charterrel („fedezd fel a nevek kezelését szokatlan karakterekkel”); jegyzet: mit próbáltál, mit találtál.
  9. Regressziós készlet: a hibák javítása után válassz ki 8 tesztesetet (a javított hibákat és a fő funkciókat), futtasd újra, és igazold, hogy a javítás nem rontott el mást.
A tesztalany hibás kódja és a rejtett hibák (próbáld ki előbb önállóan!)
Form1.cs (HIBÁKKAL)C#
private int Jegy(int pont)
{
if (pont >= 85) { return 5; }
else if (pont >= 70) { return 4; }
else if (pont > 55) { return 3; } // a 55 pontot kihagyja
else if (pont >= 40) { return 2; }
else { return 1; }
}

private void btnSzamol_Click(object sender, EventArgs e)
{
string nev = txtNev.Text; // nincs Trim, nincs ellenőrzés
int pont = (int)nudPont.Value;
int jegy = Jegy(pont);

lblJegy.Text = "Jegy: " + jegy;
lstEredmenyek.Items.Add(nev + ": " + pont + " pont → " + jegy); // dupla kattintásra kétszer is hozzáadja
}

private void btnTorol_Click(object sender, EventArgs e)
{
lstEredmenyek.Items.Clear();
txtNev.Clear();
// a lblJegy marad (régi jegy látszik), a nudPont nem áll vissza
}

A rejtett hibák (ellenőrzéshez, csak a tesztelés után nézd meg): (1) a 55 pont jegye 2 helyett 3 kell legyen (határérték: > 55); (2) üres vagy csak szóközt tartalmazó név elfogadva; (3) nincs hosszkorlát és Trim a névnél; (4) a gomb dupla kattintására kétszer kerül a listába ugyanaz a sor (ha az elvárás: egy); (5) Enter nem számít (nincs AcceptButton); (6) a Törlés után a lblJegy régi értéke látszik; (7) a nudPont a törlés után nem áll vissza; (8) a Tab-sorrend a Designer alapján véletlenszerű lehet. A „tényleges” oszlopot a saját futtatás alapján töltsd ki; előbb a tesztek, aztán ez a lista.

Egy kitöltött minta tesztterv és hibajelentés
Minta tesztterv részlettáblázat
ID      Cím                           Előfeltétel     Tesztadat          Elvárt                         Tényleges    Státusz
TC-01 Tipikus érvényes bemenet Üres lista Anna, 78 Jegy: 4; lista: "Anna: 78 → 4" (kitöltendő)
TC-02 Határ: 55 pont → 3 Üres lista Béla, 55 Jegy: 3 Jegy: 2 HIBÁS (BUG-01)
TC-03 Határ: 54 pont → 2 Üres lista Béla, 54 Jegy: 2 Jegy: 2 Sikeres
TC-04 Határ: 39 pont → 1 Üres lista Cili, 39 Jegy: 1 (kitöltendő)
TC-05 Üres név Üres lista "", 50 Hibaüzenet, nincs új sor Felvéve HIBÁS (BUG-02)
TC-06 Csak szóközök a névben Üres lista " ", 50 Hibaüzenet, nincs új sor Felvéve HIBÁS (BUG-02)
TC-07 Enter a számításhoz Név és pont Enter billentyű Számítás lefut Nem történik semmi HIBÁS (BUG-05)
TC-08 Törlés után tiszta felület Van 1 sor Törlés gomb Lista és Jegy-címke üres Jegy látszik HIBÁS (BUG-06)

BUG-01: A 55 pont jegye 2 (3 kell legyen) | Lépések: Név: Béla, Pont: 55, Jegy kiszámítása | Elvárt: Jegy: 3 | Tényleges: Jegy: 2 | Reprodukál: mindig (3/3) | Súlyosság: Súlyos (hibás eredmény) | Mellékelve: kep-bug01.png
📷 Képernyőkép helye

Mit tegyél ide: a kitöltött tesztterv és a hibajelentések listája.Javasolt fájlnév: winforms-13-8-kesz.webp · Alt szöveg: A kész tesztterv és hibajelentések

Három önálló gyakorlófeladat

Egyszerre csak egyet csinálj: tervezd meg, írd meg, futtasd, ellenőrizd, és csak utána nyisd ki a megoldást.

1. Tesztesetek a jelszóhoz

Egy jelszómező szabálya: 8–20 karakter, legalább egy számjegy. Írj 10 tesztesetet.

Egy lehetséges megoldás

Határok: 7, 8, 20, 21 karakter (számjeggyel); érvénytelen: nincs számjegy, csak számjegy, üres, szóközök, nagyon hosszú; különleges karakterek (ékezet, emoji); a megerősítés eltérő.

2. Döntési tábla

Egy webshop szabálya: ingyenes szállítás, ha a vásárlás > 15 000 Ft vagy a vásárló törzsvásárló. Készíts döntési táblát.

Egy lehetséges megoldás

Két feltétel, négy kombináció (összeg > 15 000: igen/nem × törzsvásárló: igen/nem); eredmény: ingyenes, ingyenes, ingyenes, fizetős (csak mindkettő „nem” esetén fizetős). Plusz határérték: 15 000 és 15 001 Ft.

3. Régi program tesztelése

Válassz egy korábbi projektedet, és végezz 20 perces felderítő tesztelést egy charterrel.

Egy lehetséges megoldás

Charter: „fedezd fel, mi történik hibás fájlokkal”. Jegyzet: mit próbáltál (üres fájl, sérült fájl, nagy fájl, olvasásvédett fájl), mit találtál (összeomlás, érthetetlen üzenet), mi lett belőle (hibajelentés vagy új teszteset).

Gyakorlótár: 6 további feladat

Három szinten gyakorolhatsz: alap, közepes és kihívás. Csak a próbálkozás után nyisd le a megoldást.

Alap szint

1. Mi a teszteset része?

Sorold fel a teszteset elemeit.

Megoldás megnyitása

Azonosító, cím, előfeltétel, tesztadat, lépések, elvárt eredmény, tényleges eredmény, státusz.

2. Regresszió

Mi a regressziós teszt?

Megoldás megnyitása

A módosítás után a régi funkciók újraellenőrzése, hogy a változtatás nem rontott el semmit.

Közepes szint

3. Ekvivalencia

Egy mező 18–65 éves korig fogad el értéket. Add meg az ekvivalencia-osztályokat és a határértékeket.

Megoldás megnyitása

Osztályok: <18, 18–65, >65, nem szám, üres. Határok: 17, 18, 19 és 64, 65, 66.

4. Súlyosság

Sorold be: (a) adatvesztés mentéskor; (b) elírt felirat; (c) a Mégse gomb nem reagál, de az Esc igen.

Megoldás megnyitása

(a) kritikus; (b) kicsi (kozmetikai); (c) közepes (kerülőúttal használható).

Kihívás szint

5. Mi automatizálható?

Melyik teszt automatizálható jól: (a) a jegyhatár-számítás; (b) a felület átméretezése; (c) az érthető hibaüzenet?

Megoldás megnyitása

(a) igen (egységteszt); (b) nehezen (kézi); (c) kézi (használhatóság, ítélet kell).

6. Vak folt

Miért jó, ha más teszteli a programodat?

Megoldás megnyitása

A szerző tudja, hogyan kell használni, ezért a szokásos útvonalat járja; más „rosszul” használja, és olyan hibákat talál, amelyeket a szerző nem.

Gyors önellenőrzés

Válaszolj fejben, és csak utána nyisd le a választ.

1. Mi a tesztelés célja?

Hibákat találni (nem bizonyítani, hogy nincs hiba).

2. Mi az ekvivalencia-osztály?

Bemenetek csoportja, amelyen belül a program ugyanúgy viselkedik: elég egy teszt csoportonként.

3. Miért a határok?

A hibák többsége a határokon van (< vs <=).

4. Mi a jó hibajelentés?

Reprodukálható: cím, környezet, lépések, elvárt és tényleges eredmény, súlyosság, melléklet.

5. Mi a smoke teszt?

Gyors ellenőrzés, hogy a program elindul és a fő funkciók élnek.

6. Mi a felderítő tesztelés?

Szabad, de céllal és időkerettel végzett kutatás, jegyzetelve.

7. Honnan jön az elvárt eredmény?

A követelményből, a futtatás előtt, független forrásból (nem a program kimenetéből).

Mit tudsz már?

  • Ismered a tesztelés fajtáit, és tudod, mikor jó a kézi tesztelés.
  • Tesztesetet írsz, és ekvivalencia-osztályokkal, határértékekkel választasz adatot.
  • Reprodukálható hibajelentést írsz.
  • Regressziós és felderítő tesztelést végzel, és a Windows Forms ellenőrzőlistát használod.

Következő lecke: Erőforrás-kezelés és teljesítmény

A program erőforrás-használata: memória, Dispose, a felület gyorsasága, mérés és optimalizálás.