Što je ugrađeno testiranje u testiranju softvera?

⚡ Pametni sažetak

Testiranje ugrađenih sustava provjerava funkcionalno i nefunkcionalno ponašanje softvera i hardvera zajedno, jer su u ugrađenom sustavu ta dva dijela čvrsto povezana i nijedan se ne može pravilno validirati samostalno.

  • 🔘 Čvrsto spajanje: Hardver se gradi paralelno sa softverom, tako da pravo testno okruženje često stiže kasno.
  • ☑️ Pet razina: Testiranje softverske jedinice, integracije, sistemske jedinice, integracije sustava i validacije sustava cilja na različite granice modula.
  • Sigurnosni ulozi: Medicinski, željeznički, zrakoplovni i automobilski proizvodi zahtijevaju strogo dokumentirano ispitivanje prije nego što im se može dodijeliti certifikat.
  • 🧪 Preferencija sive kutije: Testiranje sistemskih jedinica promatra interne resurse i RTOS poruke, pa mu metode sive kutije najbolje odgovaraju.
  • 🛠️ Glavne prepreke: Ograničen pristup hardveru, komponente otvorenog koda, mješoviti softverski i hardverski nedostaci te nedostaci koji se ne mogu reproducirati.

Testiranje softvera i hardvera u ugrađenom sustavu

Što su ugrađeni sustavi?

Ugrađeni sustavi su elektronički kontrolirani uređaji gdje su softver i hardver čvrsto povezani. Ugrađeni sustavi mogu sadržavati razne računalne uređaje. To su računala ugrađena u druge uređaje za izvršavanje funkcija specifičnih za aplikaciju. Krajnji korisnik obično nije ni svjestan njihovog postojanja.

Ugrađeno testiranje

Ugrađeno testiranje je proces testiranja za provjeru funkcionalnosti i nefunkcionalni atribute softvera i hardvera u ugrađenom sustavu te osiguravanje da je konačni proizvod bez nedostataka. Glavna svrha testiranja ugrađenih sustava je provjeriti i potvrditi ispunjava li konačni proizvod ugrađenog hardvera i softvera zahtjeve klijenta ili ne.

Testiranje ugrađenog softvera provjerava i osigurava da je dotični softver dobre kvalitete i u skladu sa svim zahtjevima koje bi trebao ispunjavati. Testiranje ugrađenog softvera izvrstan je pristup jamčenju sigurnosti u kritičnim primjenama poput medicinske opreme, željeznica, zrakoplovstva, automobilske industrije itd. Strogo i pažljivo testiranje ključno je za dodjelu softverske certifikacije.

Kako izvršiti testiranje ugrađenog softvera

Općenito, testirate iz četiri razloga:

  • Za pronalaženje grešaka u softveru
  • Pomaže smanjiti rizik za korisnike i tvrtku
  • Smanjite troškove razvoja i održavanja
  • Za poboljšanje performansi

U ugrađenom testiranju izvode se sljedeće aktivnosti:

  1. Softver je opremljen nekim ulazima.
  2. Izvršava se dio softvera.
  3. Promatra se stanje softvera, a izlazi se provjeravaju s obzirom na očekivana svojstva, poput podudara li se izlaz s očekivanim ishodom, usklađenosti sa zahtjevima i odsutnosti padova sustava.

Vrste testiranja ugrađenog softvera

U osnovi, postoji pet razina testiranja koje se mogu primijeniti na ugrađeni softver.

Testiranje programske jedinice

Jedinični modul je ili funkcija ili klasa. Jedinično testiranje provodi razvojni tim, prvenstveno programer, i obično se provodi po modelu međusobnog pregleda. Testni slučajevi se razvijaju na temelju specifikacije modula.

Ispitivanje integracije

Integracijsko testiranje mogu se podijeliti u dva segmenta:

  • Testiranje integracije softvera
  • Testiranje integracije softvera/hardvera

Na kraju se testira interakcija hardverskih i softverskih komponenti. To može uključivati ​​ispitivanje interakcije između ugrađenih perifernih uređaja i softvera.

Razvoj ugrađenog softvera ima jedinstvenu karakteristiku: stvarno okruženje u kojem se softver izvodi obično se stvara paralelno sa softverom. To uzrokuje neugodnosti za testiranje, jer se sveobuhvatno testiranje ne može provesti u simuliranim uvjetima.

Testiranje jedinice sustava

Modul koji treba testirati sada je potpuni okvir koji se sastoji od kompletnog softverskog koda plus svih operativni sustav u stvarnom vremenu (RTOS) i dijelovi povezani s platformom kao što su prekidi, mehanizmi zadavanja zadataka, komunikacija i tako dalje. Protokol Point of Control više nije poziv funkcije ili metode, već poruka poslana ili primljena pomoću RTOS redova poruka.

Promatraju se resursi sustava kako bi se procijenila sposobnost sustava da podrži izvršenje ugrađenog sustava. Za ovaj aspekt, testiranje sive kutije je preferirana metoda testiranja. Ovisno o organizaciji, testiranje sistemskih jedinica je ili dužnost programera ili namjenskog tima za integraciju sustava.

Testiranje integracije sustava

Modul koji se testira započinje skupom komponenti unutar jednog čvora. Točke kontrole i promatranja (PCO) su mješavina mrežno povezanih komunikacijskih protokola i RTOS događaja, kao što su mrežne poruke. Osim komponente, virtualni tester može igrati i ulogu čvora.

Testiranje valjanosti sustava

Modul koji se testira je podsustav s potpunom implementacijom ili potpuni ugrađeni sustav. Cilj ovog završnog testa je ispuniti funkcionalne zahtjeve vanjskog entiteta. Imajte na umu da vanjski entitet može biti osoba ili uređaj u telekomunikacijskoj mreži ili oboje.

Razlika: ugrađeno testiranje i testiranje softvera

Donja tablica uspoređuje ugrađeno testiranje s konvencionalnim testiranje softvera.

Testiranje softvera Ugrađeno testiranje
Testiranje softvera odnosi se samo na softver. Ugrađeno testiranje odnosi se i na softver i na hardver.
U prosjeku se 90% testiranja u svijetu provodi isključivo ručno. testiranje crne kutije. Testiranje ugrađenih sustava provodi se na ugrađenim sustavima ili čipovima, a može biti crna kutija ili testiranje bijele kutije.
Primarna područja testiranja su provjere GUI-ja, funkcionalnost, provjera valjanosti i određena razina testiranja baze podataka. Primarna područja testiranja su ponašanje hardvera s obzirom na broj danih ulaza.
Testiranje softvera uglavnom se provodi na klijent-poslužitelj, web i mobilnim aplikacijama. Testiranje ugrađenih sustava obično se provodi na hardveru.
npr, Google Mail, Yahoo Mail, Android aplikacija. npr. strojevi u području zdravstva, mikrokontroleri koji se koriste u računalima.

Izazovi: testiranje ugrađenog softvera

Neki od izazova s ​​kojima se možete susresti tijekom testiranja ugrađenog softvera:

Ovisnost o hardveru

Ovisnost o hardveru jedna je od glavnih poteškoća s kojima se suočavamo tijekom testiranja ugrađenog softvera zbog ograničenog pristupa hardveru. Međutim, emulatori i simulatori možda ne predstavljaju precizno ponašanje stvarnog uređaja i mogu dati pogrešan dojam o performansama sustava i upotrebljivosti aplikacije.

Softver otvorenog izvora

Većina ugrađenih softverskih komponenti je otvorenog koda, nisu izrađene interno i za njih nije dostupan cjeloviti skup testova. Postoji širok raspon kombinacija testova i rezultirajućih scenarija.

Softver naspram hardverskih nedostataka

Drugi aspekt je kada se softver razvija za novoizrađeni hardver. Tijekom ovog procesa može se identificirati visok omjer hardverskih nedostataka. Pronađeni nedostatak nije ograničen samo na softver. Može biti povezan i s hardverom.

Ponovljivi nedostaci

U slučaju ugrađenog sustava, nedostatke je teže reproducirati ili ponovno stvoriti. To prisiljava postupak testiranja ugrađenih sustava da svaku pojavu nedostatka procijeni znatno više nego u standardnom slučaju i da prikupi što više podataka koliko je razumno potrebno za pronalaženje uzroka nedostatka.

Stalna ažuriranja softvera

Ugrađeni sustavi zahtijevaju redovita ažuriranja softvera poput nadogradnji kernela, sigurnosnih ispravaka, različitih upravljačkih programa uređaja itd. Ograničenja povezana s ažuriranjima softvera otežavaju identifikaciju grešaka. Osim toga, to povećava važnost postupka izgradnje i implementacije.

Pitanja i odgovori

Tipični stogovi kombiniraju statičku analizu, opremu za jedinične testove za C i C++, analizatori sabirnica, tracelektronički sposobni debuggeri i hardverski ugrađene platforme, plus automatizacija ispitivanja pa se regresijski paketi izvode bez nadzora.

Hardver u petlji (HIL) pokreće stvarni firmware na stvarnom kontroleru dok simulator daje signale koje bi proizvelo okolno postrojenje, vježbajući uvjete kvara koje je fizički nesigurno stvoriti.

Simulator modelira ponašanje i pokreće host build; emulator reproducira ciljni skup instrukcija tako da se izvršava stvarna binarna datoteka. Nijedan ne reproducira analogne i vremenske efekte točno.

IEC 61508 je generički standard funkcionalne sigurnosti. Sektorske verzije uključuju ISO 26262 za cestovna vozila, DO-178C za softver za zrakoplove, IEC 62304 za medicinske uređaje i EN 50128 za upravljanje željeznicom.

Modeli umjetne inteligencije trijažiraju veliki zapisnik i trackoličine koje platforma proizvodi, grupiraju ponovljene kvarove i rangiraju koje regresijske testove prvo pokrenuti na rijetkoj opremi. Procjena sigurnosti ostaje na inženjeru.

GitHub kopilot nacrti ispitnih kabelskih svežnjeva i spojnica za C ili C++ module i ubrzava ponovljeno ismijavanje. Ponašanje registra i vremenska ograničenja koja nikada nije vidio još uvijek treba provjeriti.

Kroz analizu vremena izvršenja u najgorem slučaju, instrumentaliziranu trace na cilju, a stres se izvodi pri vršnom opterećenju. Promašaji rokova i latencija prekida mjere se na stvarnom hardveru, koji host verzije ne mogu reproducirati.

Čitanje C i C++, poznavanje shema i logičkih analizatora, poznavanje RTOS koncepata i sabirničkih protokola, plus skriptiranje. Povezani poslovi kao što su IoT testiranje crpi na istoj bazi.

Sažmite ovu objavu uz: