Showing posts with label testare software. Show all posts
Showing posts with label testare software. Show all posts

Friday, December 22, 2017

6 greșeli de testare a programelor

Cele 6 greșeli de testare a programelor sunt:

  1. setul de date de test nu acoperă toate ramurile arborescenței asociate a programului;
  2. erorile identificate nu sunt explicate corect;
  3. cei ce fac testare nu cunosc deloc programare, folosind o terminologie folclorică;
  4. este testată repetitiv doar o anumită ramură din arborescență;
  5. testarea nu se efectuează pe funcționalități;
  6. testerul nu se pune în pielea clientului.


(22 decembrie 2017)

Wednesday, November 22, 2017

Efectul de ondulanță în programare

Numai cine nu muncește, nu greșește. De când mă știu eu programator o singură dată mi s-a întâmplat să scriu un program destul de lunguț, să-l compilez și din prima a fost fără erori de compilare, apoi al trecut la editarea de legături și acolo a fost OK, iar la execuție, nu-mi venea să cred, toate seturile de date de test au trecut cu brio. Făcusem un program care a mers din prima. M-am uitat și l-am verificat încă și încă pentru că nu credeam că așa ceva este posibil. Mai mult, nu lucrasem pe el mai mult ca pe alte programe, ci normal. Dar așa a fost să fie. Era un accident.
În programele mele am avut:
  • erori de compilare cu diferite cauze, unele ale mele, altele din cauza perforării căci mai încurcam pe zero cu litera o sau una defineam ca variabile și alta refeream în virtutea inerției. Au fost și situații când la perforare punctul cu care se încheiau instrucțiunile COBOL a fost perforat ca virgulă și totul s-a dus de râpă. Alterori am folosit variabile nedefinite sau nedeclarate sau am utilizat etichete care erau altfel date în prealabil sau pur și simplu nu erau definite;
  • erori de editare de legături destul de frecvente căci solicitam eu resurse care nu erau definite sau programul după compilare când trecea la editarea de legături identifica neconcordanțe ce determinau întreruperea procesului de editare; învățasem pe dinafară ce nu trebuie să fac astfel încât să nu-mi apară erori de linkage editor, destul de greu de localizat mai atunci când erau chestiuni de rafinament la transferul de parametrii cu consecințele ce decurg din toate neconcordanțele de tip, de lungime sau de ordine în listă;
  • erori de execuție cu nenumărate cauze care aducerau mare tristețe mai ales atunci când din cauza neconcordanței dintre ceea ce era perforat în cartele și formatele după care se făceau citirile, mă trăgeau de urechi cu câte un mesaj neplăcut; nici situațiile de conversii aiuritoare de la citirea aleatoare de câmpuri se răsfrângea după principiul unde dai și unde crapă asupra muncii mele de programator chinuit și cu frică de Dumnezeu;
  • erori de logică, erori de care m-a ferit Cel de Sus pentru că nu începeam să scriu nicio linie sursă fără să fia avut clar despre ce era vorba; Eram cam pisălog, dar știam că dacă mă apuc să scriu un program fără să am clar ce trebuie să fac și fără să fi înțeles algoritmul, dacă îmi dădeam seama de greșeala de logică fie mai devreme, fie mai târziu, nu trebuia să fac corecții în program, ci să-l iau de la capăt, căci a cârpi ceva profund greșit duce la o construcție care oricum trebuie abandonată.
În tinerețea mea, m-am apucat și am studiat sistematic erorile de programare și am scris și oarece articole pe această temă, referite prin:
  • Ion IVAN, Alexandru BALOG, Andrei GOGA, Marian MACESANU - Analiza statistica a erorilor specifice produselor - program, Revista de Statistica, vol. 34, nr. 10, 1985, pg. 27 - 37
  • Ion IVAN, Cristian AMANCEI - Stabilitatea coeficientilor modelului global de calitate software, teorie, practica, experimente, Editura ASE, Bucuresti 2006, 172 pg.
  • Ion IVAN, Adrian PÎRVULESCU, Paul POCATILU  - Software Quality Verification Through Empirical Testing, Journal of Applied Quantitative Methods, vol. 2, nr. 1, 2007, pg. 38 - 60.

Împreună cu Alexandru BALOG am dezbătut foarte mult fenomenele legate de fluctuațiile erorilor din programe și care se studiază generic sub denumirea de efect de ondulanță, identificând situațiile în care evoluția erorilor se comportă asemeni undelor amortizate, ceea ce este excelent pentru că programtorul speră ca erorile din programul său să scadă până la dispariție. Când erorile se comportă ca undele neamortizate și cresc în frecvențe, deja înseamnă că programul are o gravă problemă și programatorul a intrat în panică și în loc să repare, mai mult strică. Atunci trebuie făcută o schimbare majoră, în ideia asistenței dată de un alt programator cu experiență care va găsi rapid remediul situației care tinde să scape de sub control.
Efectul de ondulanță în programare este exemplul clar de translatare a conceptelor din fizica undelor electromagnetice către ingineria software și către tehnicile de depanare eficiente, pe care niciun programator nu trebuie să le neglijeze, dar pe care trebuie să le cunoască tocmai pentru a face programe cât mai bune.



(22 noiembrie 2017)

Wednesday, November 1, 2017

Calitate software

Când prin anii '70 dar mai ales prin anii '80 am început să discut despre calitatea software, totul părea în ochii colegilor din catedră dar și în rândul specialiștilor o glumă cam nesărată.
În vremurile de demult, la disciplina Programe aplicative predată studenților Facultății de cibernetică am inclus un capitol de calitate software. Și la cursul postuniversitar am avut capitole de Calitate software. Acolo am prezentat ceea ce era în literatură dar și rezultate ale cercetărilor efectuate de un grup de lucru care mai publica în reviste de la noi dar și din străinătate. După 1989 și mai ales după ce au apărut masteratele de tot felul, am introduc câte ceva de calitate software, ajungând să existe un curs chiar cu numele de Calitate software la masterul de Informatică Economică de la facultatea CSIE din ASE. Acel curs are cam aceleași lucruri pe care le prezentam și cu ani în urmă, precum:
- concepte de bază;
- caracteristici de calitate;
- fiabilitate și modele;
- portabilitate;
- mentenabilitate;
- complexitate;
- generalitate;
- generalitate;
- testabilitate;
- corectitudine;
- metrici de calitate software;
- proprietăți indicatori: senzitivitate, caracter necompersatoriu, caracter necatastrofic;
- agregarea indicatorilor;
- rafinarea metricilor software;
- optimizarea calității;
- costul calității;
- managementul calității software;
- planificarea calității;
- controlul calității;
- standarde de calitate;
- căi de creștere a calității software.
În timp au apărut materiale despre calitatea software precum:

  • Doina BANCIU, Alexandru BALOG - Calitatea sistemelor si serviciilor de e-learning, Editura AGIR, Buc. 2013, ISBN 978-973-720-494-3, 184 pag.
  • Alexandru BALOG - Calitatea sistemelor interactive: studii si experimente, Editura MatrixRom, Buc. 2004, ISBN 973-685-826-X, 210 pag.
  • Alexandru BALOG - Calitatea produselor software - masurare, analiza si evaluare, Editura INFOREC, Buc., 2000, ISBN 973-99450-1-5, 134 pag.
  • Alexandru BALOG - Analiza statistica si evaluarea calitatii software-ului, Editura Calipso 2000, Bucuresti, 1997, ISBN 973-97077-2-6, 180 pag.
  • Alexandru BALOG - Evaluarea proceselor software, Editura ICI, Bucuresti, 1999, ISBN 973-98406-4-7,148 pag.
  • Ion IVAN,Gheorghe NOSCA, Sergiu CAPISIZU, Marius POPA - Managementul calitatii aplicatiilor informatice, Editura ASE, Bucuresti, 2007, 500 pg
  • Ion IVAN, Cristian AMANCEI - STABILITATEA COEFICIENTILOR MODELULUI GLOBAL DE CALITATE SOFTWARE, teorie, practica, experimente, Editura ASE, Bucuresti, 2006, 172 pg
  • Ion IVAN, Catalin BOJA - MANAGEMENTUL CALITATII PROIECTELOR TIC, Editura ASE , Bucuresti, 2005,  122pg.
  • Ion IVAN, Laurentiu TEODORESCU - Managementul calitatii software, Editura INFOREC, Bucuresti, 2001, 150 pg.
  • Gheorghe NOSCA, Ion IVAN, Sebastian TCACIUC, Otilia PARLOG, Razvan CACIULA - Calitatea datelor, Editura INFOREC, Bucuresti, 1999, 102 pg.
  • Ion IVAN - Asigurarea calitatii software, in INFORMATICA, Editura stiintifica si enciclopedica, coordonator Gh. DODESCU, Bucuresti, 1987, pg. 434-440
  • Ion IVAN - Asigurarea calitatii software, in INFORMATICA, Editura stiintifica si enciclopedica, coordonator Gh. DODESCU, Bucuresti, 1987, pg. 434-440
  • Tudor BARON, Alexandru BALOG, Ion IVAN - Calitatea produselor program, Lito ASE, Bucuresti, 1983, 24pg
  • Tudor BARON, Ion IVAN, Alexandru BALOG- Informatica Economica: Calitatea programelor si stilul de programare, lito ASE, Bucuresti, 1984, 43 pg.
Au mai fost și alte materiale publicate în reviste de specialitate, mai ales înainte de 1989 când accesul de a publica materiale mai extinse sub forma unor cărți era destul de dificil de realizat. Calitatea software este cu atât mai necesară cu cât aplicațiile online impun înzestrarea cu niveluri pentru caracteristicile de calitate care să permită utilizarea 24/24 și 7/7 a aplicațiilor în orice condiții, căci ele funcționează independent de dezvoltatori.
Când se vorbește despre calitate software trebuie să se vorbească despre indicatori care măsoară caracteristicile cantitative și calitative ale unui program, dintre care enumăr:
- lungimea programului;
- gradul de ocupare a zonelor de memorie;
- lungimea zonelor de memorie;
- complexitatea programului;
- gradul de satisfacție al utilizatorului;
- productivitatea programatorului;
- nivelul de mentenabilitate;
- nivelul de fiabilitate;
- costul calității software;
- indicator agregat;
- durata de viață a produsului software.
Când se analizează calitatea software fără măsurători nimic nu este clar și nimic nu are suport de decizie, pentru cei care își propun creșterea performanței oricărei aplicații informatice.
Sunt diferite opțiuni legate de indicatorii de calitate. Unii preferă incicatorii separați pentru fiecare caracteristică de calitate, alții preferă indicatoul global de calitate.






(01 noiembrie 2017)

Sunday, October 1, 2017

Avuția națională digitală sau d-AN

Prin definiție, d-AN este avuția națională digitală, adică totalitatea fișierellor care sunt create de către o națiune pentru a reflecta realizările ei în format electronic. În d-AN se regăsesc:
- scanările de manuscrise din bibliotecile de specialitate;
- cărțile digitizate din bilbioteci și din edituri;
- revistele de specialitate în format electronic;
- fotografiile în format digital de la evenimente memorabile;
- filmele în format digital de la Arhiva Națională;
- transpunerea în format digital a Arhivei Radio;
- transpunerea în format digital a Arhivei TVR;
- aplicațiile multimedia de prezentare a marilor scriitori;
- înregistrările în format digital a concertelor și pieselor de teatru;
- recondiționările și transpunerea în format digital a tururor înregistrărilor fonografice.
Rezultă că în timp, tot ce exustă sub formă de documente, obiecte de valoare din tezaurul cultural, piese de muzeu, monumente de arhitectură sau manifestări de artă în dinamică, vor avea reflectare în format digital, care au orice s-ar zice forma de materială de fișier stocat pe un suport de memorie, cu durată de păstrare de cel puțin 5 ani, după care, pentru conservare se va trece la recopiere de fișiere, operație cu costuri aproape zero.
Crearea avuției naționale în format digital, denumită prescurtat d-AN, nu este un scop în sine, ci este destinată utilizării de către un public foarte larg, în vederea creșterii:
- nivelului de instruire;
- vitezei de documentare;
- gradului de cultură;
- realizării unor lucrări de specialitate.
Avuția națională digitală, d-AN, este de fapt conținut digital definit prin:
- volum, de regulă câțiva exabaiți;
- structură cu nivel de omogenitate variabil;
- cuvinte cheie specificate, deduse sau extrase;
- caracter dinamic de construire și actualizare prin adăugare;
- management evoluat, bazat pe calitate;
- modalități de realizare a protecției permanente.
Despre avuția națională digitală împreună cu niște prieteni am scris mai multe articole, pe care le enumăr acum:
Ion IVAN, Cristian CIUREA, Alin ZAMFIROIU, Gheorghe NOŞCA - Characteristics of d-National Wealth in the Knowledge-based Economy, Economy Informatics vol. 13, no. 1, 2013, pp. 53 - 63
I. IVAN, C. CIUREA, G. NOȘCA - Considerations About d-National Wealth, Proceedings of the 12th International Conference on Informatics in Economy, IE 2013, April 25-28, 2013, Bucharest, Romania, ASE Printing House, ISSN 2284-7472, ISSN-L 2247-1480.




(02 octombrie 2017)

Saturday, September 30, 2017

BNP - Biblioteca Națională de Programe

Istoria Bibliotecii Naționale de Programe - BNP se pierde în negura istoriei informaticii românești, căci existența ei este confirmată de unii dintre cei ce au lucrat acolo începând cu 1980 și care la venire au găsit o structură bine pusă la punct deja, cu sediu, cu director, cu compartimente și cu fluxuri definite riguros. Eu confirm existența acesteia pentru că la disciplina de Programe aplicative am lucrat cu programe obținute de la BNP pentru rezolvarea problemelor de transport, de programare liniară și a celor de stocuri.
La BNP-ul de demult au lucrat:
Ladislau GASPAR,
Marian MĂCEȘANU, 
Romulus ARHIRE,
Vasile PETROVICI,
Rodica GASPAR
și mulți alții.
BNP avea misiunea de a gestiona produsele program realizate în centrele de calcul teritoriale dar și în alte locuri, pentru a menține un standard ridicat de calitate și de generalitate în procesele de producție. În acele vremuri, când proprietatea era a întregului popor nu s-a pus nicio clipă problema drepturilor de proprietate asupra produselor program în contextul existent azi, ci era o problemă de a soluționa problema drepturilor de autor în ideia ca la nivelul BNP să se știe cine este autorul produsului software, unde se găsește în exploatare curentă. Cine dorea să fie cunoscut în țară, mergea la BNP și depunea o documentație, produsul software și dacă acesta era acceptat, era înscris în catalogul de programe al BNP și toată țara știa de existența acelui produs, pentru că la BNP se făcea testarea și acceptarea însemna de fapt garanția că produsul software este OK, adică e bun.
Acum există o aplicație web de prezentare a unei noi biblioteci naționale de programe, alt BNP care spre surprinderea mea, nu-și revendică trecutul glorios dealtfel, al acelui BNP de dinainte de Revoluția din Decembrie 1989. Acest nou BNP a fost înființat în cadrul ICI, prin HG 1621/2003 și prin Ordinul Ministrului Comunicațiilor și Societății Informaționale, având misiunea de a colecta și păstra informațiile despre produsele software care se produc în țara noastră, de a omogeniza gradul de documentare a produselor software în sensul creșterii acestuia, obținerea unui nivel sporit al interoperabilității și integrabilității produselor software, precum și promovarea produselor software existente, în ideia creșterii nivelului de reutilizare a acestora. 
Se observă că BNP-ul de azi apelează la ceea ce se produce ca software pentru organizațiile de stat și în centrele de calcul ale acestora sau în firme private, pentru a nu se dezvolta noi procese de realizare de produse software care există deja. În contextul existenței Internetului, a portalurilor pe care le au dezvoltatorii de software dar și cei mai mulți dintre utilizatori schimburile de informații au o cu totul altă intensitate și cu totul alți emițători, respectiv, receptori, nefiind necesară trecerea printr-un filtru în condițiile în care nu există un catalog online al tuturor produselor software, așa cum realizase vechiul BNP, iar chestiunile de costuri acum când toată lumea dorește gratuităși sund împovărătoare.
Biblioteca Națională de Programe a renăscut dar în alte condiții pentru că dreptul de autor și dreptul de proprietate sunt lucruri despre care nu se pomenea înainte de 1989 și noul BNP trebuie să navigheze ținând seama de ele, acolo asigurându-se garanția că produsul software acceptat îndeplinește 100% condițiile pentru care a fost creat.


(01 octombrie 2017)