Dobici:
- Sposobnost transformacije zahtjeva i kriterija prihvaćanja u sveobuhvatne ispitne slučajeve s tehnikama kao što su klase ekvivalencije, analiza graničnih vrijednosti i tablice odlučivanja, uz podršku umjetne inteligencije
- Sposobnost izrade pozitivnih, negativnih i rubnih scenarija odvojeno te dovršavanje rubnih slučajeva koje je umjetna inteligencija propustila informacijama o proizvodu
- Sposobnost uspostavljanja sljedivosti i eliminiranja praznina u pokrivenosti i nepotrebnog nadimanja povezivanjem testnih slučajeva s kriterijima prihvaćanja
Posao testera često počinje s ovom praznom pločom: on ima zahtjev ("korisnik mora moći poništiti svoju lozinku") i ovu jednu rečenicu treba pretvoriti u desetke konkretnih provjera koje će dokazati da softver stvarno radi ispravno. Ova se transformacija naziva dizajn testa. Ključno je znati razliku između testnog scenarija — cilja visoke razine koji opisuje što testirati, kao što je "nevažeću lozinku treba odbaciti" — i testnog slučaja — izvršne jedinice koja detaljno opisuje taj scenarij s konkretnim koracima, unosom i očekivanim ishodom. Umjetna inteligencija (AI) ubrzava upravo ovaj trenutak prazne stranice: pretvarajući jedan zahtjev u desetke nacrta scenarija u sekundi. Ali zapamtite — AI replicira situacije kojih se možete sjetiti; Svojim znanjem o proizvodu birate koje su situacije doista važne.
U ovoj jedinici naučit ćete korak po korak kako pretvoriti zahtjev u sveobuhvatan, ali nesmetan testni paket s podrškom za umjetnu inteligenciju.
Korak po korak: od zahtjeva do skupa testova
Korak 1 — Pojasnite zahtjev. Prikupite kriterije prihvaćanja (uvjete koje posao mora ispuniti da bi se smatrao "obavljenim") prije nego što AI-u date neobrađeni zahtjev. "Lozinka mora biti resetirana" nije dovoljno; Pravila kao što su "veza za ponovno postavljanje vrijedi 30 minuta", "ista lozinka ne može se ponovno koristiti" izvor su pravog testa.
Korak 2 — Implementirajte tehnike testiranja. Nemojte samo reći "napišite skriptu" o umjetnoj inteligenciji; Zatražite klasične tehnike dizajna testa po imenu:
- Klase ekvivalencije (podjela ekvivalencije): Dijeljenje inputa u skupine za koje se očekuje da će proizvesti isto ponašanje. Na primjer, za polje dobi, "važeći raspon", "premalo" i "preveliko" su klase; Dovoljno je testirati jedan primjer iz svakog razreda.
- Analiza graničnih vrijednosti: Ispitivanje graničnih vrijednosti na temelju činjenice da se greške najčešće javljaju na granicama. To je kao da testirate 17, 18, 19 odvojeno za dobnu granicu od 18 godina.
- Tablica odluka: Tabelarni prikaz kombinacija više uvjeta i očekivanog ishoda svake kombinacije.
- Prijelaz stanja: Testiranje prijelaza sustava iz stanja u stanje (na primjer, narudžba: stvoreno → plaćeno → otpremljeno) i nevažeći prijelazi.
Korak 3 — Odvojite pozitivna, negativna i rubna stanja. Zatražite pozitivan test (očekivani rezultat s točnim unosom), negativan test (pravilna pogreška s nevažećim unosom) i rubni slučaj — granični ili neuobičajeni slučajevi. AI općenito naglašava pozitivno; Negativni i rubni slučajevi su nepotpuni osim ako ih izričito ne zatražite.
Korak 4 — Odredite prioritete i obrežite. AI može generirati 60 scenarija; Nisu svi jednake vrijednosti. Dajte prioritet onima s visokim rizikom (novac, sigurnost, gubitak podataka) i kombinirajte one koji su duplikati.
Savjet: Pošaljite poseban zahtjev AI-u govoreći "generirajte 5 nezamislivih rubnih slučajeva iz ovog zahtjeva". Najvrjedniji doprinos umjetne inteligencije je to što vas često podsjeća na izvanredne situacije koje ste previdjeli.
Slab upit / Jak upit
Slabo: "Napišite testne slučajeve za ponovno postavljanje lozinke."
Jako: "Generirajte testne slučajeve za značajku 'poništavanje zaporke' sa sljedećim kriterijima prihvatljivosti: veza vrijedi 30 minuta, jednokratna upotreba, posljednje 3 lozinke ne mogu se ponovno upotrijebiti, račun zaključan na 15 minuta nakon 5 netočnih pokušaja. Primijenite klase ekvivalencije i analizu graničnih vrijednosti. Navedite pozitivne, negativne i rubne slučajeve u zasebnim naslovima. Za svaki slučaj: ID, preduvjet, koraci, podaci testa, očekivani rezultat, povezani rezultat kriteriji prihvaćanja. Istaknite scenarije sigurnosti/zaključavanja.
Snažan brz; Daje pravila, tehnike, izlazni format i redoslijed prioriteta. Stoga umjetna inteligencija proizvodi izvršne i sljedive testne slučajeve, a ne dekorativne.
Izlazni format testnog slučaja
Zatražite strukturirani format koji se može uvesti izravno u alat za upravljanje testiranjem vašeg tima (npr. TestRail, Zephyr, Xray). Sljedeća tablica prikazuje komponente dobrog testnog slučaja:
područje
Opis
primjer
ID
jedinstveni ID
TC-PWD-014
Naslov
kratka svrha
Link koji je istekao bit će odbijen
preduvjet
Uvjet je potreban prije testiranja
Veza za poništavanje generirana je prije 31 minutu
korake
Sekvencijalne akcije
1. Kliknite na poveznicu 2. Unesite novu lozinku
podaci o ispitivanju
Korištene konkretne vrijednosti
stari link, nova lozinka "Abc!2345"
očekivani rezultat
Ponašanje koje treba provjeriti
Pogreška "Veza je istekla", lozinka se ne mijenja
Kriteriji prihvaćanja
veza sljedivosti
AK-3: veza vrijedi 30 minuta
prioritet
Razina rizika
visoka
Četiri predloška za kopiranje
1) Izrada scenarija na tehničkoj osnovi:
Vaša uloga: viši dizajner testa. Generirajte testne slučajeve za značajku: [značajke i kriteriji prihvaćanja]. Primijenite: klase ekvivalencije, analizu prijelomnih točaka, tablicu odlučivanja. Omogućite izlaz u 3 grupe: pozitivni / negativni / rubni slučaj. Svaki slučaj: ID, preduvjet, koraci, testni podaci, očekivani rezultat, povezani kriteriji prihvaćanja, prioritet (visoki/srednji/niski).
2) Lovac na rubne slučajeve:
Navedite 10 obično zanemarenih rubnih slučajeva za sljedeću značajku: [značajka]. Napišite u jednoj rečenici zašto je to riskantno za svakoga. Razmislite o osima kao što su prazno/nulto, unos predugačak, paralelnost, vremensko ograničenje, pogreške formata, Unicode/emoji, negativno/nula, prekid mreže.
3) Proizvodnja tablice odluka:
Stvorite tablicu odluka za sljedeće poslovno pravilo: [rules].Stupci: kombinacije uvjeta; redovi: svaki uvjet i očekivana radnja. Označite nedostižne ili proturječne kombinacije. Zatim predložite test slučaj za svaku kombinaciju.
4) Kontrola sljedivosti:
Uzimajući u obzir sljedeći popis kriterija prihvatljivosti i sljedeće ispitne slučajeve: [kriteriji] / [slučajevi]. Prikažite u tabličnom obliku koje kriterije prihvatljivosti zadovoljava NIJEDAN testni slučaj (jaz u pokrivenosti), a koje slučajeve ne zadovoljava niti jedan kriterij (suvišan slučaj).
tri mini kućišta
Slučaj 1 — Vrijednost rubnih stanja. Stručnjak iz fintech tima napisao je 18 skripti za značajku prijenosa novca. Primijenio je predložak "edge case hunter" na AI; AI je podsjetio na situaciju "istovremenog prijenosa istog stanja s dva uređaja" (concurrency). Kada je ovaj scenarij testiran, ranjivost dvostruke potrošnje je pronađena i zatvorena prije pokretanja. Jedna rubna situacija spriječila je potencijalni gubitak od šest znamenki.
Slučaj 2 — Obrezivanje ispupčenja. Tim je vještačkoj inteligenciji izradio skriptu za obrazac za članstvo i prošla su 74 slučaja. Pokretanje predloška sljedivosti otkrilo je da su 74 slučaja zadovoljila samo 9 kriterija prihvaćanja, a mnogi su ponovno testirali istu klasu ekvivalencije. Skup je smanjen sa 74 na 23 značajna slučaja; vrijeme rada smanjilo se za 68%, pokrivenost se nije smanjila.
Slučaj 3 — Pogrešna pretpostavka. AI je predložio testiranje nevažećih datuma poput "31. veljače" za polje datuma, ali nije znao da je komponenta kalendara koju je tim koristio već blokirala to. Stručnjak je eliminirao 4 od 6 scenarija datuma koje je proizvela umjetna inteligencija kao nepotrebne u kontekstu proizvoda. Mogućnosti generirane umjetnom inteligencijom; napravio odabir informacija o proizvodu.
Uobičajene greške
- Traženje skripte bez navođenja kriterija prihvaćanja. Ne znajući što je istina, AI proizvodi površne scenarije koji često propuštaju pravi rizik.
- Samo se zadovoljiti pozitivnim testovima. Izričito ne želim negativne i rubne slučajeve. Ovdje često leže pogreške.
- Prihvaćanje onoga što je proizvedeno onakvo kakvo jest. Zaboravljajući da AI ne poznaje kontekst proizvoda i ostavljajući nepotrebne ili nemoguće scenarije na setu.
- Zaobilaženje sljedivosti. Nepovezivanje slučajeva s kriterijima prihvaćanja; kao rezultat toga, ne vidi se koji kriterij nije testiran (praznina u pokrivenosti).
- Zabluda o količini. Biti sretan jer je "izašlo 60 scenarija". Vrijednost nije u broju, već u opsegu koji pokriva rizik.
Ukratko
Dizajn testa je prevođenje zahtjeva od jedne rečenice u konkretne, izvršne slučajeve koji dokazuju ispravnost softvera. AI uvelike ubrzava ovu transformaciju: proizvodi sveobuhvatne nacrte kada mu date kriterije prihvaćanja, klasične tehnike testiranja (klase ekvivalencije, prijelomna točka, tablica odlučivanja, prijelaz stanja) i jasan izlazni format. Ali umjetna inteligencija je pristrana prema pozitivnom, ne poznaje kontekst proizvoda i može proizvesti nepotrebno nadutost. Vaš je posao izričito zatražiti negativne i rubne slučajeve, uspostaviti sljedivost, odrediti prioritet prema riziku i smanjiti.
Zadatak aplikacije
Odaberite značajku iz vlastitog projekta i zapišite kriterije prihvaćanja. Neka AI generira testne slučajeve s predloškom "generiranja scenarija temeljenog na tehnici". Zatim primijenite predloške "edge case hunter" i "traceability check". Kao rezultat: (1) dodajte najmanje 3 rubna slučaja koje AI preskače, (2) obrišite slučajeve koji se ne povezuju ni s jednim kriterijem prihvaćanja, (3) napišite nove slučajeve ako postoje neki kriteriji prihvaćanja koji nisu testirani. Ulijte konačni set u proračunsku tablicu.
popis za provjeru
- [ ] Prije nego što sam zatražio skriptu, razjasnio sam kriterije prihvaćanja.
- [ ] Pitao sam YZ za klase ekvivalencije i analizu graničnih vrijednosti po imenu.
- [ ] Odvojeno sam generirao pozitivna, negativna i rubna stanja.
- [ ] Povezao sam svaki testni slučaj s kriterijem prihvaćanja (sljedivost).
- [ ] Provjerio sam prazninu opsega i nepotrebne slučajeve u tablici.
- [ ] Dao sam prioritet prema riziku i podrezao natečenu garnituru.