Ce este testarea hardware?
In general, cand se discuta despre testare sau quality assurance, cel mai mult ne referim la partea de verificare software, a aplicatiilor si programelor pe care utilizatorii obisnuiti urmeaza sa le instaleze si sa le foloseasca la randul lor, in scop personal sau profesional.
Insa nu trebuie sa omitem din vedere ca un produs soft nu poate exista de la sine in neant, el trebuie sa ruleze pe o anumita masina personala, precum un PC, un laptop, un telefon mobil etc. De aceea, un alt tip de testare care se realizeaza in domeniul IT si despre care vom discuta in continuare este testarea hardware.
Ce reprezinta testarea hardware?
Daca testarea software presupune verificarea si validarea produselor soft, a aplicatiilor si programelor dezvoltate cu ajutorul limbajelor de programare, testarea hardware se refera la verificarea pieselor fizice care compun masinile pe care sunt ulterior rulate produsele software.
Pe de-o parte, prin hardware testing putem sa testam anumite componente fizice in sine, precum o memorie, un procesor sau un sistem audio. Pe de alta parte, prin testare hardware ne putem referi si la testarea anumitor aplicatii soft pe anumite tipuri de masini fizice, ca sa vedem daca se comporta corect atat partea software, cat si cea hardware.
Testarea hardware este un tip ceva mai aparte din multitudinea de categorii de testare. Fiind legata de dezvoltarea pieselor fizice, nu toate companiile sau echipele de testare se concentreaza pe acest subtip. Testarea hardware este intalnita obligatoriu in companiile care dezvolta componente de calculator si se concentreaza doar pe asta (cum ar fi compania TSMC care produce semiconductori), sau in companiile de produs care dezvolta atat soft cat si piese hardware (precum Apple, Microsoft, Samsung etc.).
Chiar si tehnicile de testare hardware sunt ceva mai diferite si adaptate pentru acest tip, comparativ cu software testing. Putem vorbi de testare non-functionala, cand verificam piesa din punct de vedere fizic al integritatii sale, daca indeplineste anumite cerinte tehnice (fiabilitate, durabilitate, rezistenta s.a.), daca nu este stricata (crapata, rupta, zgariata), dar si de testare functionala. Aceasta din urma vizeaza functionalitatea si performanta componentelor hardware, precum consumul de putere, protocoalele de comunicare, semnalele de input/ output sau datele de procesare.
De asemenea, se pot realiza unit teste (verificarea individuala a pieselor), testarea de integrare (testam 2 sau mai multe piese impreuna, de exemplu CPU + RAM), testarea de sistem (toate piesele care alcatuiesc acel computer) si testarea de acceptanta (impreuna cu clientii in baza anumitor specificatii de business).
Instrumente specifice in testarea hardware
Inclusiv pe partea de tool-uri, in testare hardware regasim anumite instrumente specifice care ne pot ajuta sa verificam diferite aspecte ale componentelor in cauza. De exemplu, pentru a observa si masura anumiti parametri de performanta ai unui PC se pot folosi anumite tool-uri de diagnosticare, precum Process Explorer (pentru procesor), Resource Monitor (pentru memorie, disk si CPU), sau System Explorer (mai general, pentru PC-urile cu Windows).
O alta categorie de instrumente specifice acestui tip de testare este reprezentata de tool-urile pentru masurare in testare (test measurement tools). Acestea sunt niste dispozitive fizice care se pot conecta la computerul/ componenta noastra ce trebuie testata si masoara in timp real anumiti indici si parametri. Ca exemple, vorbim de osciloscoape, multimetri sau data loggers.
Pe langa aceste, mai exista si alte tipuri de instrumente ce ne ajuta in testarea hardware, precum cele de simulare ca Spice sau Simulink, sau chiar unele tool-uri de automatizare, precum LabVIEW ori TestStand.
Exemple de testare hardware
In continuare vom vedea, pe scurt, cateva situatii si exemple in care poate sa intervina testarea hardware, aceasta fiind absolut necesare pentru a completa rezultatele testarii software, crescand in final calitatea produselor.
1. Testarea hardware in zona de gaming / game testing
Un prim context in care putem intalni tipul de testare hardware este in zona de gaming. Motivul este unul destul de semnificativ: exista extrem de multe jocuri care se pot juca pe o diversitate foarte mare de aparate si console fizice: PC-uri, laptopuri, PlayStation (3, 4, 5, portabil), XBox, console WII de la Nintendo, telefoane mobile, tablete, chiar si pe unele televizoare.
Astfel, cand se testeaza un anumit joc, pe langa bug-urile pe care le poate contine in sine acesta, este necesar sa fie jucat pe cat mai multe device-uri diferite. De asemenea, exista si teste care se folosesc pentru hardware pentru a simula diferite situatii ale componentelor.
De exemplu, la diferite console precum Nintendo DS exista teste specifice precum Lot Check unde se verifica cum raspunde jocul in anumite contexte, de exemplu daca nivelul bateriei de la maneta e scazut sau durata necesara pentru a incarca urmatorul nivel dupa ce am trecut de un check-point din joc.
2. Testarea anumitor componente de PC
Un al doilea context in care testarea hardware este prezenta este cel al verificarii anumitor componente dintr-un PC (sau alt tip de work station). Probabil tuturor ni s-a intamplat ca la un moment dat sa nu ne (mai) functioneze corect o anumita componenta din PC sau telefon, si in prima faza am incercat sa verificam personal ce nu mai merge si de ce.
Astfel, diagnosticarea problemei reprezinta o etapa esentiala, care trebuie efectuata chiar inainte ca acel produs sa fie achizitionat de catre client. Nimeni nu vrea sa cumpere un laptop caruia nu ii functioneaza componenta audio, sau daca SSD-ul cedeaza prea rapid la un efort ceva mai mare.
Exista si service-uri specializate in testarea, diagnosticarea si repararea componentelor fizice, care dispun de instrumente de lucru dedicate. Intotdeauna trebuie sa tinem cont ca un PC functioneaza ca un tot unitar, degeaba merge sistemul audio daca atunci cand solicitam mai mult procesorul acesta nu mai raspunde.
3. Testarea de integrare a unor produse soft intr-un hardware specific
Un alt context de testare hardware, mai larg si mai general, este acela de a testa o anumita aplicatie sau un anumit soft in cadrul unui sistem hardware mai larg, pentru a vedea cum se comporta in acest caz atat produsul software, cat si cel hardware.
Probabil un exemplu destul de elocvent pentru acest caz este testarea aplicatiilor software pe sisteme mobile (telefoane, tablete, ceasuri smartwatch etc.). De regula, testarea pe mobile presupune din start selectarea unui anumit ecosistem specific cu anumite caracteristici bine definite, dedicat pentru anumite aplicatii. Acest ecosistem suport poate fi unul fizic (se foloseste un anumit telefon) sau simulat in cloud cu anumite platforme.
De exemplu, una e sa testam o aplicatie pe un Iphone, care are un anumit procesor, memorie sau display, si alta e pe un telefon cu Android care e un OS open-source. Pe Iphone e posibil ca totul sa mearga perfect, dar pe Android sa cedeze, si in acest caz trebuie identificata problema, daca e soft sau hardware.
De asemenea, in industria automotive testarea hardware este la fel de prezenta si importanta. In aceste companii se dezvolta anumite piese care ulterior compun partea tehnica fizica a masinii, pe care ulterior este instalat softul specific cu ajutorul caruia sunt controlate functiile masinii.
Drept exemplu, la compania Bosch, printre altele, se testeaza programul soft care trebuie sa ruleze impecabil pe anumite sisteme in diferite scenarii. Pentru testarea diferitelor scenarii particulare in trafic, in automotive se testeaza componenta fizica a Radarului, conectacta la un bench de test care simuleaza celelalte ECU-uri din autovehicul.
Astfel, se valideaza in conditii de test bine definite software-ul care ruleaza pe radar, cat si hardware-ul in sine, precum componenta radar integrata in automobil. Acest lucru presupune atat verificarea software, cat si cea hardware.
Importanta testarii hardware
Chiar daca despre testarea hardware nu se discuta poate asa de mult, ea are un rol extrem de important in tot procesul de dezvoltare din IT. Este o preconditie fundamentala aceea ca orice produs software, pentru a putea exista si a fi folosit de catre useri, trebuie sa fie instalat pe un device fizic, alcatuit la randul sau din mai multe componente a caror imbinare sa fie una functioanala pentru partea software.
Daca una sau mai multe componente hardware nu functioneaza corect, sau au fost fabricate cu nereguli, atunci ne putem astepta la bug-uri si pe partea de soft, asta daca sistemul nu crapa pana sa apucam sa instalam ceva pe el. De aceea testarea hardware este la fel de importanta ca cea software, si nu trebuie neglijata.
Desi este un subtip mai putin intalnit, pentru ca nu toate companiile dedica timp si resurse in aceasta directie, totusi testarea hardware este prezenta in anumite domenii si exista specialisti care doar de asta se ocupa.
Neregulile descoperite pe hardware pot fi chiar si mai costisitoare decat cele software. Daca o aplicatie are un bug, echipa de dezvoltare poate lansa un update care sa corecteze acea eroare. Dar daca o placa de baza a fost construita fizic cu greseli/ defecte, atunci ea nu poate fi reparata asa usor si rapid.
Concluzii
In incheiere, testarea hardware reprezinta acel tip de verificare care are in centrul atentiei componentele fizice care alcatuiesc sistemul pe care instalam ulterior aplicatii software (PC, laptop, telefoane, tablete etc.). Aceasta are specificul sau, tehnicile si instrumentele sale dedicate pentru efectuarea operatiunilor de verificare.
Desi nu exista la fel de multe articole despre testarea hardware, asta nu inseamna ca nu este importanta, dimpotriva. Ea este prima forma de verificarea care se efectueaza pentru ca daca sistemul fizic nu functioneaza in mod unitar si coerent, atunci nici partea software nu va fi functionala la nivelul dorit de catre utilizatori.
Surse consultate si aditionale
Despre testarea hardware in general
Importanta si beneficiile testarii hardware
O comparatie intre hardware testing si software testing
Despre instrumentele folosite in testarea hardware + niste bune practici despre folosirea acestora
Despre Nintendo Lot Check
In Romania, unul din canalele de Youtube care se ocupa de testarea hardware este ZonaIT (site-ul Zona IT + cu canalul secundar dedicat pe gaming PlayGround).