Tehnike testiranja softvera s primjerima dizajna testnih slučajeva

⚡ Pametni sažetak

Tehnike testiranja softvera pomažu u dizajniranju boljih testnih slučajeva smanjenjem potreba za izvršavanjem, a istovremeno maksimizirajući pokrivenost, identificirajući neuhvatljive uvjete putem strukturiranih ručnih metoda. Ovi pristupi crne kutije, poput analize graničnih vrijednosti i particioniranja ekvivalencije, daju prioritet granicama i particijama za učinkovitu validaciju. Oni nadopunjuju iscrpna ograničenja testiranja, crpeći iz temeljnih principa kako bi povećali pouzdanost.

  • Osnovni princip: Tehnike testiranja softvera odabiru testne slučajeve iz ulaznih domena kako bi se postigla visoka pokrivenost uz minimalan napor, fokusirajući se na područja sklona pogreškama.
  • Analiza graničnih vrijednosti: Testirajte granice (min, max, samo unutra/izvan) jer se pogreške tamo grupiraju, npr. za ulaz 1-10, validirajte 0,1,2,9,10,11.
  • Podjela ekvivalencije: Podijelite ulazne podatke u valjane/nevaljane klase (npr. <1, 1-10, 11-19, 20-30, >30), testirajući jednog predstavnika po klasi.
  • Testiranje tablice odluka: Mapirajte ulazne kombinacije s izlazima u tablicama uzroka i posljedice, omogućujući gumbe za slanje samo kada su sva polja ispunjena.
  • Prijelaz stanja: Modelirajte sekvencijalne promjene stanja putem ulaza (npr. pokušaji prijave: ispravan PIN odobrava pristup; tri netočna blokiranja računa).
  • Pogreška u pogađanju: Iskoristite iskustvo za ciljanje vjerojatnih nedostataka, koristeći povijesne podatke i uobičajene zamke za ad-hoc testne slučajeve.

Tehnike testiranja softvera

Što je tehnika testiranja softvera?

Tehnike testiranja softvera pomažu vam u dizajniranju boljih testnih slučajeva. Budući da iscrpno testiranje nije moguće, tehnike ručnog testiranja pomažu u smanjenju broja testnih slučajeva koji se moraju izvršiti, a istovremeno povećavaju pokrivenost testiranjem. Pomažu u identificiranju testnih uvjeta koje je inače teško prepoznati. Tehnike testiranja softvera mogu se klasificirati u sljedeće vrste:

  • Analiza graničnih vrijednosti
  • Particioniranje klase ekvivalencije
  • Testiranje temeljeno na tablici odluka
  • Prijelaz stanja
  • Pogreška u pogađanju

👉 Prijavite se za besplatni projekt testiranja softvera uživo

7 principa tehnika testiranja softvera

Tehnike testiranja softvera slijede skup načela za provođenje procesa testiranja. Ovih 7 načela vode testere da učinkovito planiraju, dizajniraju i izvršavaju testove. Ova načela osiguravaju da testiranje ostane svrsishodno, učinkovito i usklađeno s ciljevima projekta.

7 principa tehnika testiranja softvera su Testiranje pokazuje prisutnost nedostataka, Iscrpno testiranje je nemoguće, Rano testiranje štedi vrijeme i troškove, Nedostatak Clustering, paradoks pesticida, testiranje ovisi o kontekstu i zabluda odsutnosti pogrešaka. Možete kliknuti na sljedeće link biste saznali više.

Kako umjetna inteligencija transformira tradicionalne tehnike testiranja softvera?

AI je revolutionizirajuće testiranje softvera uvođenjem automatizacija, predviđanje i prilagodljivost. Omogućuje automatizirano generiranje testnih slučajeva iz prirodnog jezika korištenjem LLM-ova, skripte za samoizlječenje koje se prilagođavaju promjenama korisničkog sučelja i prediktivna analiza nedostataka na temelju povijesnih podataka. Umjetna inteligencija također podržava određivanje prioriteta na temelju rizika, vizualno testiranje, i autonomno izvršavanje testova unutar CI/CD cjevovoda. Kroz sučelja prirodnog jezika, Testeri mogu kreirati slučajeve razgovorom, ubrzavajući tijek rada. U biti, umjetna inteligencija čini testiranje pametniji, brži i otporniji, smanjenje ručnog napora uz istovremeno poboljšanje točnosti i pokrivenosti u modernim, stalno rastućim aplikacijama.

Tehnike testiranja softvera

Analiza graničnih vrijednosti (BVA)

Analiza rubnih vrijednosti temelji se na testiranju na granicama između particija. Uključuje maksimalne, minimalne, unutarnje ili vanjske granice, tipične vrijednosti i vrijednosti pogreške.

Empirijski dokazi pokazuju da se mnogi defekti javljaju blizu graničnih uvjeta, a ne pri srednjim vrijednostima. Također je poznat kao BVA i daje izbor testnih slučajeva koji vježbaju granične vrijednosti.

Ova tehnika testiranja crne kutije nadopunjuje particioniranje ekvivalencije fokusirajući se na rubne slučajeve istih ulaznih raspona. Ova tehnika testiranja softvera temelji se na načelu da ako sustav ispravno radi za granične vrijednosti, vjerojatno će raditi i za sve vrijednosti unutar raspona.

Smjernice za analizu graničnih vrijednosti

  • Ako je ulazni uvjet ograničen između vrijednosti x i y, tada bi testni slučajevi trebali biti dizajnirani s vrijednostima x i y, kao i vrijednostima koje su iznad i ispod x i y.
  • Ako je ulazni uvjet velik broj vrijednosti, testni slučaj treba razviti tako da se testiraju minimalne i maksimalne vrijednosti. Ovdje se također testiraju vrijednosti iznad i ispod minimalne i maksimalne vrijednosti.
  • Primijenite smjernice 1 i 2 na izlazne uvjete. To daje izlaz koji odražava očekivane minimalne i maksimalne vrijednosti. Također testira vrijednosti ispod ili iznad vrijednosti.

Primjer:

Input condition is valid between 1 to 10

Boundary values 0,1,2 and 9,10,11

Particioniranje klase ekvivalencije

Particioniranje klasa ekvivalencije dijeli skup ulaznih uvjeta u grupe za koje se očekuje da će proizvesti slično ponašanje. Ova metoda testiranja softvera dijeli ulaznu domenu programa na klase podataka iz kojih bi se trebali dizajnirati testni slučajevi.

Koncept iza ove tehnike dizajna testnih slučajeva jest da je testni slučaj reprezentativne vrijednosti svake klase jednak testu bilo koje druge vrijednosti iste klase. Omogućuje vam identificiranje valjanih i nevaljanih klasa ekvivalencije.

Primjer:

Uvjeti unosa vrijede između

 1 to 10 and 20 to 30

Dakle, postoji pet klasa ekvivalencije

--- to 0 (invalid)
1 to 10 (valid)
11 to 19 (invalid)
20 to 30 (valid)
31 to --- (invalid)

Odaberite vrijednosti iz svake klase, tj.

-2, 3, 15, 25, 45

Također pročitajte više o – Analiza graničnih vrijednosti i testiranje podjele ekvivalencije

Testiranje temeljeno na tablici odluka

Tablica odlučivanja poznata je i kao tablica uzroka i posljedice. Ova tehnika testiranja softvera koristi se za funkcije koje reagiraju na kombinaciju ulaza ili događaja. Na primjer, u scenariju validacije obrasca, gumb 'Pošalji' aktivira se tek nakon što su sva obavezna polja ispunjena.

Prvi zadatak je identificirati funkcionalnosti gdje izlaz ovisi o kombinaciji ulaza. Ako postoji veliki skup ulaznih kombinacija, podijelite ga na manje podskupove, što je korisno za upravljanje tablicom odlučivanja.

Za svaku funkciju potrebno je stvoriti tablicu i popisati sve vrste kombinacija ulaza i njihovih odgovarajućih izlaza. To pomaže u prepoznavanju uvjeta koji je tester previdio.

Slijede koraci za izradu tablice odluka:

  • Navedite ulaze u redove
  • Unesite sva pravila u stupac
  • Popunite tablicu različitim kombinacijama ulaznih podataka
  • U zadnjem retku zabilježite izlaz prema ulaznoj kombinaciji.

PrimjerGumb za slanje u kontaktnom obrascu omogućen je samo kada krajnji korisnik unese sve podatke.

Testiranje temeljeno na tablici odluka

Prijelaz stanja

U tehnici promjene stanja, promjene ulaznih uvjeta mijenjaju stanje aplikacije koja se testira (AUT). Ova tehnika testiranja omogućuje testeru testiranje ponašanja AUT-a. Tester može izvršiti ovu radnju unosom različitih ulaznih uvjeta u nizu. U tehnici promjene stanja, tim za testiranje pruža pozitivne i negativne ulazne testne vrijednosti za procjenu ponašanja sustava.

Smjernice za tranziciju stanja:

  • Prijelaz stanja trebao bi se koristiti kada tim za testiranje testira aplikaciju za ograničen skup ulaznih vrijednosti.
  • Tehnika dizajna testnih slučajeva treba se koristiti kada tim za testiranje želi testirati niz događaja koji se događaju u testiranoj aplikaciji.

Primjer:

U sljedećem primjeru, korisnik se može uspješno prijaviti nakon što unese valjanu lozinku u roku od tri pokušaja. Ako korisnik unese nevažeću lozinku u prvom ili drugom pokušaju, bit će upitan da ponovno unese lozinku. Kada korisnik unese pogrešnu lozinku 3rd vrijeme, radnja se poduzima i račun će biti blokiran.

Dijagram prijelaza stanja

Dijagram prijelaza stanja

Na ovom dijagramu, kada korisnik unese ispravan PIN broj, prelazi u stanje odobrenog pristupa. Sljedeća tablica je kreirana na temelju gornjeg dijagrama -

Tablica prijelaza stanja

Ispravan PIN Neispravan PIN
S1) Početak S5 S2
S2) 1st pokušaj S5 S3
S3) 2nd pokušaj S5 S4
S4) 3rd pokušaj S5 S6
S5) Pristup odobren - -
S6) Račun blokiran - -

U gornjoj tablici, kada korisnik unese ispravan PIN, stanje prelazi u Pristup odobren. A ako korisnik unese netočnu lozinku, prelazi u sljedeće stanje. Ako učini isto 3rd vremena, on će doći u stanje blokiranog računa.

Pogreška u pogađanju

Pogreška u pogađanju je tehnika testiranja softvera u kojoj testeri koriste iskustvo i intuiciju kako bi predvidjeli vjerojatne pogreške u kodu. Tehnika se uvelike temelji na iskustvu gdje analitičari testiranja koriste svoje iskustvo kako bi pogodili problematični dio aplikacije za testiranje. Stoga analitičari testiranja moraju biti vješti i iskusni za bolje pogađanje pogrešaka.

Tehnika broji popis mogućih pogrešaka ili situacija sklonih pogreškama. Zatim tester piše testni slučaj kako bi se otkrile te pogreške. Za dizajniranje testnih slučajeva temeljenih na ovoj tehnici testiranja softvera, analitičar može koristiti prošla iskustva za identifikaciju uvjeta.

Smjernice za pogađanje pogrešaka:

  • Test treba koristiti prethodno iskustvo testiranja sličnih aplikacija
  • Razumijevanje sustava koji se testira
  • Poznavanje tipičnih pogrešaka u implementaciji
  • Sjetite se prethodno problematičnih područja
  • Procijenite povijesne podatke i rezultate testiranja

Prednosti i ograničenja tehnika testiranja

Prednosti:

  • Poboljšava pokrivenost testiranjem i osigurava širu validaciju funkcionalnosti softvera.
  • Poboljšava otkrivanje nedostataka ciljanjem područja visokog rizika ili sklonih pogreškama.
  • Promosustavni dizajn testova, smanjujući redundanciju i preklapanje.
  • Pomaže u ranom prepoznavanju problema u SDLC-u, smanjujući ukupne troškove projekta.
  • Pojednostavljuje složeno testiranje metodama poput BVA i particioniranja ekvivalencije.
  • Povećava pouzdanost softvera i povjerenje dionika u kvalitetu proizvoda.

Ograničenja:

  • Nijedna tehnika ne jamči potpuno otkrivanje nedostataka.
  • Neke tehnike uvelike ovise o iskustvu i prosudbi testera.
  • Može previdjeti probleme s integracijom, upotrebljivošću ili performansama u stvarnom svijetu.
  • Vremenska i resursna ograničenja mogu ograničiti temeljitu primjenu.
  • Određene metode nude ograničenu podršku za automatizaciju, što smanjuje skalabilnost.

Kako odabrati prave tehnike testiranja?

Odabir pravih tehnika testiranja softvera zahtijeva njihovo usklađivanje sa specifičnostima projekta kako bi se osigurala učinkovitost i pokrivenost. Čimbenici poput modela razvoja, rizika i resursa vode proces odabira. Kao stručnjak za testiranje softvera, uvijek preporučujem kombiniranje više tehnika za optimalne rezultate. To sprječava mogućnost prevelikog oslanjanja na jednu metodu.

  • Uskladite s ciljevima: Uskladite tehnike s ciljevima kao što su funkcionalnost, performanse ili sigurnosne potrebe.
  • Procijenite rizike: Dajte prioritet područjima visokog rizika metodama temeljenim na riziku za ciljanu validaciju.
  • Prilagodite arhitekturu i model: Odlučite se za agilne pristupe u iterativnim ili višeslojnim sustavima.
  • Ograničenja ravnoteže: Razmotrite vrijeme, proračun, vještine i alate za izvedivu provedbu.

Pitanja i odgovori

Tehnike testiranja softvera su strukturirane metode za provjeru ispunjava li softver zahtjeve i ispravno funkcionira li. Uobičajene tehnike uključuju analizu graničnih vrijednosti, particioniranje klasa ekvivalencije, testiranje na temelju tablice odlučivanja, prijelaz stanja i pogađanje pogrešaka, a svaka se fokusira na različite aspekte ponašanja sustava i logike koda.

Četiri glavne vrste su jedinično testiranje, integracijsko testiranje, sistemsko testiranje i testiranje prihvatljivosti. Svako od njih potvrđuje funkcionalnost softvera na rastućim razinama složenosti, osiguravajući pouzdanost prije implementacije.

Generativna umjetna inteligencija predlaže istraživačke scenarije visokog utjecaja simulirajući raznolike interakcije korisnika i iskorištavajući povijesne podatke o nedostacima, čime otkriva nedostatke upotrebljivosti i integraciji koje su propustili skriptirani testovi.

Tehnike osiguranja kvalitete uključuju pregled koda, parno programiranje, statičku analizu, regresijsko testiranje i mjerenje performansi. Ove metode održavaju dosljednost, rano otkrivaju odstupanja i osiguravaju pridržavanje definiranih standarda kvalitete.

Automatizirano testiranje ubrzava izvršavanje testova, povećava pokrivenost i minimizira ljudske pogreške. Omogućuje kontinuiranu integraciju i isporuku učinkovitim izvođenjem ponovljivih, skalabilnih testova u različitim okruženjima i platformama.

Sažmite ovu objavu uz: