Cuvântul calitate este prezent în conversaţiile noastre zilnice. Avem nevoie de produse şi servicii de calitate. Avem nevoie de produse software de calitate, platforme la care să avem acces 24 de ore din 24, fără întreruperi şi disfuncţionalităţi, uşor accesibile, care ne permit să executăm toate acţiunile dorite.
Într-un articol publicat în numărul 99 al revistei Today Software Magazin, am încercat să expunem câteva argumente legate de faptul că asigurarea calităţii software (Software Quality Assurance) este un concept fundamental pentru livrarea unui software care să satisfacă cerinţele clientului şi care să fie uşor de întreţinut şi de adaptat. Am menţionat că atunci când ne referim la calitatea produselor trebuie să urmăm un set de paşi pentru asigurarea calităţii pe parcursul întregului proces de dezvoltare software (Software Development Life Cycle - SDLC), indiferent de modelul folosit sau metodologia folosită pentru dezvoltarea produsului.
Asigurarea calităţii software (Software Quality Assurance) este un concept fundamental pentru livrarea unui software care să satisfacă cerinţele clientului şi care să fie uşor de întreţinut şi de adaptat. În cele mai multe cazuri, în activitatea de elaborare a produselor software, folosim conceptul de asigurarea calităţii (Quality Assurance) referindu-ne doar la testarea produsului software.
Testarea e vitală în căutarea noastră de a lansa software performant și fără buguri. Pentru a îmbunătăți viteza de dezvoltare și a asigura un produs final de înaltă calitate, se depune un efort considerabil în crearea unui context unde acest software poate fi testat. Sistemele de tip pull sunt de obicei închise, având nivele reduse pentru Controlabilitate si Observabilitate, prin urmare calea spre îmbunătățirea Testabilității se face din mers.
Ipotezele prezentate în acest articol legate de viitorul testării sau a părții de quality assurance se bazează pe schimbările și trendurile apărute în aceste domenii atât în trecut cât și în prezent. Prin urmare, primul pas pe care îl vom face împreună este să călătorim în timp și să observăm cum s-a născut testarea software. Anii ’50 reprezintă Epoca de Start, în care testarea propriu-zisă însemna partea de debugging (depanare) și nimic altceva. După cum menționa și S. Gill în cartea sa, The diagnosis of mistakes in programmes on the EDSAC, dificultatea se regăsește în diagnosticarea unei greșeli, nu în detectarea ei.
Acest articol are ca subiect de abordare metoda relativ nouă de loop testing pentru sisteme automotive embedded care se aplică direct în vehicol, acesta fiind echipat nu numai cu sistemul de testat dar și cu tehnica complexă de măsurare și simulare virtuală. Metoda devine din ce în ce mai răspândită datorită faptului că reduce din riscuri dar și din timpul de testare. În lumea automotive, dezvoltarea sistemelor se face bazând-se pe standardul ISO 14504 adică ASPICE.
În calitate de profesionişti în testarea produselor software avem, adesea, oportunitatea de a testa produse cu grade diferite de complexitate. Cu cât gradul de complexitate al aplicaţiei, care urmează a fi supusă testelor noastre, este mai ridicat, cu atât mai atent trebuie să planificăm activităţile de testare. Iar pentru o testare cât mai de calitate, este necesară o planificare cât mai riguroasă. În mod ideal, testerul este implicat în procesul de dezvoltare al produsului software încă din stadiile incipiente ale acestuia. Asftel că, pe măsură ce se conturează definiţiile modulelor, entităţilor de date, obiectelor, claselor, funcţiilor, etc. testerul are posibilitatea să înceapă definirea scenariilor de testare ale acestora.
Așteptările legate de calitate sunt în creștere zi de zi și nevoia de perfecțiune este permanentă, ridicând astfel nivelul calității produsului și al experienței utilizatorului final. O aplicație care doar „își face treaba” nu mai este suficientă nici măcar pentru un simplu utilizator. Chiar și așteptările de la instrumentele profesionale, concepute inițial pentru o gamă restrânsă de utilizatori, cresc treptat. Cererea de pe piață se schimbă rapid, iar procesele inginerilor de calitate ar trebui să se adapteze în consecință.
Despre metodologiile de dezvoltare agile, se poate afirma cu certitudine că au o istorie bogată. De la începutul formulării, adoptării şi implementării lor, acestea sunt folosite în diverse de domenii de activitate: dezvoltare software, industria manufacturieră, industria asigurărilor etc. Metodologii agile au fost descrise de-a lungul timpului, dar pentru software un punct de cotitură a fost publicarea manifestului pentru dezvoltarea agilă de software
Arhitectura bazată pe microservicii este în mare vogă în ultimii ani. Aceasta permite descentralizarea responsabilităţii unei aplicaţii monolit în microservicii cu responsabilitate specifică prin a căror orchestrare se obţine funcţionalitatea de business dorită. Microserviciile comunică printr-o API (Application Programming Interface), independentă de limbajul de programare, prin intermediul interogărilor REST (Representational State Transfer), folosind ca model de date JSON (Javascript Object Notation) sau XML (Extended Markup Language).