Jedinica 2 / 11

Testni scenario i generisanje test slučaja: od zahteva do sveobuhvatne kontrole

Dobici:

  • Sposobnost transformacije zahtjeva i kriterija prihvatljivosti u sveobuhvatne testne slučajeve s tehnikama kao što su klase ekvivalencije, analiza graničnih vrijednosti i tablice odluka, uz podršku umjetne inteligencije
  • Sposobnost izrade pozitivnih, negativnih i krajnjih scenarija odvojeno i dovršavanje rubnih slučajeva koje umjetna inteligencija propusti s informacijama o proizvodu
  • Sposobnost da se uspostavi sljedivost i eliminiše praznine u pokrivenosti i nepotrebno naduvavanje povezivanjem test slučajeva sa kriterijima prihvatljivosti

Posao testera često počinje s ovim praznim listom: on ima zahtjev („korisnik mora biti u mogućnosti da resetuje svoju lozinku“) i treba da pretvori ovu jedinu rečenicu u desetine konkretnih provjera koje će dokazati da softver zaista radi ispravno. Ova transformacija se zove test dizajn. Ključno je znati razliku između testnog scenarija — cilja visokog nivoa koji opisuje šta treba testirati, kao što je „nevažeća lozinka treba odbaciti“ — i testnog slučaja — izvršne jedinice koja detaljno opisuje taj scenario sa konkretnim koracima, unosom i očekivanim ishodom. Umjetna inteligencija (AI) ubrzava upravo ovaj trenutak prazne stranice: pretvara jedan zahtjev u desetine nacrta scenarija u sekundi. Ali zapamtite – AI replicira situacije o kojima se možete sjetiti; Vi birate sa svojim poznavanjem proizvoda koje su situacije zaista važne.

U ovoj jedinici naučit ćete korak po korak kako pretvoriti zahtjev u sveobuhvatan, ali bez nereda test paket s podrškom AI.

Korak po korak: od zahtjeva do testnog skupa

Korak 1 — Pojasnite zahtjev. Prikupite kriterijume prihvatanja (uslove koje posao mora da ispuni da bi se smatrao „odrađenim“) pre nego što AI date sirovi zahtev. "Lozinka se mora resetovati" nije dovoljno; Pravila kao što su "link za resetovanje važi 30 minuta", "ista lozinka se ne može ponovo koristiti" izvor su pravog testa.

Korak 2 — Implementirajte tehnike testiranja. Nemojte samo reći "napišite skriptu" o AI; Zatražite klasične tehnike dizajna testa po imenu:

  • Klase ekvivalencije (ekvivalentno particioniranje): Podjela ulaza u grupe od kojih se očekuje da proizvedu isto ponašanje. Na primjer, za polje starosti, "važeći raspon", "premalo" i "preveliko" su klase; Dovoljno je testirati po jedan primjer iz svake klase.
  • Analiza graničnih vrijednosti: Testiranje vrijednosti praga zasnovano na činjenici da se greške najčešće javljaju na granicama. To je kao da testirate 17, 18, 19 odvojeno za starosnu granicu od 18 godina.
  • Tabela odluka: Tabelarni prikaz kombinacija više uslova i očekivanog ishoda svake kombinacije.
  • Prijelaz stanja: Testiranje prijelaza sistema iz stanja u stanje (na primjer, narudžba: kreirano → plaćeno → isporučeno) i nevažećih prijelaza.

Korak 3 — Odvojite pozitivna, negativna i rubna stanja. Zatražite pozitivan test (očekivani rezultat s ispravnim unosom), negativan test (ispravna greška s nevažećim unosom) i rubni slučaj — granični ili neobični slučajevi. AI generalno naglašava pozitivno; Negativni i rubni slučajevi su nepotpuni osim ako ih izričito ne zatražite.

Korak 4 — Odredite prioritete i orezujte. 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 koji kaže "generirajte 5 nezamislivih rubnih slučajeva iz ovog zahtjeva". Najvredniji doprinos AI je to što vas često podsjeća na izvanredne situacije koje ste previdjeli.

Slaba prompt / Jaka prompt

Slabo: "Napišite testne slučajeve za poništavanje lozinke."
Snažno: "Generirajte testne slučajeve za funkciju 'poništavanje lozinke' sa sljedećim kriterijima prihvatanja: veza vrijedi 30 minuta, jednokratna upotreba, posljednje 3 lozinke se ne mogu ponovo koristiti, račun zaključan 15 minuta nakon 5 pogrešnih pokušaja. Primijenite ekvivalentne klase i analizu graničnih vrijednosti. Navedite pozitivne, negativne slučajeve i slučajeve prethodnog slučaja za svaki slučaj u odvojenim zaglavljima, očekivani koraci testa, zaglavlja ID-a. Kriterijumi prihvatanja Istaknite sigurnosne/zaključane scenarije.

Snažan prompt; Daje pravila, tehnike, izlazni format i redosled prioriteta. Dakle, AI proizvodi izvršne i sljedljive testne slučajeve, a ne dekorativne.

Format izlaza testnog slučaja

Zatražite strukturirani format koji se može uvesti direktno u alat za upravljanje testiranjem vašeg tima (npr. TestRail, Zephyr, Xray). Sljedeća tabela prikazuje komponente dobrog test slučaja:

području

Opis

primjer

ID

jedinstveni ID

TC-PWD-014

Naslov

kratka svrha

Istekla veza će biti odbijena

preduslov

Potreban uvjet prije testiranja

Link za resetovanje je generisan prije 31 minut

stepenice

Sekvencijalne akcije

1. Kliknite na link 2. Unesite novu lozinku

test podataka

Korištene konkretne vrijednosti

stari link, nova lozinka "Abc!2345"

očekivani rezultat

Ponašanje koje treba provjeriti

Greška "Link je istekao", lozinka se ne mijenja

Kriterijumi prihvatanja

veza za sljedivost

AK-3: link važi 30 minuta

prioritet

Nivo rizika

visoko

Četiri šablona za kopiranje

1) Tehnički zasnovana proizvodnja scenarija:

Vaša uloga: viši dizajner testova. Generirajte testne slučajeve za funkciju: [karakteristike i kriteriji prihvatanja].Primijenite: klase ekvivalencije, analiza tačaka prekida, tabela odluka.Omogućite izlaz u 3 grupe: pozitivan / negativan / rubni slučaj. Svaki slučaj: ID, preduvjet, koraci, podaci o testiranju, očekivani rezultat, povezani kriteriji prihvatanja, prioritet (visok/srednji).

2) Lovac na rubove slučaja:

Navedite 10 uobičajeno zanemarenih rubnih slučajeva za sljedeću funkciju: [feature]. Napišite u jednoj rečenici zašto je rizično za svaku od njih. Razmislite o osovinama kao što su prazno/nulto, predugačak unos, istovremenost, vremensko ograničenje, greške formata, Unicode/emoji, negativna/nula, prekid mreže.

3) Proizvodnja tablice odluka:

Kreirajte tablicu odluka za sljedeće poslovno pravilo: [pravila]. Kolone: kombinacije uvjeta; redovi: svaki uslov i očekivana radnja. Označite nedostižne ili konfliktne kombinacije. Zatim predložite testni slučaj za svaku kombinaciju.

4) Kontrola sljedivosti:

S obzirom na sljedeću listu kriterija prihvatljivosti i sljedeće testne slučajeve: [kriterijumi] / [slučajevi]. Prikažite u obliku tabele koje kriterijume prihvatanja ne ispunjavaju testni slučajevi NO (jaz u pokrivenosti), a koji slučajevi nisu ispunjeni ni po jednom kriterijumu (suvišni slučaj).

tri mini kofera

Slučaj 1 — Vrijednost rubnih stanja. Stručnjak iz fintech tima napisao je 18 skripti za funkciju prijenosa novca. On je primenio šablon „lovac na ivice slučajeva“ na AI; AI je podsjetio na situaciju "prenos istog bilansa sa dva uređaja u isto vrijeme" (istodobnost). Kada je ovaj scenario testiran, otkrivena je i zatvorena ranjivost dvostruke potrošnje prije objavljivanja. Situacija sa jednim rubom spriječila je potencijalni šestocifren gubitak.

Slučaj 2 — Podrezivanje izbočine. Tim je dao AI da izradi skriptu za obrazac za članstvo i 74 slučaja su prošla. Provođenje predloška sljedivosti otkrilo je da 74 slučaja ispunjavaju samo 9 kriterija prihvatljivosti, pri čemu su mnogi ponovo testirali istu klasu ekvivalencije. Skup je smanjen sa 74 na 23 značajna slučaja; vrijeme izvođenja se smanjilo za 68%, pokrivenost se nije smanjila.

Slučaj 3 — Pogrešna pretpostavka. AI je predložio testiranje nevažećih datuma poput "31. februara" za polje datuma, ali nije znao da je komponenta kalendara koju je tim koristio već blokirala ovo. Stručnjak je eliminirao 4 od 6 scenarija datuma koje je proizvela AI kao nepotrebne u kontekstu proizvoda. AI generisane mogućnosti; napravio izbor informacija o proizvodu.

Uobičajene greške

  • Zahtjev za skriptom bez navođenja kriterija prihvatanja. Ne znajući šta je istina, AI proizvodi površne scenarije koji često propuštaju stvarni rizik.
  • Samo se zadovoljim pozitivnim testovima. Eksplicitno ne žele negativne i rubne slučajeve. Tu često leže greške.
  • Prihvatanje onoga što je proizvedeno takvo kakvo jeste. Zaboravljajući da AI ne poznaje kontekst proizvoda i ostavljajući nepotrebne ili nemoguće scenarije na setu.
  • Zaobilaženje sljedivosti. Nepovezivanje slučajeva sa kriterijumima prihvatanja; kao rezultat toga, ne vidi se koji kriterijum nije testiran (jaz u pokrivenosti).
  • Zabluda o količini. Biti sretan jer je "objavljeno 60 scenarija". Vrijednost nije u broju, već u obimu koji pokriva rizik.

Ukratko

Dizajn testa se odnosi na 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 prihvatljivosti, klasične tehnike testiranja (klase ekvivalentnosti, tačka prekida, tablica odluka, prijelaz stanja) i jasan izlazni format. Ali AI je pristrasan prema pozitivnom, ne poznaje kontekst proizvoda i može proizvesti nepotrebnu nadutost. Vaš posao je da eksplicitno zatražite negativne i rubne slučajeve, uspostavite sljedivost, odredite prioritet prema riziku i smanjite.

Zadatak aplikacije

Odaberite funkciju iz vlastitog projekta i zapišite kriterije prihvatljivosti. Neka AI generira test slučajeve s predloškom „generiranje scenarija zasnovano na tehnici“. Zatim primijenite šablone „lovac na rubove” i „provjera sljedivosti”. Kao rezultat: (1) dodajte najmanje 3 rubna slučaja koje AI preskače, (2) smanjite slučajeve koji se ne povezuju ni sa jednim kriterijem prihvatanja, (3) napišite nove slučajeve ako su neki kriteriji prihvatljivosti ostali neprovjereni. Sipajte konačni set u tabelu.

kontrolna lista

  • [ ] Prije nego što sam zatražio skriptu, pojasnio sam kriterije prihvatanja.
  • [ ] Tražio sam od YZ klase ekvivalencije i analizu graničnih vrijednosti po imenu.
  • [ ] Generirao sam pozitivna, negativna i rubna stanja odvojeno.
  • [ ] Povezao sam svaki test slučaj sa kriterijumom prihvatanja (sledljivost).
  • [ ] Provjerio sam prazninu u opsegu i nepotrebne slučajeve pomoću tabele.
  • [ ] Odredio sam prioritet prema riziku i podrezao natečeni set.