Ce este testarea încorporată în testarea software-ului?

⚡ Rezumat inteligent

Testarea încorporată verifică comportamentul funcțional și nefuncțional al software-ului și hardware-ului împreună, deoarece într-un sistem încorporat cele două sunt strâns legate între ele și niciunul nu poate fi validat corespunzător de unul singur.

  • 🔘 Cuplaj strâns: Hardware-ul este construit în paralel cu software-ul, așa că mediul de testare real ajunge adesea târziu.
  • ☑️ Cinci niveluri: Testarea unităților software, a integrării, a unităților de sistem, a integrării sistemului și a validării sistemului vizează fiecare o limită diferită a modulelor.
  • ✅ Mize de siguranță: Produsele medicale, feroviare, aviatice și auto necesită teste stricte documentate înainte de a putea fi acordată certificarea.
  • 🧪 Preferință pentru caseta gri: Testarea unitară a sistemului observă resursele interne și mesajele RTOS, așa că metodele de tip „cutie gri” i se potrivesc cel mai bine.
  • 🛠️ Principalele obstacole: Acces limitat la hardware, componente open-source, defecte mixte de software și hardware și defecte care rezistă reproducerii.

Testarea integrată a software-ului și hardware-ului într-un sistem integrat

Ce sunt sistemele încorporate?

Sisteme încorporate sunt dispozitive controlate electronic în care software-ul și hardware-ul sunt strâns legate între ele. Sistemele integrate pot conține o varietate de dispozitive de calcul. Acestea sunt PC-uri încorporate în alte dispozitive pentru a opera funcții specifice aplicației. Utilizatorul final, de obicei, nici măcar nu este conștient de existența lor.

Testare încorporată

Testare încorporată este un proces de testare pentru verificarea funcționalității și nefuncțional atributele atât ale software-ului, cât și ale hardware-ului dintr-un sistem integrat și asigurarea faptului că produsul final nu conține defecte. Scopul principal al testării integrate este de a verifica și valida dacă produsul final format din hardware și software integrat îndeplinește sau nu cerințele clientului.

Testarea software-ului încorporat verifică și asigură că software-ul în cauză este de bună calitate și respectă toate cerințele pe care ar trebui să le îndeplinească. Testarea software-ului încorporat este o abordare excelentă pentru a garanta securitatea în aplicații critice precum echipamentele medicale, căile ferate, aviația, industria auto etc. Testarea strictă și atentă este crucială pentru acordarea certificării software-ului.

Cum se efectuează testarea software-ului încorporat

În general, testați din patru motive:

  • Pentru a găsi erori în software
  • Ajută la reducerea riscului atât pentru utilizatori, cât și pentru companie
  • Reduceți costurile de dezvoltare și întreținere
  • Pentru a îmbunătăți performanța

În testarea încorporată, se efectuează următoarele activități:

  1. Software-ul este furnizat cu câteva intrări.
  2. O parte a software-ului este executată.
  3. Starea software-ului este observată, iar ieșirile sunt verificate pentru proprietățile așteptate, cum ar fi dacă ieșirea corespunde rezultatului așteptat, conformitatea cu cerințele și absența erorilor de sistem.

Tipuri de testare software încorporat

Fundamental, există cinci niveluri de testare care pot fi aplicate software-ului încorporat.

Testarea unității software

Modulul unitar este fie o funcție, fie o clasă. Testarea unitară este efectuată de echipa de dezvoltare, în principal de dezvoltator, și se desfășoară de obicei într-un model de evaluare inter pares. Cazurile de testare sunt dezvoltate pe baza specificațiilor modulului.

Testare de integrare

Testarea integrării pot fi clasificate în două segmente:

  • Testare de integrare software
  • Testarea integrării software/hardware

În final, se testează interacțiunea dintre domeniul hardware și componentele software. Aceasta poate include examinarea interacțiunii dintre dispozitivele periferice încorporate și software.

Dezvoltarea de software embedded are o caracteristică unică: mediul real în care rulează software-ul este, în general, creat în paralel cu software-ul. Acest lucru cauzează inconveniente pentru testare, deoarece testarea completă nu poate fi efectuată într-o condiție simulată.

Testarea unității de sistem

Acum, modulul care urmează să fie testat este un framework complet care constă din codul software complet plus toate sistem de operare în timp real (RTOS) și componente legate de platformă, cum ar fi întreruperi, mecanisme de tasking, comunicații și așa mai departe. Protocolul Punct de Control nu mai este un apel către o funcție sau o invocare a unei metode, ci mai degrabă un mesaj trimis sau primit folosind cozile de mesaje RTOS.

Resursele sistemului sunt observate pentru a evalua capacitatea sistemului de a sprijini execuția sistemului încorporat. Pentru acest aspect, testarea cutiei gri este metoda de testare preferată. În funcție de organizație, testarea unității de sistem este fie sarcina dezvoltatorului, fie a unei echipe dedicate de integrare a sistemului.

Testarea integrării sistemului

Modulul care urmează să fie testat pornește de la un set de componente dintr-un singur nod. Punctele de control și observații (PCO) sunt o combinație de protocoale de comunicație legate de rețea și evenimente RTOS, cum ar fi mesajele de rețea. Pe lângă o componentă, un tester virtual poate juca și rolul unui nod.

Testarea de validare a sistemului

Modulul care urmează să fie testat este un subsistem cu o implementare completă sau sistemul încorporat complet. Obiectivul acestui test final este de a îndeplini cerințele funcționale ale entității externe. Rețineți că o entitate externă poate fi o persoană, un dispozitiv dintr-o rețea de telecomunicații sau ambele.

Diferență: testare încorporată și testare software

Tabelul de mai jos compară testarea încorporată cu cea convențională testare software.

Testare software Testare încorporată
Testarea software-ului este legată numai de software. Testarea încorporată este legată atât de software, cât și de hardware.
În medie, 90% din testele efectuate în lume sunt pur manuale. testare cutie neagră. Testarea integrată se face pe sisteme sau cipuri integrate și poate fi de tip cutie neagră sau testarea cutiei albe.
Domeniile principale de testare sunt verificările GUI, funcționalitatea, validarea și un anumit nivel de testare a bazei de date. Principalele domenii de testare sunt comportamentul hardware-ului pentru numărul de intrări care îi sunt date.
Testarea software-ului este efectuată în principal pe aplicații client-server, web și mobile. Testarea încorporată se efectuează, în general, pe hardware.
de exemplu, Google Mail, Yahoo Mail, Android aplicatii. de exemplu, mașini din domeniul sănătății, microcontrolere utilizate în computere.

Provocări: testarea software-ului încorporat

Câteva dintre provocările cu care se poate confrunta cineva în timpul testării software-ului încorporat:

Dependența de hardware

Dependența de hardware este printre principalele dificultăți întâmpinate în timpul testării software-ului embedded, din cauza accesului limitat la hardware. Cu toate acestea, emulatoarele și simulatoarele pot să nu reprezinte cu precizie comportamentul dispozitivului real și ar putea oferi o imagine greșită a performanței sistemului și a utilizabilității aplicației.

Software-ul open source

Majoritatea componentelor software încorporate sunt de tip open source, nu sunt create intern și nu există o suită completă de teste disponibilă pentru acestea. Există o gamă largă de combinații de teste și scenarii rezultate.

Defecte software vs. hardware

Un alt aspect este atunci când software-ul este dezvoltat pentru hardware nou creat. În timpul acestui proces poate fi identificată o rată mare de defecte hardware. Defectul găsit nu se limitează doar la software. Poate fi legat și de hardware.

Defecte reproductibile

Defectele sunt mai greu de reprodus sau recreat în cazul unui sistem integrat. Acest lucru obligă procedura de testare integrată să evalueze fiecare apariție a defectelor substanțial mai mult decât într-un caz standard și să colecteze cât mai multe date posibil necesare pentru a găsi cauza principală a defectului.

Actualizări continue de software

Sistemele integrate necesită actualizări regulate de software, cum ar fi upgrade-uri ale kernel-ului, corecții de securitate, diferite drivere de dispozitiv etc. Restricțiile asociate cu actualizările de software îngreunează identificarea erorilor. În plus, acest lucru sporește importanța procedurii de construire și implementare.

Întrebări frecvente

Stivele tipice combină analiza statică, testele unitare pentru C și C++analizoare de autobuz, tracdepanatoare cu funcționare electronică și platforme hardware-in-the-loop, plus automatizarea testelor astfel încât suitele de regresie rulează nesupravegheate.

Hardware-in-the-loop (HIL) rulează firmware real pe controlerul real, în timp ce un simulator furnizează semnalele pe care le-ar produce instalația înconjurătoare, exersând condiții de defect care sunt nesigure de creat fizic.

Un simulator modelează comportamentul și rulează o versiune a gazdei; un emulator reproduce setul de instrucțiuni țintă, astfel încât binarul real să se execute. Niciunul dintre aceștia nu reproduce exact efectele analogice și de sincronizare.

IEC 61508 este standardul generic de siguranță funcțională. Versiunile sectoriale includ ISO 26262 pentru vehicule rutiere, DO-178C pentru software aeropurtat, IEC 62304 pentru dispozitive medicale și EN 50128 pentru controlul feroviar.

Modelele AI triază jurnalul mare și tracVolumele e pe care le produce o platformă, grupează erorile repetate și clasifică testele de regresie care să fie executate primele pe hardware limitat. Judecata de siguranță rămâne la latitudinea inginerului.

Copilotul GitHub testarea cablajelor și a mufelor pentru C sau C++ module și accelerează simularea repetitivă. Comportamentul înregistrărilor și constrângerile de timp pe care nu le-a văzut niciodată trebuie încă verificate.

Prin analiza timpului de execuție în cel mai defavorabil caz, instrumentată trace pe țintă, iar stresul rulează la încărcare maximă. Raterile de termene limită și latența întreruperilor sunt măsurate pe hardware real, pe care versiunile gazdă nu îl pot reproduce.

Citind C și C++, cunoștințe despre scheme și analizoare logice, familiaritate cu conceptele RTOS și protocoalele de magistrală, plus scripting. Lucrări conexe, cum ar fi Testare IoT se bazează pe aceeași bază.

Rezumați această postare cu: