Wednesday, October 18, 2017

Testerii

Analiștii de sistem, programatorii și utilizatorii sunt marile categorii recunoscute în activitatea de informatică încă de la începuturile domeniului. Problemele s-au complicat pe măsură ce s-a căutat să se  elaboreze aplicații informatice care trebuiau să funcționeze independent de dezvoltator, adică utilizatorul primea aplicația și la revedere! Programatorul dispărea din decor. Dar pentru a se întâmpla așa ceva, aplicația predată la un număr foarte mare de beneficiari trebuia să fie fără eroare, adică:
- să facă prelucrările complete și corecte;
- să nu se întrerupă fără mesaje proprii;
- să funcționeze independent;
- să fie ușor de instalat;
- să se comporte ca produs finit perfect.
Pentru a asigura un nivel de calitate cât mai ridicat intervin testerii. Testerii de azi nu au nicio legătură cu testerii de ieri pentru că acum ei sunt recunoscuți ca meserie distinctă, în timp ce în vremurile de demult testerii erau înșiși programatorii, testarea pe atunci era o artă, în timp ce acum testarea este o succesiune de proceduri de urmat și documente completate și semnate.
Torlul testerului este de a vedea dacă produsul realizat de programator face ceea ce este scris în specificații folosind:
- seturi de date de test din specificații:
- serui de date de test proprii;
- seturi de date de test din literatură;
- seturi de date de test de la produse similare.
Torul testării este în principal de a vedea dacă produsul realizat de programator execută prelucrări:
- complete;
- corecte; 
- cerute;
- structurate;
- inteligibile;
- interpretabile.
În cazul în care produsul intră în competiție cu produse similare se impun efectuarea de măsurători privind comportamentul produsului nou folosind date de  test deja folosite pentru alte produse și se vor calcula aceiași indicatori de performanță pentru a se face comparațiile corecte între produse de același fel. Dacă atunci programatorii îi acceptau cu dificultate pe testeri pentru că în mintea lor de programatori era greu de acceptat ca altcineva nu atât de bun cum se considerau programatorii că sunt să vină să caute greșelile în programele lor și mai ales să le și prezinte, programatorii interpretând toată acestă activitate ca o sfidare a muncii lor, nu ca pe un bine necesar și obligatoriu.
În vremurile de demult produsele software se împărțeau astfel, pe clase după cum se făcea testarea:
  • produse software de casă A testate 100% cu riscuri minore în apariția erorilor, iar în cazul apariției de erori acestea erau semnalate cu mesaje proprii și prelucrarea se încheia cu succes din punct de vedere al programatorului; aceste programe erau destinate să ruleze date pentru soluționarea de probleme ale clienților independente de programator; erau produse software de firmă sau ale unor programatori care deveneau renumiți tocmai pentru că erau programe foarte des lansate în execuție; seturile de date de test activau toate ramurile arborescenței programului, iar programul avea validări foarte puternice ale datelor de intrare și ale rezultatelor intermediare încât nu se permitea trecerea mai departe dacă erau semnalate excepții de prelucrare care ar fi afectat calitatea rezultatelor finale; numărul de utilizatori este foarte mare și aceștia sunt dispersați în teritoriu, iar frecvența de lansare în execuție a produsului program este foarte mare și ea și se desfășoară în momente de tinmp foarte diferite;
  • produse software de casă B testate 70%, care activau cele mai importante ramuri ale arborescenței programului, ce acopereau peste 95% dintre tipologiile problemelor și care includeau suficiente secvențe de control a calității fluxurilor de prelucrare; și aceste programe funcționau independent de utilizatori și dacă totuși apăreau erori de execuție, probabilitatea lor de apariție era redusă, iar dezvoltatorul se angajea să soluționeze în timp util situația; acum aceste produse sunt date spre utilizate ca varu=iante beta ale produselor și clienții le utilizează gratuit cu obligația de a semnala erori și dezvoltatorii colectează aceste erori și le elimină prin modificări în secvențele lor de program; acum aceste erori se numesc în jargon bug-uri;
  • produse software de casă C testate cam 30% ceea ce înseamnă că riscurile de a apare erori de prelucrare sunt destul de mari; clientul le utilizează și pe acestea independent, numai că dezvoltatorul îi stă în preajmă pentru a-l scoate din situațiile delicate; această abordare apare atunci când numărul de clienți diferiți este foarte redus, adică programul are dedicație specială, unică și precisă și deservește deci un client ale cărui prelucrări au caracter de unicat; nici nu merită testare 100% un astfel de program întrucât cheltuielile cu testarea depășesc cu mult cheltuielile cu depanarea; foarte multe dintre produsele program realizate la început pentru clienți sunt de clasă C, iar cu timpul datorită testărilor la fața locului ele trec în clasa B și unele mai trec și în clasa A dacă dezvoltatorul face eforturi susținute în acest sens;
  • produse software de casă D testate sub 20%, adică sunt programe cu frecvență de utilizare redusă, aproape dedicate unor scopuri vremelnice; numai că apar situații de reluare a lor peste ani și lipsa unei testări serioase se răzbună prin faptul că depanarea atunci are durate și costuri ridicate mai ales când produsele nu au documentație, nu conțin comentarii sau când s-a pierdut textul sursă și trebuie lucrat direct pe executabil; nu vreau să spun decât că este mai bine ca produsul să fie rescris cap-coadă.
Atunci testarea programelor era făcută de programatori cu experiență pentru că depanarea tot ei o realizau. Acum diviziunea muncii este la un nivel deosebit de ridicat și:
- programatorii scriu programe după specificații;
- testerii verifică programele și fac rapoarte;
- depanatorii lucrează în ideia de a face corecții;
- fluxurile au un caracter industrial;
-  totul este separat și independent.
Cândva am avut și eu preocupări mai ales legate de schimbările pe care le aduce tehnologia orientată obiect asupra testării și am scris o carte împreunp cu studentul meu de atunci Paul POCATILU, referită prin coordonatele următoare: Ion IVAN, Paul POCATILU - Testarea software orientat obiect, Editura INFOREC, Bucure?ti, 1999, 192 pg., ISBN 973-98508-0-4.
Consider că progresele făcute în procesul de testare sunt cele necesare stadiului actual și că și în continuare vor apare evoluții care vor contribui la creșterea calictății produselor software și demonstrarea automată a corectitudinii programelor nu mai apare în niciun caz ca un vis mult prea îndepărtat. Chiar și testarea automată are încă de pe acum ceva muguri și sunt optimist că va cuprinde cât mai multe dintre activitățile care acum enervează pe toată lumea.
Testerii sunt categoria de specialiști din informatica aplicată cu un rol cu totul special pentru creșterea calității produselor software, care acum au nenumărați clienți în mediul online. Produsele open source au acum un cu totul alt mod de a li se crește calitatea, testarea fiind făcută de programatori de înaltă clasă, căci nu oricine se bagă să scrie componente open source sau să dezvolte componente deja lansate în procesele de abordare și de rafinare.



(19 octombrie 2017)

No comments:

Post a Comment