differences between unit testing
Detaljna usporedba jedinice, integracije i funkcionalnog ispitivanja:
Za bilo koju softversku aplikaciju vrlo je važno i jedinstveno testiranje, kao i testiranje integracije, jer svaka od njih koristi jedinstveni postupak za testiranje softverske aplikacije.
Ali bilo koje ili čak oboje ne mogu zamijeniti funkcionalno testiranje ni u jednom trenutku.
Što ćete naučiti:
- Jedinstveno testiranje vs Integracijsko testiranje vs funkcionalno ispitivanje
- Što je jedinstveno testiranje?
- Što je integracijsko testiranje?
- Jedinstveno testiranje naspram integracijskog testiranja
- Ispitivanje funkcionalnosti
- Točna razlika
- Zaključak
- Preporučena literatura
Jedinstveno testiranje vs Integracijsko testiranje vs funkcionalno ispitivanje
Jedinstveno ispitivanje podrazumijeva testiranje pojedinačnih modula aplikacije u izolaciji (bez ikakve interakcije s ovisnostima) kako bi se potvrdilo da kod radi ispravno.
Integracijsko ispitivanje Podrazumijeva provjeru rade li različiti moduli u kombinaciji kada se kombiniraju kao grupa.
Ispitivanje funkcionalnosti znači testiranje dijela funkcionalnosti u sustavu (može komunicirati s ovisnostima) kako bi se potvrdilo da kôd radi ispravne stvari.
Funkcionalni testovi povezani su s integracijskim testovima, međutim, oni označavaju testove koji provjeravaju cjelokupnu funkcionalnost aplikacije sa svim kodovima koji se izvode zajedno, gotovo super integracijski test.
Jedinstveno testiranje razmatra provjeru jedne komponente sustava, dok testiranje funkcionalnosti razmatra provjeru rada aplikacije u odnosu na predviđenu funkcionalnost opisanu u specifikaciji zahtjeva sustava. S druge strane, integracijsko testiranje razmatra provjeru integriranih modula u sustavu.
I, što je najvažnije, za optimizaciju povrata ulaganja (ROI) vaša baza koda trebala bi imati što više jediničnih testova, manje integracijskih testova i najmanji broj funkcionalnih testova.
To je najbolje ilustrirano u sljedećoj ispitnoj piramidi:
Jedinstvene testove lakše je napisati i brže izvršiti. Vrijeme i napor za provođenje i održavanje testova povećavaju se od jediničnog do funkcionalnog ispitivanja kao što je prikazano u gornjoj piramidi.
Primjer:
Razumijemo ove tri vrste testiranja na pojednostavljenom primjeru.
Npr . Za funkcionalni mobilni telefon glavni su potrebni dijelovi 'baterija' i 'sim kartica'.
Primjer jediničnog ispitivanja - Baterija se provjerava radi trajanja, kapaciteta i ostalih parametara. Sim kartica se provjerava radi aktivacije.
Primjer integracijskog ispitivanja - Baterija i sim kartica integrirani su tj. Sastavljeni kako bi se pokrenuo mobitel.
Primjer funkcionalnog ispitivanja - Funkcionalnost mobilnog telefona provjerava se u pogledu njegovih značajki i potrošnje baterije, kao i mogućnosti SIM kartice.
Vidjeli smo primjer laički rečeno.
Uzmimo sada tehnički primjer stranice za prijavu:
Gotovo svaka web aplikacija zahtijeva prijavu svojih korisnika / kupaca. Za to svaka aplikacija mora imati stranicu za prijavu koja sadrži sljedeće elemente:
- Račun / Korisničko ime
- Zaporka
- Gumb za prijavu / prijavu
Za jedinično testiranje, sljedeći mogu biti test slučajevi:
- Duljina polja - polja za korisničko ime i lozinku.
- Vrijednosti polja za unos trebaju biti valjane.
- Gumb za prijavu omogućen je tek nakon unosa valjanih vrijednosti (Format i dužina) u oba polja.
Za integracijsko testiranje, sljedeći mogu biti test slučajevi:
- Korisnik vidi poruku dobrodošlice nakon što unese valjane vrijednosti i pritisne gumb za prijavu.
- Korisnik treba prijeći na stranicu dobrodošlice ili početnu stranicu nakon valjanog unosa i klika na gumb Prijava.
Sada, nakon što se izvrši jedinstveno i integracijsko testiranje, pogledajmo dodatno test slučajevi koji se razmatraju za funkcionalno ispitivanje:
- Očekivano ponašanje se provjerava, tj. Je li korisnik u mogućnosti prijaviti se klikom na gumb za prijavu nakon unosa valjanih vrijednosti korisničkog imena i lozinke.
- Postoji li poruka dobrodošlice koja će se pojaviti nakon uspješne prijave?
- Postoji li poruka o pogrešci koja bi se trebala pojaviti na nevaljanoj prijavi?
- Postoje li pohranjeni kolačići web mjesta za polja za prijavu?
- Može li se inaktivirani korisnik prijaviti?
- Postoji li veza 'zaboravljena lozinka' za korisnike koji su zaboravili lozinke?
Puno je više takvih slučajeva koji funkcionalnom ispitivaču padnu na pamet tijekom obavljanja funkcionalnih ispitivanja. No programer ne može uzeti sve slučajeve u tijek izrade testnih slučajeva jedinice i integracije.
Dakle, postoji puno scenarija koji tek trebaju biti testirani čak i nakon jedinstvenog i integracijskog testiranja.
Vrijeme je da se pojedinačno ispitaju jedinica, integracija i funkcionalno testiranje.
Što je jedinstveno testiranje?
Kao što i samo ime govori, ova razina uključuje testiranje 'jedinice'.
Ovdje jedinica može biti najmanji dio programa koji se može testirati, bilo da je riječ o najmanjoj pojedinačnoj funkciji, metodi itd. Programeri softvera su ti koji pišu jedinice testova. Ovdje je cilj uskladiti zahtjeve i očekivano ponašanje jedinice.
Slijedi nekoliko važnih točaka o jedinstvenom testiranju i njegovim prednostima:
- Jedinstveno testiranje vrši se prije integracijskog testiranja od strane programera softvera koji koriste tehnike ispitivanja bijele kutije .
- Jedinstveno testiranje ne provjerava samo pozitivno ponašanje, tj. Ispravan izlaz u slučaju valjanog unosa, već i kvarove koji se javljaju s nevaljanim unosom.
- Pronalaženje problema / grešaka u ranoj fazi vrlo je korisno i smanjuje ukupne troškove projekta. Kako se jedinično testiranje vrši prije integracije koda, problemi pronađeni u ovoj fazi mogu se riješiti vrlo jednostavno, a njihov je utjecaj također vrlo mali.
- Jedinstveni test testira male dijelove koda ili pojedinačne funkcije, tako da su problemi / pogreške pronađeni u ovim testnim slučajevima neovisni i ne utječu na ostale testne slučajeve.
- Sljedeća važna prednost je što jedinstveni testni slučajevi pojednostavljuju i olakšavaju testiranje koda. Dakle, postaje lakše riješiti probleme i u kasnijoj fazi jer će se testirati samo najnovija promjena u kodu.
- Jedinstveni test štedi vrijeme i troškove, a može se ponovno koristiti i lako ga je održavati.
JUNIT ( Java okvir ), PHPUnit (PHP framework), NUnit (.Net framework) itd. Popularni su alati za testiranje jedinica koji se koriste za različite jezike.
Što je integracijsko testiranje?
Integracijsko testiranje je testiranje integracije različitih dijelova sustava zajedno. Prvo se integriraju dva različita dijela ili modula sustava, a zatim se provodi integracijsko testiranje.
Cilj integracijskog testiranja je provjeriti funkcionalnost, pouzdanost i izvedbu sustava kada je integriran.
Integracijsko testiranje izvodi se na modulima koji se prvo testiraju, a zatim integracijsko testiranje definira daje li kombinacija modula željeni izlaz ili ne.
Integracijsko testiranje mogu obaviti neovisni testeri ili programeri.
Postoje 3 različite vrste pristupa integracijskom testiranju. Razgovarajmo ukratko o svakom od njih:
a) Pristup integracije Velikog praska
U ovom su pristupu svi moduli ili jedinice integrirani i istodobno testirani kao cjelina. To se obično radi kada je cijeli sustav spreman za integracijsko testiranje u jednom trenutku.
Molimo vas da ne miješate ovaj pristup integracijskog testiranja s testiranjem sustava, testira se samo integracija modula ili jedinica, a ne cijeli sustav kao što se to radi kod testiranja sustava.
Glavni pristup velikom prasku prednost jest da se sve integrirano testira odjednom.
Jedan glavni hendikep jest da postaje teško prepoznati kvarove.
Primjer: Na donjoj slici, jedinice 1 do jedinice 6 integrirane su i testirane primjenom pristupa Velikog praska.
b) Pristup od vrha prema dolje
Integracija jedinica / modula testira se od vrha do dna, korak po korak.
Prva se jedinica ispituje pojedinačno pisanjem test STUBOVI . Nakon toga se niže razine integriraju jedna po jedna dok se posljednja razina ne sastavi i ne testira.
Pristup od vrha prema dolje vrlo je organski način integracije jer je u skladu s onim kako se stvari događaju u stvarnom okruženju.
Jedini zabrinutost s ovim pristupom se na kraju testira glavna funkcionalnost.
c) Pristup odozdo prema gore
Jedinice / moduli se ispituju od donje prema gornjoj razini, korak po korak, sve dok se sve razine jedinica / modula ne integriraju i ne testiraju kao jedna cjelina. Programi stimulatora tzv VOZAČI koriste se u ovom pristupu. Lakše je otkriti probleme ili pogreške na nižim razinama.
Bojnik hendikep ovog pristupa je da se problemi na višoj razini mogu identificirati na kraju tek kad su sve jedinice integrirane.
Jedinstveno testiranje naspram integracijskog testiranja
Nakon što smo imali dovoljno rasprave o jedinstvenom testiranju i integracijskom testiranju, prođite brzo kroz razlike između njih u sljedećoj tablici:
Jedinstveno ispitivanje | Ispitivanje integracije |
---|---|
Provodi se u početnoj fazi ispitivanja, a zatim se može izvršiti bilo kada | Mora se provesti nakon jediničnog testiranja i prije testiranja sustava |
Testira pojedinačnu komponentu cijelog sustava, tj. Testira jedinicu u izolaciji. | Ispituje komponente sustava koje rade zajedno, tj. Testiraju suradnju više jedinica. |
Brže za izvršenje | Može trčati sporo |
Nema vanjske ovisnosti. Svaka se vanjska ovisnost ismijava ili izbacuje. | Zahtijeva interakciju s vanjskim ovisnostima (npr. Bazom podataka, hardverom itd.) |
Jednostavan | Kompleks |
Provodi programer | Provodi ispitivač |
To je vrsta testiranja bijele kutije | To je vrsta testiranja crne kutije |
Jeftino održavanje | Skupo održavanje |
Počinje od specifikacije modula | Počinje od specifikacije sučelja |
Jedinstveno testiranje ima uski opseg jer samo provjerava radi li svaki mali dio koda ono što je predviđeno. | Ima širi opseg jer pokriva cijelu aplikaciju |
Ishod jediničnog testiranja je detaljna vidljivost koda | Rezultat integracijskog testiranja je detaljna vidljivost integracijske strukture |
Otkrijte probleme unutar funkcionalnosti samo pojedinih modula. Ne izlaže pogreške integracije ili probleme širom sustava. | Otkrijte programske pogreške kada različiti moduli međusobno komuniciraju kako bi stvorili cjelokupni sustav |
Ispitivanje funkcionalnosti
DO tehnika ispitivanja crne kutije , gdje se funkcionalnost aplikacije ispituje kako bi se generirao željeni izlaz pri pružanju određenog unosa naziva se „Funkcionalno testiranje“.
U našem procesi testiranja softvera , to radimo pišući test slučajeve prema zahtjevima i scenarijima. Za bilo koju funkcionalnost, broj napisanih testnih slučajeva može varirati od jednog do više.
Test slučajevi u osnovi se sastoje od sljedećih dijelova:
- Sažetak testa
- Preduvjeti (ako postoje)
- Koraci unosa testnog slučaja
- Podaci o ispitivanju (ako postoje)
- Očekivani izlaz
- Bilješke (ako postoje)
'Temeljeno na zahtjevima' i 'Temeljeno na poslovnom scenariju' dva su oblika funkcionalnih ispitivanja koja se provode.
U ispitivanju temeljenom na zahtjevima, test slučajevi se kreiraju prema zahtjevu i testiraju u skladu s tim. U funkcionalnom testiranju temeljenom na poslovnom scenariju, testiranje se izvodi imajući na umu sve scenarije iz poslovne perspektive.
Međutim, glavni hendikep funkcionalnog ispitivanja je vjerojatna suvišnost u testiranju i mogućnost propuštanja nekih logičkih pogrešaka.
izmjenjivač glasa koji radi s neskladom
Točna razlika
Pogledajmo njihove razlike.
Evo nekih glavnih:
Jedinstveno ispitivanje | Integracijsko ispitivanje | Ispitivanje funkcionalnosti | |
---|---|---|---|
Definicija i svrha | Testiranje najmanjih jedinica ili modula pojedinačno. | Testiranje integracije dviju ili više jedinica / modula kombiniranih za izvršavanje zadataka. | Testiranje ponašanja aplikacije prema zahtjevu. |
Složenost | Nimalo složen jer uključuje najmanje kodove. | Nešto složeniji od jediničnih testova. | Složeniji u usporedbi s jedinstvenim i integracijskim testovima. |
Tehnike ispitivanja | Tehnika ispitivanja bijele kutije. | Tehnika ispitivanja bijele kutije i crne kutije. Ispitivanje sive kutije | Tehnika ispitivanja crne kutije. |
Glavna pažnja | Pojedinačni moduli ili jedinice. | Integracija modula ili jedinica. | Cjelokupna funkcionalnost aplikacije. |
Pogreška / pokriveni problemi | Jedinstveni testovi pronalaze probleme koji se često mogu pojaviti u modulima. | Integracijski testovi pronalaze probleme koji se mogu pojaviti tijekom integracije različitih modula. | Funkcionalni testovi pronalaze probleme koji aplikaciji ne dopuštaju da izvršava svoje funkcije. To uključuje i neke probleme temeljene na scenariju. |
Izbjegnite pitanje | Nema šanse za bijeg. | Manje šanse za bijeg. | Više šansi za bijeg jer je popis testova za pokretanje uvijek beskonačan. |
Također pročitajte => Što je ispitivanje značajki
Zaključak
Sve su ove tri vrste ispitivanja u korelaciji.
Da bi se postigla potpuna pokrivenost, potrebni su jedinstveni testovi za staze / linije koda, funkcionalni i integracijski testovi kako bi se osiguralo da ‘jedinice’ rade zajedno.
Nadam se da bi vam ovaj članak dao jasnu predodžbu o jedinstvenom, integracijskom i funkcionalnom testiranju, zajedno s njihovim razlikama, iako ovih oblika testiranja ima puno više !!
Preporučena literatura
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Spock za integraciju i funkcionalna ispitivanja selenom
- Funkcionalno ispitivanje vs nefunkcionalno testiranje
- Preuzimanje e-knjige za testiranje primera
- 10 najboljih alata za testiranje integracije za pisanje integracijskih testova
- Ključne razlike između testiranja crne kutije i bijele kutije
- Kompletni vodič za funkcionalno ispitivanje sa svojim vrstama i primjerima
- Funkcionalno testiranje protiv testiranja izvedbe: treba li to istodobno?