Testiranje interoperabilnosti u testiranju softvera
⚡ Pametni sažetak
Testiranje interoperabilnosti provjerava ispravno li softverski proizvod razmjenjuje podatke s drugim komponentama, uređajima i sustavima dobavljača, dokazujući da se funkcionalnost od početka do kraja između dvaju komunicirajućih sustava ponaša točno onako kako je navedeno u navedenim zahtjevima.
Što je testiranje interoperabilnosti?
Ispitivanje interoperabilnosti je vrsta testiranja softvera koja provjerava može li softver komunicirati s drugim softverskim komponentama i sustavima. Svrha testova interoperabilnosti je osigurati da softverski proizvod može komunicirati s drugim komponentama ili uređajima bez ikakvih problema s kompatibilnošću.
Drugim riječima, testiranje interoperabilnosti znači dokazivanje da je funkcionalnost od početka do kraja između dvaju komunicirajućih sustava onakva kakva je specificirana zahtjevima. Na primjer, testiranje interoperabilnosti provodi se između pametnih telefona i tableta kako bi se provjerio prijenos podataka putem Bluetootha.
Klasificiran je kao oblik funkcionalno ispitivanje, jer pitanje na koje odgovara je bihevioralno: stižu li razmijenjene informacije netaknute i reagira li prijemni sustav ispravno na njih?
Različite razine interoperabilnosti softvera
Dva sustava mogu se međusobno slagati na nekoliko dubina. Svaka razina ispod pretpostavlja da ona iznad nje već funkcionira.
- Fizička interoperabilnost — sama veza se uspostavlja, na primjer putem Bluetootha, Wi-Fi-ja, USB-a ili žičane mrežne veze.
- Interoperabilnost tipa podataka — obje strane kodiraju i dekodiraju iste primitivne tipove, skupove znakova i redoslijed bajtova.
- Razina specifikacije Interoperabilnost — obje strane implementiraju iste formate poruka i protokolna pravila objavljena u specifikaciji.
- Semantička interoperabilnost — obje strane pridaju isto značenje razmijenjenim podacima, pa se polje poput „temperature“ tumači u istoj jedinici i kontekstu.
Zašto provoditi testiranje interoperabilnosti
Testiranje interoperabilnosti provodi se jer,
- Osigurava pružanje cjelovite usluge za dva ili više proizvoda različitih dobavljača.
- Softverski proizvod trebao bi moći komunicirati s drugim komponentama ili uređajima bez ikakvih problema s kompatibilnošću
Rizici povezani s nedostatkom testiranja interoperabilnosti su
- Gubitak podataka
- Nepouzdana izvedba
- Nepouzdan rad
- Neispravan rad
- Niska mogućnost održavanja
Kako napraviti testiranje interoperabilnosti
Proces testiranja interoperabilnosti uključuje sljedeće korake.
Korak 1: Pokreni projekt.
- Definirati i formalizirati opis posla te postaviti infrastrukturu za upravljanje projektima.
Korak 2: Postavite laboratorij za testiranje
- Provjerite jesu li sve potrebne vještine i alati za automatizaciju postavljeni za aktivnosti testiranja
- Koristite alate za automatizaciju za minimiziranje testnih slučajeva i ponovnu upotrebu testnih slučajeva
- Održavajte bazu podataka konfiguracijskih datoteka
- Zabilježite i analizirajte metrike za projekt
- Zabilježite konfiguraciju iz neuspješnih testova za referencu i analizu
Korak 3: Razviti plan testiranja
- Napiši Plan testiranja
- Definirajte testne slučajeve i procedure
- Postavite potrebnu opremu za praćenje za održavanje dnevnika ispitivanja.
Korak 4: Izvršite testni plan
- Izvršite testne slučajeve
- Surađujte s testnim timom kako biste analizirali uzrok neuspjeha
Korak 5: Dokumentirajte rezultate
- Upotrijebite zapisnike testiranja za bilježenje bilješki o implementaciji
Korak 6: Oslobodite resurse i procijenite izvedbu na projektu,
- Uz pomoć alata za automatizaciju, analizirajte rezultate testiranja
Primjeri testnih slučajeva za testiranje interoperabilnosti
Donji dijagram prikazuje tipičnu postavku s dva dobavljača: uređaji različitih proizvođača su povezani i svaka razmjena između njih postaje testni slučaj.
Strategija testiranja za testiranje interoperabilnosti uključuje
- Povežite dva ili više uređaja različitih proizvođača
- Provjerite povezanost između uređaja
- Provjerite može li uređaj slati i primati pakete ili okvire jedan od drugoga
- Provjerite postupa li se ispravno s podacima u mrežnom i pogonskom sloju
- Provjerite rade li implementirani algoritmi ispravno
- Rezultat u redu: provjeri sljedeći rezultat
- Rezultat nije u redu: Koristite alate za praćenje kako biste otkrili izvor pogreške
- Prijavite rezultat u alatu za izvješćivanje o testiranju.
Alati i tehnike testiranja interoperabilnosti
Nijedan pojedinačni proizvod ne pokriva matricu interoperabilnosti od početka do kraja. Većina timova kombinira pogled na razini paketa, funkcionalni pogled i način zamjene partnerskih sustava koji nisu dostupni u laboratoriju.
| Kategorija | Tipični alati | Što vam pomaže provjeriti |
|---|---|---|
| Analizatori protokola i paketa | Wireshark, tcpdump, snifferi protokola dobavljača | Odlaze li i stižu li poruke u očekivanom formatu, na razini bita |
| API i klijenti web servisa | Postman, SoapUI | Zahtjev i odgovor kontracts između usluga koje su izgradili različiti dobavljači |
| Virtualizacija usluga, stubovi i mockovi | WireMock, Mountebank, dobavljači SDK stubovi | Ponašanje partnerskog sustava koji je nedostupan, skup ili još uvijek u razvoju |
| Simulatori i emulatori uređaja | Simulatori dobavljača, emulatori pametnih domova i IoT platformi | Velike matrice uređaja i firmvera bez kupnje svake fizičke jedinice |
| CI automatizacija | Jenkins, GitLab CI, Azure Cjevovodi | Automatsko ponovno pokretanje pune kombinacijske matrice nakon svake izgradnje |
Uz alate, ponavljaju se tri tehnike: parno testiranje kako bi matrica kombinacija dobavljača bila upravljiva, negativno testiranje s neispravnim ili porukama izvan verzije i zapisivanje na razini protokola kako bi se kvar mogao prijaviti. tracdo točno onog okvira koji se slomio.
Najbolje prakse za testiranje interoperabilnosti
Nedostaci interoperabilnosti su skupi jer se pojavljuju kasno, u tuđem okruženju. Prakse u nastavku drže matricu pod kontrolom.
- Održavajte matricu kompatibilnosti koji navodi svaki model uređaja, verziju firmvera i verziju protokola u opsegu te ga ažurira pri svakom izdanju.
- Testirajte unatrag i unaprijed kompatibilnost, ne samo najnoviji par. Stariji vršnjaci ostaju u polju godinama.
- Anchor testni slučajevi prema objavljenom standardu kao što je IEEE, ISO, IETF ili industrijski profil, tako da „prolaz“ znači nešto što oba dobavljača prihvaćaju.
- Automatizirajte i radite kontinuirano unutar CI cjevovoda, jer ažuriranje partnera može prekinuti uparivanje koje je prošlo jučer.
- Simulirajte prije kupnje — emulatori jeftino pokrivaju širok raspon, a fizički laboratoriji zatim potvrđuju kombinacije s najvećim rizikom.
- Kontrola verzija svake konfiguracije tako da se neuspješno izvršavanje može točno reproducirati.
- Ispitivanje degradiranih uvjeta uključujući isteke vremena, odbačene pakete, djelomične poruke i neusklađenost verzija, ne samo sretan put.
- Dogovorite se o formatu izvještavanja unaprijed s partnerskim dobavljačem, tako da su nedostaci podložni tužbi s obje strane.
Testiranje interoperabilnosti nasuprot testiranju sukladnosti
Testiranje interoperabilnosti, sukladnosti i kompatibilnosti često se koriste naizmjenično, no svako od njih odgovara na različito pitanje.
| Aspekt | Ispitivanje interoperabilnosti | Ispitivanje sukladnosti | Ispitivanje kompatibilnosti |
|---|---|---|---|
| Svrha | Osigurava da će proizvod ili softver bez problema surađivati s drugim certificiranim proizvodima. | Osigurava sukladnost proizvoda s potrebnim standardima i specifikacijama | Osigurava ispravan rad proizvoda unutar određenog okruženja, kao što su operativni sustav, preglednik ili konfiguracija hardvera. |
| Odgovoreno na pitanje | Mogu li ova dva sustava funkcionirati zajedno? | Pridržava li se ovaj sustav pravilnika? | Radi li ovaj sustav ovdje ispravno? |
| Referentna točka | Proizvod drugog dobavljača | Objavljeni standard | Ciljna platforma ili okruženje |
| Primjer | Prijenos datoteka između telefona i tableta putem Bluetootha | Validacija poruka protokola u odnosu na specifikaciju | Pokretanje iste aplikacije na Android 14, Android 15 i Android 16 |
Nedostaci testiranja interoperabilnosti
Glavne poteškoće u testiranju interoperabilnosti su
- Utvrđivanje temeljnih uzroka nedostataka — kvar se može nalaziti u bilo kojem sustavu ili u mreži između njih.
- Točno mjerenje — rezultati ovise o vremenu i opterećenju, tako da isti test može proći i ne proći u uzastopnim ponavljanjima.
- Skalabilnost testiranja — svaki novi dobavljač množi matricu kombinacija.
- Složenost mreže — stvarne topologije rijetko odgovaraju pojednostavljenoj laboratorijskoj postavci.
- Ispitivanje ispitne opreme — analizatori i simulatori trebaju vlastitu validaciju prije nego što se rezultatima može vjerovati.
- Dokumentiranje rezultata testa i učenja — nalazi moraju biti čitljivi vanjskom partneru, ne samo lokalnom timu.
- Neadekvatni zahtjevi — nejasne specifikacije ostavljaju oba dobavljača tehnički usklađenima, ali ipak nesposobnima za komunikaciju.


