Što je testiranje sučelja? Vrste i primjer
⚡ Pametni sažetak
Testiranje sučelja provjerava ispravno razmjenjuju li dva povezana softverska sustava podatke. Obuhvaća veze web poslužitelja, aplikacijskog poslužitelja i poslužitelja baze podataka koje prenose svaki zahtjev koji aplikacija uputi, zajedno s obradom pogrešaka oko njih.
Što je testiranje sučelja?
Testiranje sučelja definira se kao vrsta testiranja softvera koja provjerava je li komunikacija između dva različita softverska sustava ispravno obavljena.
Veza koja integrira dvije komponente naziva se sučelje. To sučelje u računalnom svijetu može biti bilo što poput API-ja, web servisa itd. Testiranje ovih povezujućih servisa ili sučelja naziva se testiranje sučelja.
Sučelje je zapravo softver koji se sastoji od skupova naredbi, poruka i drugih atributa koji omogućuju komunikaciju između uređaja i korisnika.
Važno je da sučelje ima manutract: dogovoreni format zahtjeva, dogovoreni format odgovora, dogovoreni skup kodova pogrešaka i dogovoreno vremensko ograničenje. Vježbe testiranja sučelja koje...tracs obje strane, tako da promjena koju napravi jedan tim ne prekida tiho drugi. Budući da većina ovog prometa nikada ne dospije na ekran, nedostaci koje pronađe su nevidljivi testiranje crne kutije izvodi se samo putem korisničkog sučelja.
Kako napraviti testiranje sučelja
Testiranje sučelja uključuje testiranje dva glavna segmenta:
- Web poslužitelj i sučelje poslužitelja aplikacija
- Aplikacijski poslužitelj i sučelje poslužitelja baze podataka.
Za gore navedene scenarije, testiranje sučelja se provodi na
- Provjerite izvode li se poslužitelji ispravno ili ne
- Pogreške se pravilno obrađuju ili vraćaju poruku o pogrešci za bilo koji upit koji napravi aplikacija
- Provjerite ishode kada se veza s web poslužiteljem poništi između
Donji dijagram prikazuje ta dva segmenta kao jedan lanac, gdje preglednik komunicira s web poslužiteljem, web poslužitelj komunicira s aplikacijskim poslužiteljem, a aplikacijski poslužitelj komunicira s poslužiteljem baze podataka.
U praksi, tester prolazi kroz taj lanac jedan po jedan skok. Svaki skok se prvo pokreće s valjanim zahtjevom, zatim s neispravnim zahtjevom, a na kraju s namjerno nedostupnim dalekim krajem, tako da se i put uspjeha i put neuspjeha bilježe u odnosu na isti testni slučaj.
Primjer testiranja sučelja
Pretpostavimo da za bilo koju xyz aplikaciju sučelje uzima XML datoteka kao ulaz i isporučuje JSON datoteku kao izlaz. Za testiranje sučelja ove aplikacije potrebne su samo specifikacije XML formata datoteke i JSON formata datoteke.
Pomoću ovih specifikacija možemo stvoriti primjere ulaznih XML datoteka i unijeti ih u sučelje. Zatim se validacijom ulazne (XML) i izlazne (JSON) datoteke s odgovarajućim zahtjevom testira sučelje.
Primijetite što primjeru nije potrebno: nema ekrana, nema izgradnje prednjeg dijela i nema poznavanja koda unutar sučelja. Dvije specifikacije formata dovoljne su za pisanje testova, zbog čega testiranje sučelja može započeti mnogo prije nego što korisničko sučelje postoji.
Zašto testirati sučelje
Testiranje sučelja je obavljeno
- Kako bi se osiguralo da krajnji korisnici ili kupci ne bi trebali naići na bilo kakve probleme prilikom korištenja određenog softverskog proizvoda
- Identificirati kojim područjima primjene obično pristupaju krajnji korisnici i provjeriti njegovu jednostavnost upotrebe.
- Za provjeru sigurnosnih zahtjeva dok se komunikacija širi između sustava
- Za provjeru je li rješenje sposobno nositi se s mrežnim kvarovima između aplikacijskog poslužitelja i web stranice
Tu je i argument cijene. Nedostatak u formatu zahtjeva je jeftin za popravak dok su dva sustava još uvijek u procesu povezivanja, a skup je nakon što je nizvodni sustav već pohranio neispravne podatke.
Vrste testiranja sučelja
Tijekom testiranja sučelja obavljaju se različite vrste testiranja na sučelju koje mogu uključivati
- Tijek rada: Osigurava da motor sučelja rukuje vašim standardnim tijekovima rada prema očekivanjima.
- Rubni slučajevi - neočekivane vrijednosti: To se uzima u obzir kada testiranje uključuje datum, mjesec i dan obrnutim redoslijedom.
- Testiranje performansi, opterećenja i mreže: Sučelje s velikim volumenom može zahtijevati više Testiranje opterećenja nego sučelje male količine, ovisno o mehanizmu sučelja i infrastrukturi povezivanja
- Pojedinačni sustavi: To uključuje testiranje svakog sustava pojedinačno. Na primjer, sustav naplate i sustav upravljanja zalihama za maloprodajnu trgovinu trebali bi moći raditi odvojeno.
Prva stavka je dovoljno blizu testiranje tijeka rada ponovno upotrijebiti svoje scenarije, a posljednja stavka se preklapa s testiranje modula, budući da će sustav koji sam od sebe zakazati ponovno zakazati nakon što se spoji.
Strategija testiranja sučelja
Strategija testiranja sučelja je metoda koja se koristi za testiranje sučelja uobičajenim testovima bez obzira na implementaciju. Možemo koristiti abstract testne slučajeve i stvaranje konkretnih instanci testnog slučaja za svaku implementaciju strategije testiranja sučelja. Baza/abstract testni slučajevi izvode implementacijski neutralne testove, dok konkretni testovi brinu o instanciranju objekata za testiranje i izvođenju testova specifičnih za implementaciju.
Prednost te strukture je ponovna upotreba. Kada se pojavi treća implementacija istog sučelja, abstract suite se protiv njega izvršava nepromijenjen, a potrebno je napisati samo kod za instanciranje. Ista ideja se primjenjuje u većem opsegu u testiranje komponenti, gdje je zajednička kontract suite se pokreće na svakoj komponenti koja tvrdi da ga zadovoljava.
Alati za testiranje sučelja
Budući da sučelje nema ekran, alati moraju izravno konstruirati zahtjeve i utvrđivati ih na temelju sirovih odgovora. Timovi obično kombiniraju tri kategorije alata.
- API klijenti i alati za izradu zahtjeva: Alati kao što su Postman, SoapUI, Insomnia i Hoppscotch šalju REST, SOAP ili GraphQL pozive, pohranjuju ih kao višekratno upotrebljive kolekcije i potvrđuju statusne kodove, zaglavlja i tijela odgovora.
- Codebiblioteke za testiranje na razini: Biblioteke koje se izvode unutar postojećeg testnog paketa omogućuju provjerama sučelja da rade uz jedinične testove i izvršavaju se na svakoj izgradnji, što ih sprječava da zastare.
- Alati za učitavanje i protokoliranje: Alat kao što je JMeter pokreće isto sučelje na razini volumena, što funkcionalnu provjeru pretvara u ispitivanje performansi veze.
- Virtualizacija usluga i simulacije: Stub koji zauzima udaljeni kraj omogućuje testiranje jedne strane dok je druga nedostupna, nedovršena ili preskupa za ponovljeno pozivanje.
Odabir je manje važan od pokrivenosti. Bez obzira na to koji se klijent odabere, kolekcija zahtjeva mora se pohraniti u kontrolu verzija zajedno s kodom, tako da promjena sučelja i promjena njegovih testova stižu u istom commitu. Pojedinosti šire kategorije obuhvaćene su u API testiranje.
Kontrolna lista za testiranje sučelja i najbolje prakse
Kratka kontrolna lista osigurava pouzdanu pokrivenost sučelja u svim izdanjima. Proučite je za svaku vezu, a ne za aplikaciju u cjelini.
- stracprvo: Potvrdite da sheme zahtjeva i odgovora odgovaraju objavljenoj specifikaciji, polje po polje, uključujući tipove podataka i opcionalna polja.
- Granične vrijednosti: Pošalji prazne podatke, polja maksimalne duljine, neočekivane skupove znakova i obrnute formate datuma.
- Putovi pogrešaka: Provjerite vraća li svaki neuspjeh smislen kod i poruku, a ne stog tracili tihi uspjeh.
- Vremenska ograničenja i ponovni pokušaji: Prekinite vezu usred zahtjeva i potvrdite da pozivatelj sigurno ponovno pokušava bez dupliciranja transakcije.
- Sigurnost: Provjerite autentifikaciju, autorizaciju i šifriranje na poveznici te potvrdite da poruke o pogreškama ne otkrivaju interne detalje.
- Dosljednost podataka: Pročitajte zapis s druge strane i potvrdite da ništa nije skraćeno, ponovno kodirano ili preuređeno tijekom prijenosa.
- Volumen: Ponovite poziv s najvećim prometom pod istodobnim opterećenjem i pripazite na iscrpljenost skupa veza.
Tri prakse čine taj popis ponovljivim. Prvo, automatizirajte paket i pokrenite ga na svakoj izgradnji, jer se sučelja mijenjaju tiše od ekrana. Drugo, zabilježite puni zahtjev i odgovor za svaki kvar, budući da je kvar sučelja gotovo nemoguće reproducirati sa snimke zaslona. Treće, održavajte paket neovisnim o testnim podacima koje su stvorili drugi paketi, tako da kvar ukazuje na sučelje, a ne na nedostajući zapis.
Ove provjere prirodno se uklapaju u širi plan opisan u vrste testiranja softverai pokreću se prije nego što se iste veze koriste od kraja do kraja tijekom testiranje sustava.
Testiranje sučelja nasuprot integracijskom testiranju
Ta dva pojma su povezana, a ne suprotstavljena: testiranje sučelja dio je integracijskog rada koji se usredotočuje na samu vezu. Tablica u nastavku naglašava naglasak svake strane.
| Testiranje sučelja | Ispitivanje integracije |
|---|---|
| Vrsta integracijskog testa koja se bavi testiranjem sučelja između komponenti ili sustava | Testiranje koje se provodi radi otkrivanja nedostataka u sučeljima i interakcijama između integriranih komponenti ili sustava. |
| Fokus je prevaratract — format zahtjeva, format odgovora, kodovi pogrešaka i vremenska ograničenja | Fokus je kombinirano ponašanje komponenti nakon što su spojene |
| Može se izvršiti čim specifikacija postoji, s dalekim krajem koji je zaustavljen | Zahtijeva da se uključene komponente izgrade i implementiraju zajedno |
| Kvar ukazuje na jednu vezu | Kvar može ukazivati na bilo koju komponentu u sastavljenoj grupi |
Svatko tko je nov u široj disciplini pronaći će okolne razine opisane u integracijsko testiranje i općenito testiranje softvera uvod, dok gore korištena terminologija dolazi iz standardnih programsko inženjerstvo praksa. Za sustave okrenute pregledniku, iste se veze na kraju ponovno koriste tijekom testiranje web aplikacija.

