Što je testiranje domene u testiranju softvera? (s primjerom)

⚡ Pametni sažetak

Testiranje domene provjerava aplikaciju tako što joj daje najmanji korisni skup ulaza, pokrivajući valjane, nevaljane i granične vrijednosti te potvrđujući da samo vrijednosti unutar prihvaćenog raspona proizvode potreban izlaz.

  • 🔘 Osnovna ideja: Podijelite svaku ulaznu domenu u klase ekvivalencije i testirajte jednu reprezentativnu vrijednost po klasi, ne svaki mogući ulaz.
  • ☑️ Granični fokus: Vrijednosti na rubu klase, i neposredno izvan nje, puno češće otkrivaju nedostatke koji su za jedan manji od vrijednosti srednjeg raspona.
  • Sparene tehnike: Analiza klase ekvivalencije određuje grupupingAnaliza graničnih vrijednosti odlučuje koji član svake grupe će se pokrenuti.
  • 🧪 Obrađeni primjer: Modul za prodaju ulaznica koji dodjeljuje natjecanja prema dobi i spolu smanjuje četiri dobne kategorije na kratki, visokovrijedni skup testova.
  • 📈 Ovisnost o znanju: Procjena ispravnosti izlaza zahtijeva poslovna pravila, pa je tehnika prikladna za male, dobro razumljive dijelove logike.

Testiranje domene u testiranju softvera s klasama ekvivalencije i graničnim vrijednostima

Što je testiranje domene?

Testiranje domene je testiranje softvera proces u kojem se aplikacija testira zadavanjem minimalnog broja ulaza i procjenjivanjem odgovarajućih izlaza. Primarni cilj testiranja domene je provjeriti prihvaća li softverska aplikacija ulaze unutar prihvatljivog raspona i isporučuje li potreban izlaz.

To je funkcionalno ispitivanje tehnika u kojoj se izlaz sustava testira s minimalnim brojem ulaza kako bi se osiguralo da sustav ne prihvaća nevažeće i ulazne vrijednosti izvan raspona. Također se tretira kao jedna od važnih testiranje bijele kutije metode. Nadalje provjerava da sustav ne bi trebao prihvaćati ulaze, uvjete i indekse izvan navedenog ili valjanog raspona.

Testiranje domene razlikuje se za svaku pojedinu domenu, stoga vam je potrebno znanje specifično za domenu kako biste testirali softverski sustav.

Jednostavnija praksa testiranja domene

U testiranju domene domenu dijelimo na poddomene (klase ekvivalencije) i zatim testiramo pomoću vrijednosti iz svake poddomene. Na primjer, ako je web stranica (domena) dana na testiranje, web stranicu ćemo podijeliti u male dijelove (poddomenu) radi lakšeg testiranja.

Domena može uključivati ​​testiranje bilo koje ulazne varijable ili kombinacije ulaznih varijabli.

Praktičari često proučavaju najjednostavnije slučajeve testiranja domene pod dva druga naziva, "granično testiranje" i "analiza klasa ekvivalencije".

Ispitivanje granica - Analiza graničnih vrijednosti (BVA) se temelji na testiranju na granicama između particija. Testirat ćemo i valjane i nevaljane ulazne vrijednosti u particiji/klasama.

Ispitivanje klase ekvivalencije – Ideja koja stoji iza ove tehnike je podijeliti (tj. podijeliti) skup ispitnih uvjeta u grupe ili skupove koji se mogu smatrati istima (tj. sustav bi ih trebao tretirati na ekvivalentan način), dakle 'particioniranje ekvivalencije'.

Taj pojednostavljeni oblik primjenjuje se za testiranje domene –

  • Samo za testove ulaznih varijabli
  • Samo kada se testira na razina sustava
  • Samo kada se testira jedan po jedan
  • Samo kada se testira na vrlo površan način

Može se pojednostaviti na sljedeći način:

Varijabla Valjana klasa ekvivalencije klase Nevažeća klasa ekvivalencije klase Granice i posebni slučajevi Bilješke
X 0-100 0
100
<0 -1
> 100 101

Objašnjenje:

  • Ako polje prihvaća raspone od 0 do 100, ne bi smjelo prihvaćati -1 i 101 jer su to nevažeći unosi i prelaze granice.
  • Polje treba prihvaćati vrijednosti kao što su 0, 100 i bilo koji broj između njih.

Izrada ovakvih tablica (u praksi)

  • Za izradu analize klase ekvivalencije tijekom vremena, unesite podatke u proračunsku tablicu. Započnite s popisivanjem varijabli. Dodajte podatke o njima kako ih dobivate.
  • Tablica bi na kraju trebala sadržavati sve varijable. To znači sve ulazne varijable, sve izlazne varijable i sve međuvarijable koje možete promatrati.
  • U praksi, većina takvih tablica je nepotpuna. Najbolje navode svaku varijablu i dodaju detalje za one ključne.

Strategija testiranja domene

Prilikom testiranja domene, potrebno je uzeti u obzir sljedeće stvari:

  • Koju domenu testiramo?
  • Kako grupirati vrijednosti u klase?
  • Koje vrijednosti klasa treba testirati?
  • Kako odrediti rezultat?

Koju domenu testiramo?

Svaka domena koju testiramo ima neku ulaznu funkcionalnost i izlaznu funkcionalnost. Treba unijeti neke ulazne varijable, a odgovarajući izlaz treba provjeriti. Dijagram u nastavku prikazuje taj odnos ulaza i izlaza.

Strategija testiranja domene koja prikazuje ulazne varijable koje teku u domenu i proizvode izlaz

Primjer testiranja domene

Razmotrite scenarij jednog ulaznog testa:

C = a+b, gdje su a i b ulazne varijable, a C izlazna varijabla.

Ovdje u gornjem primjeru nema potrebe za klasifikacijom, niti je potrebna bilo kakva kombinacija varijabli.

Razmotrite donji višestruki ulaz i odgovarajući scenarij izlaza:

Razmotrite izložbu igara za djecu. Raspoređeno je šest natjecanja, a ulaznice se moraju dodijeliti prema unesenoj dobi i spolu. Prodaja ulaznica jedan je od modula koji treba testirati za cijelu funkcionalnost izložbe igara.

Prema scenariju dobili smo šest scenarija prema uzrastu i natjecanjima:

  • Dječak u dobi >5 i <=10 godina trebao bi sudjelovati u pripovijedanju.
  • Djevojčice od 5 do 10 godina trebaju sudjelovati u natjecanju u crtanju.
  • Dječak od 10 i 15 godina trebao bi sudjelovati u kvizu.
  • Djevojke u dobi >10 i <=15 godina trebaju sudjelovati u pisanju eseja.
  • U natjecanju u rimama trebaju sudjelovati i dječaci i djevojčice, a djeca su mlađa od 5 godina.
  • Dob >15, i dječaci i djevojčice trebaju sudjelovati u natjecanju poezije.

Ovdje će ulaz biti Dob i Spol, te će stoga biti izdana karta za natjecanje. U ovom slučaju, particija ulaza ili jednostavno grupiranjeping vrijednosti, dolazi do izražaja.

Kako grupirati vrijednosti u klase?

Particioniranje nekih vrijednosti znači njihovo dijeljenje na one koji se ne preklapajuping podskupovi.

Kao što smo ranije spomenuli, postoje dvije vrste particioniranja:

  • Podjela ekvivalencije – Particioniranje ekvivalencije je tehnika testiranja softvera koja dijeli ulazne podatke softverske jedinice na particije ekvivalentnih podataka iz kojih test slučajevi može se izvesti. U načelu, testni slučajevi su dizajnirani tako da pokriju svaku particiju barem jednom.
  • Analiza graničnih vrijednosti – Analiza graničnih vrijednosti je tehnika testiranja softvera u kojoj su testovi osmišljeni tako da uključuju predstavnike graničnih vrijednosti u rasponu. Ideja dolazi od granice.

U gornjem primjeru, vrijednosti dijelimo u podskupove. Dob dijelimo u sljedeće klase:

  • Razred 1: Djeca od 5 do 10 godina
  • Razred 2: Djeca mlađa od 5 godina
  • Razred 3: Djeca od 10 do 15 godina
  • Razred 4: Djeca starija od 15 godina.

Koje vrijednosti klasa treba testirati?

Vrijednosti uzete za testiranje trebaju biti granične vrijednosti:

  • Granice su predstavnici klasa ekvivalencije iz kojih ih uzorkujemo. Vjerojatnije je da će otkriti pogrešku od drugih članova klase, pa su bolji predstavnici.
  • Najbolji predstavnik klase ekvivalencije je vrijednost između raspona.

Za gornji primjer imamo sljedeće klase za testiranje:

Na primjer, za scenarij br. 1:

Razred 1: Djeca od 5 do 10 godina (dob >5 i <=10)

Granične vrijednosti:

  • Vrijednosti bi trebale biti jednake ili manje od 10. Stoga bi dob od 10 godina trebala biti uključena u ovu klasu.
  • Vrijednosti bi trebale biti veće od 5. Stoga dob od 5 godina ne bi trebala biti uključena u ovaj razred.
  • Vrijednosti bi trebale biti jednake ili manje od 10. Stoga, dob od 11 godina ne bi trebala biti uključena u ovu klasu.
  • Vrijednosti trebaju biti veće od 5. Dakle, dob od 6 godina treba biti uključena u ovaj razred.

Vrijednosti particije ekvivalencije:

O particiji ekvivalencije govori se kada se mora testirati samo jedan uvjet iz svake particije. Pritom pretpostavljamo da ako jedan uvjet u particiji funkcionira, onda bi trebali funkcionirati i svi uvjeti. Na isti način, ako jedan uvjet u toj particiji ne funkcionira, pretpostavljamo da nijedan od ostalih uvjeta neće funkcionirati. Na primjer,

(Dob >5 i <=10)

Budući da su vrijednosti od 6 do 10 valjane, potrebno je odabrati jednu od vrijednosti između 6, 7, 8, 9 i 10. Stoga je odabrana dob "8" valjana ulazna dob za dobnu skupinu između (dob > 5 i <= 10). Ova vrsta particije naziva se particija ekvivalencije.

scenario Granične vrijednosti koje treba uzeti Vrijednosti dijeljenja ekvivalencije
Dječak – Dob >5 i <=10 Unos godina = 6
Unos godina = 5
Unos godina = 11
Unos godina = 10
Unos godina = 8
Djevojčica – dob >5 i <=10 Unos godina = 6
Unos godina = 5
Unos godina = 11
Unos godina = 10
Unos godina = 8
Dječak – Dob >10 i <=15 Unos godina = 11
Unos godina = 10
Unos godina = 15
Unos godina = 16
Unos godina = 13
Djevojčica – dob >10 i <=15 Unos godina = 11
Unos godina = 10
Unos godina = 15
Unos godina = 16
Unos godina = 13
Dob <=5 Unos godina = 4
Unos godina = 5
Unos godina = 3
Dob> 15 Unos godina = 15
Unos godina = 16
Unos godina = 25

Kako možemo utvrditi je li program prošao ili nije prošao test?

Prosljeđivanje funkcionalnosti ne ovisi samo o rezultatima gore navedenih scenarija. Zadani ulaz i očekivani izlaz dat će nam rezultate, a to zahtijeva poznavanje domene.

Određivanje rezultata primjera: donji zaslon prikazuje izlaz izdavanja karata za svaku kombinaciju dobi i spola.

Izlazni podaci o tiketima za svaku kombinaciju dobi i spola koja se koristi za određivanje rezultata testiranja domene

Dakle, ako svi gore navedeni testni slučajevi prođu, domena izdavanja ulaznica u natjecanju je prošla. Ako ne, domena je prošla.

Struktura testiranja domene

Obično testeri slijede dolje navedene korake u testiranju domene. Oni se mogu prilagoditi ili preskočiti prema našim potrebama testiranja.

  • Identificirajte potencijalno zanimljive varijable.
  • Odredite varijablu(e) koju sada možete analizirati i poredajte ih (od najmanjih prema najvećim i obrnuto).
  • Stvorite i identificirajte granične vrijednosti i vrijednosti klase ekvivalencije kao gore.
  • Identificirajte sekundarne dimenzije i analizirajte svaku na klasičan način. (U gornjem primjeru, spol je sekundarna dimenzija.)
  • Identificirajte i testirajte varijable koje sadrže rezultate (izlazne varijable).
  • Ocijenite kako program koristi vrijednost ove varijable.
  • Identificirajte dodatne potencijalno povezane varijable za kombinirano testiranje, gdje testiranje tablice odluka pomaže.
  • Zamislite rizike koji se ne moraju nužno preslikavati na očitu dimenziju.
  • Identificirajte i navedite neanalizirane varijable. Prikupite informacije za kasniju analizu.
  • Sažmite svoju analizu s tablicom rizika/ekvivalencije.

Pitanja i odgovori

Obje oznake pojavljuju se u praksi. Klase izvedene iz specifikacije čine ga Crna kutija tehnika; klase izvedene iz koda čine ga bijelom kutijom. Sama analiza je identična.

Pokriva rubove sklone pogreškama s vrlo malo testnih slučajeva. Ograničenja su stvarna: granice je teško precizno odrediti, a cijeli tijek rada se nikada ne vježba, pa nadopunjuje druge metode umjesto da ih zamjenjuje.

Particioniranje ekvivalencije je jedan korak unutar testiranja domene, koji također uređuje varijable, dodaje analizu granica, obrađuje sekundarne dimenzije i izlazne varijable te završava tablicom rizika.

Dva se preklapaju, ali nisu identična. Ovaj članak pokriva analizu ulazne domene, dok se upotreba u industriji, kao što je testiranje zdravstvene domene znači testiranje s poznavanjem sektora, što je i dalje potrebno za procjenu očekivanih rezultata.

AI asistenti čitaju zahtjev i predlažu kandidatske klase ekvivalencije, vrijednosti rubova i nedostajuće nevažeće slučajeve. Tester i dalje potvrđuje stvarne granice, budući da pogrešno izveden raspon daje pouzdan, ali beskoristan skup testova.

GitHub kopilot piše parametrizirane metode testiranja nakon što se klase i rubovi pojave u promptu ili kodu. Neizrečena poslovna ograničenja mora navesti tester.

Svaka kombinacija raste multiplikativno, pa je rijetko praktična. Prvo analizirajte svaku varijablu zasebno, a zatim koristite parno ili ortogonalni niz izbor rizičnih kombinacija.

Testiranje samo valjanih klasa i preskakanjeping negativno testiranje, korištenjem inkluzivne granice gdje je pravilo isključivo i potpunim ignoriranjem izlaznih varijabli.

Sažmite ovu objavu uz: