what is integration testing
Što je integracijsko testiranje: naučite na primjerima integracijskog testiranja
Integracijsko testiranje vrši se za testiranje modula / komponenata kada su integrirani kako bi se potvrdilo da rade kako se očekuje, tj. Za testiranje modula koji rade u redu pojedinačno nema problema kada se integriraju.
Kada se govori o testiranju velike aplikacije korištenjem tehnike testiranja crne kutije, uključuje kombinaciju mnogih modula koji su međusobno usko povezani. Možemo primijeniti koncepte tehnike ispitivanja integracije za testiranje ovih vrsta scenarija.
Popis tutorijala obuhvaćenih ovom serijom:
Vodič br. 1: Što je integracijsko testiranje? (Ovaj vodič)
Vodič br. 2: Što je inkrementalno ispitivanje
Vodič br. 3: Što je ispitivanje komponenata
Vodič br. 4: Kontinuirana integracija
Vodič br. 5 Razlika između jedinstvenog testiranja i integracije
Vodič br. 6: Top 10 alata za testiranje integracije
Što ćete naučiti:
- Što je integracijsko testiranje?
- Zašto test integracije?
- Prednosti
- Izazovi
- Vrste integracijskog ispitivanja
- Pristup integracijskom testiranju
- Test integracije GUI aplikacije
- Koraci za započinjanje integracijskih testova
- Kriteriji ulaska / izlaska za integracijsko ispitivanje
- Slučajevi ispitivanja integracije
- Je li integracija tehnika bijele ili crne kutije?
- Alati za testiranje integracije
- Ispitivanje integracije sustava
- Razlika između integracijskog testiranja i testiranja sustava
- Zaključak
- Preporučena literatura
Što je integracijsko testiranje?
Značenje integracijskog testiranja prilično je jednostavno - Integrirajte / kombinirajte jedinično testirani modul jedan po jedan i testirajte ponašanje kao kombinirana jedinica.
Glavna funkcija ili cilj ovog ispitivanja je testiranje sučelja između jedinica / modula.
Inače integracijsko testiranje radimo nakon „Jedinstvenog testiranja“. Jednom kad se kreiraju i testiraju sve pojedinačne jedinice, započinjemo kombinirati one module „Jedinstveno testirano“ i započinjemo s integriranim ispitivanjem.
Glavna funkcija ili cilj ovog ispitivanja je testiranje sučelja između jedinica / modula.
Pojedinačni moduli prvo se ispituju u izolaciji. Jednom kada se moduli testiraju, integriraju se jedan po jedan, sve dok se svi moduli ne integriraju, kako bi se provjerilo kombinacijsko ponašanje i provjerilo jesu li zahtjevi ispravno implementirani ili ne.
Ovdje bismo trebali shvatiti da se integracijsko testiranje ne događa na kraju ciklusa, već se provodi istovremeno s razvojem. Dakle, u većini slučajeva svi moduli zapravo nisu dostupni za testiranje i evo u čemu je izazov testirati nešto što ne postoji!
Zašto test integracije?
Smatramo da je integracijsko testiranje složeno i da zahtijeva određeni razvoj i logičke vještine. To je istina! Koja je onda svrha integriranja ovog testiranja u našu strategiju testiranja?
Evo nekoliko razloga:
- U stvarnom svijetu, kada se aplikacije razvijaju, raščlanjuju se na manje module, a pojedinačni programeri dobivaju 1 modul. Logika koju implementira jedan programer prilično se razlikuje od drugog programera, pa postaje važno provjeriti je li logika koju implementira programer u skladu s očekivanjima i daje li ispravnu vrijednost u skladu s propisanim standardima.
- Često se lice ili struktura podataka mijenja kad putuje od jednog do drugog modula. Neke se vrijednosti dodaju ili uklanjaju, što uzrokuje probleme u kasnijim modulima.
- Moduli također komuniciraju s nekim alatima ili API-jevima treće strane koji također trebaju biti testirani da li su podaci koji su prihvaćeni tim API-jem / alatom točni i da je generirani odgovor također očekivan.
- Vrlo čest problem u testiranju - česta promjena zahtjeva! :) Mnogo puta programer primjenjuje promjene bez da ih jedinica testira. Tada integracijsko testiranje postaje važno.
Prednosti
Nekoliko je prednosti ovog ispitivanja, a nekoliko njih je navedeno u nastavku.
- Ovo ispitivanje osigurava ispravnost integriranih modula / komponenata.
- Integracijsko testiranje može se započeti kada moduli koji se testiraju postanu dostupni. Ne zahtijeva dovršenje drugog modula da bi se moglo izvršiti testiranje, jer se za isti mogu koristiti brtve i upravljački programi.
- Otkriva pogreške povezane sa sučeljem.
Izazovi
U nastavku je navedeno nekoliko izazova koji su uključeni u test integracije.
# 1) Integracijsko testiranje znači testiranje dva ili više integriranih sustava kako bi se osiguralo da sustav ispravno radi. Ne bi trebalo testirati samo integracijske veze, već bi trebalo obaviti iscrpno testiranje s obzirom na okoliš kako bi se osiguralo da integrirani sustav ispravno radi.
Mogu postojati različiti putovi i permutacije koji se mogu primijeniti za testiranje integriranog sustava.
#dva) Upravljanje integracijskim testiranjem postaje složeno zbog nekoliko čimbenika koji su u njemu uključeni kao što su baza podataka, platforma, okruženje itd.
# 3) Iako integrira bilo koji novi sustav s naslijeđenim sustavom, zahtijeva puno promjena i napora na testiranju. Isto se odnosi i na integraciju bilo koja dva naslijeđena sustava.
# 4) Integriranje dva različita sustava koja su razvile dvije različite tvrtke velik je izazov jer nije sigurno kako će jedan od sustava utjecati na drugi sustav ako se izvrše promjene u bilo kojem od njih.
Da bi se utjecaj tijekom razvoja sustava sveo na minimum, treba uzeti u obzir malo stvari poput moguće integracije s drugim sustavima itd.
Vrste integracijskog ispitivanja
Dolje je navedena vrsta integracije testa zajedno sa svojim prednostima i nedostacima.
Pristup velikom prasku:
Pristup velikog praska integrira sve module u jednom potezu, tj. Ne ide za integriranjem modula jedan po jedan. Provjerava radi li sustav prema očekivanjima ili nije jednom integriran. Ako se u potpuno integriranom modulu otkrije bilo koji problem, postaje teško otkriti koji je modul uzrokovao problem.
Pristup Velikog praska dugotrajan je postupak pronalaženja modula koji i sam ima kvar, jer bi to trebalo vremena, a kad se kvar otkrije, njegovo bi popravak koštalo skupo jer se kvar otkriva u kasnijoj fazi.
Prednosti pristupa Velikog praska:
- Dobar je pristup za male sustave.
Mane pristupa velikog praska:
- Teško je otkriti modul koji uzrokuje problem.
- Pristup Big Bang zahtijeva sve module za testiranje, što zauzvrat dovodi do manje vremena za testiranje, jer bi projektiranje, razvoj i integracija oduzimali većinu vremena.
- Testiranje se odvija samo odjednom što na taj način ne ostavlja vremena za kritično testiranje modula u izolaciji.
Koraci testiranja integracije:
- Pripremite integraciju Plan ispitivanja.
- Pripremite scenarije integracijskog testa i test slučajeve.
- Pripremite skripte za automatizaciju testa.
- Izvršiti test slučajeve.
- Prijavite nedostatke.
- Pratite i ponovo testirajte nedostatke.
- Ponovno testiranje i testiranje traje sve dok integracijsko testiranje ne završi.
Pristup integracijskom testiranju
Postoje temeljno 2 pristupa za provođenje test integracije:
- Pristup odozdo prema gore
- Pristup od vrha prema dolje.
Razmotrimo donju sliku kako bismo testirali pristupe:
Pristup odozdo prema gore:
Testiranje odozdo prema gore, kao što i samo ime govori, započinje od najniže ili najunutarnje jedinice aplikacije i postupno se kreće prema gore. Testiranje integracije započinje od najnižeg modula i postupno napreduje prema gornjim modulima aplikacije. Ova se integracija nastavlja sve dok se svi moduli ne integriraju i cijela aplikacija ne testira kao jedna cjelina.
U ovom su slučaju moduli B1C1, B1C2 i B2C1, B2C2 najniži modul koji je jedinstveno testiran. Moduli B1 i B2 još nisu razvijeni. Funkcionalnost modula B1 i B2 je u tome što poziva module B1C1, B1C2 i B2C1, B2C2. Budući da B1 i B2 još nisu razvijeni, trebao bi nam neki program ili 'stimulator' koji će pozvati module B1C1, B1C2 i B2C1, B2C2. Ti se programi stimulatora nazivaju VOZAČI .
Jednostavnim riječima, VOZAČI su lažni programi koji se koriste za pozivanje funkcija najnižeg modula u slučaju kada pozivna funkcija ne postoji. Tehnika odozdo prema gore zahtijeva pokretački program modula da unese testni slučaj na sučelje modula koji se ispituje.
Prednost ovog pristupa je u tome što je, ako postoji glavni kvar na najnižoj jedinici programa, lakše ga otkriti i mogu se poduzeti korektivne mjere.
Nedostatak je što glavni program zapravo ne postoji dok se zadnji modul ne integrira i ne testira. Kao rezultat, nedostaci u dizajnu više razine otkrit će se tek na kraju.
Pristup od vrha prema dolje
Ova tehnika započinje od gornjeg modula i postupno napreduje prema donjim modulima. Jedino se gornji modul testira u izolaciji. Nakon toga se donji moduli integriraju jedan po jedan. Postupak se ponavlja sve dok se svi moduli ne integriraju i ne ispitaju.
kako se koristi .jar datoteka
U kontekstu naše slike, ispitivanje započinje od modula A, a niži moduli B1 i B2 integrirani su jedan po jedan. Sada ovdje donji moduli B1 i B2 zapravo nisu dostupni za integraciju. Dakle, kako bismo testirali najmodernije module A, razvijamo “ STUBOVI '.
“Stubs” se mogu nazvati isječcima koda koji prihvaća ulaze / zahtjeve gornjeg modula i vraća rezultate / odgovor. Na taj način, usprkos donjim modulima, ne postoje, u mogućnosti smo testirati gornji modul.
U praktičnim scenarijima ponašanje klica nije tako jednostavno kako se čini. U ovo doba složenih modula i arhitekture, takozvani modul, većinu vremena uključuje složenu poslovnu logiku poput povezivanja s bazom podataka. Kao rezultat toga, stvaranje Stubova postaje jednako složeno i oduzima puno vremena kao i pravi modul. U nekim slučajevima može se ispostaviti da je modul Stub veći od stimuliranog modula.
I Stubs i vozači su lažni dio koda koji se koristi za testiranje „nepostojećih“ modula. Oni pokreću funkcije / metode i vraćaju odgovor koji se uspoređuje s očekivanim ponašanjem
Zaključimo neku razliku između Stubs i vozač :
Stubs | Vozač |
---|---|
Koristi se u pristupu odozgo prema dolje | Koristi se u pristupu odozdo prema gore |
Najprije se testira modul Top most | Najprije se ispituju najniži moduli. |
Potiče nižu razinu komponenata | Potiče višu razinu komponenata |
Lažni program komponenata niže razine | Lažni program za komponentu više razine |
Jedina promjena je Konstanta na ovom svijetu, pa imamo još jedan pristup pod nazivom ' Ispitivanje sendviča ”Koji kombinira značajke pristupa odozgo prema dolje i odozdo prema gore. Kada testiramo ogromne programe poput operativnih sustava, moramo imati još nekoliko tehnika koje su učinkovite i povećavaju samopouzdanje. Testiranje sendviča ovdje igra vrlo važnu ulogu, gdje se istovremeno započinje i testiranje odozgo prema dolje i odozdo prema gore.
Integracija započinje sa srednjim slojem i istovremeno se kreće prema gore i dolje. U slučaju naše brojke, naše testiranje započet će od B1 i B2, gdje će jedan krak testirati gornji modul A, a drugi krak donji modul B1C1, B1C2 & B2C1, B2C2.
Budući da oba pristupa započinju istodobno, ova je tehnika pomalo složena i zahtijeva više ljudi zajedno sa određenim skupinama vještina, što dodatno povećava troškove.
Test integracije GUI aplikacije
Sada razgovarajmo o tome kako možemo podrazumijevati integracijsko testiranje u tehnici Black box.
Svi razumijemo da je web aplikacija višestambena aplikacija. Imamo prednji kraj koji je vidljiv korisniku, imamo srednji sloj koji ima poslovnu logiku, imamo još srednji sloj koji vrši neke provjere valjanosti, integrira neke API-je treće strane itd., Zatim imamo zadnji sloj koji je baza podataka.
Primjer integracijskog testiranja:
Provjerimo donji primjer:
Vlasnik sam oglašivačke tvrtke i objavljujem oglase na različitim web mjestima. Na kraju mjeseca želim vidjeti koliko je ljudi vidjelo moje oglase i koliko je ljudi kliknulo moje oglase. Trebam izvješće o prikazanim oglasima i u skladu s tim naplaćujem svojim klijentima.
GenNext softver razvio ovaj proizvod za mene, a ispod je bila arhitektura:
LUK - Modul korisničkog sučelja, koji je vidljiv krajnjem korisniku, gdje su dati svi ulazi.
BL - Je li modul Business Logic koji sadrži sve izračune i poslovne metode.
VAL - Je li modul za provjeru valjanosti, koji ima sve provjere ispravnosti unosa.
CNT - Je li modul sadržaja koji ima sav statički sadržaj, specifičan za ulaze koje je korisnik unio. Ti se sadržaji prikazuju u izvješćima.
U - Je li modul Engine, ovaj modul čita sve podatke koji dolaze iz BL, VAL i CNT modula, ekstrahira SQL upit i aktivira ga u bazu podataka.
Planer - Je li modul koji raspoređuje sva izvješća na temelju odabira korisnika (mjesečno, tromjesečno, polugodišnje i godišnje)
DB - Je li baza podataka.
Sada, nakon što smo vidjeli arhitekturu cijele web aplikacije, kao jednu jedinicu, integracijsko testiranje, u ovom će se slučaju usredotočiti na protok podataka između modula.
Ovdje su sljedeća pitanja:
- Kako će BL, VAL i CNT modul čitati i interpretirati podatke unesene u UI modul?
- Prima li BL, VAL i CNT modul točne podatke iz korisničkog sučelja?
- U kojem se formatu podaci s BL, VAL i CNT prenose na EQ modul?
- Kako će EQ čitati podatke i izdvojiti upit?
- Je li upit pravilno izdvojen?
- Dobiva li Planer točne podatke za izvješća?
- Je li skup rezultata koji je EN primio iz baze podataka točan i kako se očekuje?
- Je li EN sposoban poslati odgovor natrag na BL, VAL i CNT modul?
- Je li UI modul u stanju pročitati podatke i prikladno ih prikazati na sučelju?
U stvarnom svijetu komunikacija podataka vrši se u XML formatu. Dakle, bez obzira na podatke koje korisnik unese u korisničko sučelje, oni se pretvaraju u XML format.
U našem scenariju podaci uneseni u UI modul pretvaraju se u XML datoteku koja se interpretira s 3 modula BL, VAL i CNT. EN modul čita rezultirajuću XML datoteku koju su generirala 3 modula i iz nje izvlači SQL i upite u bazu podataka. EN modul također prima skup rezultata i pretvara ga u XML datoteku i vraća natrag u UI modul koji rezultate pretvara u korisnički čitljiv oblik i prikazuje.
U sredini imamo modul planera koji prima skup rezultata od EN modula, kreira i raspoređuje izvješća.
Pa gdje se pojavljuje integracijsko testiranje?
Pa, ispitivanje protoka podataka ili podataka ispravno ili ne predstavljat će vaše integracijsko testiranje, što bi u ovom slučaju potvrdilo XML datoteke. Jesu li XML datoteke ispravno generirane? Imaju li točne podatke? Prenose li se podaci ispravno s jednog modula na drugi? Sve će se ove stvari testirati u sklopu integracijskog testiranja.
Pokušajte generirati ili dobiti XML datoteke i ažurirati oznake i provjeriti ponašanje. To je nešto vrlo različito od uobičajenog testiranja koje ispitivači obično rade, ali to će dodati vrijednost znanju i razumijevanju aplikacije.
Nekoliko drugih uvjeta ispitivanja uzoraka mogu biti sljedeći:
- Generiraju li opcije izbornika ispravan prozor?
- Mogu li prozori pozvati testirani prozor?
- Za svaki prozor odredite pozive funkcija za prozor koji bi aplikacija trebala dopustiti.
- Prepoznajte sve pozive iz prozora prema drugim značajkama koje bi aplikacija trebala dopustiti
- Prepoznajte reverzibilne pozive: zatvaranje pozvanog prozora trebalo bi se vratiti u prozor za pozivanje.
- Prepoznajte nepovratne pozive: pozivanje prozora zatvara se prije nego se pojavi pozvani prozor.
- Testirajte različite načine izvršavanja poziva u drugi prozor, na pr. - izbornici, gumbi, ključne riječi.
Koraci za započinjanje integracijskih testova
- Razumijevanje arhitekture vaše aplikacije.
- Identificirajte module
- Shvatite što svaki modul radi
- Shvatite kako se podaci prenose s jednog modula na drugi.
- Razumjeti kako se podaci unose i primaju u sustav (ulazna i izlazna točka aplikacije)
- Odvojite aplikaciju prema vašim potrebama za testiranje.
- Identificirajte i stvorite uvjete ispitivanja
- Uzmite po jedan uvjet i zapišite test slučajeve.
Kriteriji ulaska / izlaska za integracijsko ispitivanje
Kriteriji za prijavu:
- Dokument o planu integracijskog ispitivanja potpisan je i odobren.
- Pripremljeni su slučajevi integracijskih testova.
- Podaci o testiranju su stvoreni.
- Jedinstveno ispitivanje razvijenih modula / komponenata je gotova.
- Sve kritične i visokoprioritetne greške su zatvorene.
- Probno okruženje je postavljeno za integraciju.
Kriteriji izlaska:
- Izvršeni su svi slučajevi integracijskog testa.
- Ne otvaraju se kritične i prioritetne greške P1 i P2.
- Izvještaj o ispitivanju je pripremljen.
Slučajevi ispitivanja integracije
Slučajevi integracijskih testova uglavnom se usredotočuju na sučelje između modula, integrirane veze, prijenos podataka između modula kao modula / komponenata koji su već jedinično testirani, tj. funkcionalnost i ostali aspekti ispitivanja već su pokriveni.
Dakle, glavna ideja je testirati funkcionira li integracija dva radna modula kako se očekuje kada se integriraju.
Primjeri testnih slučajeva integracije za aplikaciju Linkedin uključuju:
- Provjera veze sučelja između stranice za prijavu i početne stranice, tj. Kada korisnik unese vjerodajnice i evidentira, treba biti usmjeren na početnu stranicu.
- Provjera veze sučelja između početne stranice i stranice profila, tj. Stranica profila trebala bi se otvoriti.
- Provjerite vezu sučelja između mrežne stranice i stranica s povezivanjem, tj. Klik na gumb Prihvati na pozivnicama mrežne stranice trebao bi prikazati prihvaćeni poziv na vašoj stranici povezivanja nakon što se klikne.
- Provjerite vezu sučelja između stranica s obavijestima i recite gumb za čestitanje, tj. Ako kliknete gumb za čestitku treba usmjeriti prema novom prozoru poruke.
Za ovu web lokaciju mogu se napisati mnogi slučajevi integracijskog testa. Gore navedene četiri točke samo su primjer da se razumije koji su slučajevi integracijskog ispitivanja uključeni u testiranje.
Je li integracija tehnika bijele ili crne kutije?
Tehnika integracijskog ispitivanja može se računati i u crne okvire tehnika bijele kutije . Tehnika crne kutije je mjesto gdje ispitivač ne mora imati nikakvo interno znanje o sustavu, tj. znanje kodiranja nije potrebno, dok tehnika bijelog okvira treba interno znanje o aplikaciji.
Sada bi, tijekom izvođenja integracijskog testiranja, moglo uključivati testiranje dviju integriranih web usluga koje će dohvatiti podatke iz baze podataka i pružiti podatke prema potrebi, što znači da bi se moglo testirati tehnikom bijelog okvira, dok se integracija nove značajke u web stranicu može testirati tehnikom crne kutije.
Dakle, nije specifično da je integracijsko testiranje tehnika crne ili bijele kutije.
Alati za testiranje integracije
Za ovo testiranje dostupno je nekoliko alata.
Slijedi popis alata:
- Tester racionalne integracije
- Kutomjer
- Na pari
- TESSY
Za više detalja o gornjim alatima pogledajte ovaj vodič:
10 najboljih alata za testiranje integracije za pisanje integracijskih testova
Ispitivanje integracije sustava
Test sistemske integracije radi se za testiranje cjelovit integrirani sustav .
Moduli ili komponente ispituju se pojedinačno u jedinstvenom ispitivanju prije integracije komponenata.
Nakon što se testiraju svi moduli, vrši se testiranje integracije sustava integriranjem svih modula i ispituje se sustav u cjelini.
Razlika između integracijskog testiranja i testiranja sustava
Integracijsko testiranje je ispitivanje u kojem se integriraju jedan ili dva modula koja su jedinično testirana kako bi se provjerilo i provjera radi li integrirani moduli kako se očekuje ili ne.
Testiranje sustava je testiranje gdje sustav u cjelini testira se, tj. svi su moduli / komponente integrirani zajedno kako bi se provjerilo radi li sustav prema očekivanjima i ne postoje problemi zbog integriranih modula.
Zaključak
Ovdje se radi o integracijskom testiranju i njegovoj provedbi u tehnici White box i Black box. Nadam se da smo to jasno objasnili relevantnim primjerima.
Integracija testa važan je dio ciklusa ispitivanja jer olakšava pronalaženje kvara kada su integrirana dva ili više modula kako bi se svi moduli integrirali u prvom koraku.
Pomaže u pronalaženju nedostataka u ranoj fazi, što zauzvrat štedi trud i troškove. Osigurava da integrirani moduli rade ispravno kako se očekuje.
Nadam se da bi vam ovaj informativni vodič o integracijskom testiranju obogatio znanje o konceptu.
Preporučena literatura
- Što je ispitivanje komponenata ili ispitivanje modula (naučite na primjerima)
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Spock za integraciju i funkcionalna ispitivanja sa selenom
- Razlike između jedinstvenog testiranja, integracijskog ispitivanja i funkcionalnog ispitivanja
- Integracija selena s JMeterom
- Preuzimanje e-knjige za testiranje primera
- Funkcionalno ispitivanje vs nefunkcionalno testiranje
- Vodič za testiranje u parovima ili za sve parove s alatima i primjerima