Documente Academic
Documente Profesional
Documente Cultură
Curs 1
Curs 1
Introducere s
Marius Minea 3 octombrie 2011
- aparat medical pentru terapie cu radiatie - 6 accidente cu morti i rni grave (1985-87, SUA, Canada) s a - cauza direct: erori in programul de control a
- aparat medical pentru terapie cu radiatie - 6 accidente cu morti i rni grave (1985-87, SUA, Canada) s a - cauza direct: erori in programul de control a Analiz retrospectiv [Leveson 1995]: a a ncredere excesiv software ( analiza produsului) a n n abilitate = sigurant a lipsa msurilor de sigurant hardware a a lipsa practicilor de ingineria programrii (proiectare defensiv, a a specicare, documentatie, simplitate, analiz formal, testare) a a corectarea unei erori nu face sistemul mai sigur !!
1. procesul A de prioritate mic obtine resursa R a 2. A ntrerupt de C (prioritate mare) 3. C ateapt eliberarea lui R; A revine executie s a n 4. A ntrerupt de B (prioritate medie, A < B < C) C ateapt dup B, dei nu depinde de el i are prioritate mai mare! s a a s s Solutia: ridicarea prioritii unui proces care obtine o resurs (A) at a la nivelul celui mai prioritar proces care poate solicita resursa (C)
Mars Climate Orbiter, 1998 dezintegrare la intrarea atmosfer n a eroarea tehnic: discrepanta a ntre uniti de msur sistemele at a a n anglo-american i metric s erori multiple de proces: lipsa unor interfete formale Mars Polar Lander, 1998 trenul de aterizare e activat prematur la intrarea atmosfer n a ocul e interpretat ca aterizare, motoarele sunt oprite s eroarea: lipsa testrii de integrare a
Software Engineering Institute Capability Maturity Model Integration: Vericarea asigur c produsul e construit concordant cu cerintele, a a n a specicatiile i standardele. s Sunt ndeplinite cerintele specicate ? Produsul e construit corect (cum trebuie) ? Validarea asigur a a produsul va utilizabil pe piat. a Produsul acoper nevoile operationale ? a Produsul poate utilizat mediul intentionat ? n Se construiete produsul care trebuie ? s
V & V: terminologie
NASA Software Assurance Guidebook and Standard: V&V: Procesul de a asigura c produsul software: a va satisface cerintele (functionale i altele) validare s i ecare pas construirea sa rezult un produs corect vericare s n a Diferenta dintre vericare i validare e important doar pentru s a teoretician; practicienii folosesc V&V referindu-se la toate activitile care at asigur c software-ul va functiona conform cerintelor. a a
Tehnologii inspectie (reviews, inspections, walkthroughs) testare analiz i vericare formal as a Proces faza de conceptie: stabilirea planului de testare analiza cerintelor: scenarii de test pe baza celor de utilizare design: vericarea modelulul raport cu specicarea n implementare: inspectie + testare la nivel de modul integrare: testare de integrare, rapoarte de test
Ce e testarea ?
Testarea e procesul prin care se execut un program cu intentia de a a gsi erori (Myers, The Art of Software Testing). a
Ce e testarea ?
Testarea e procesul prin care se execut un program cu intentia de a a gsi erori (Myers, The Art of Software Testing). a Aproape la fel, dar de fapt invers: Testarea e procesul de a demonstra c programul nu are erori. a (imposibil doar prin testare) Dijkstra: Testing can be used very eectively to show the presence of bugs but never to show their absence. un test de succes e acela care descoper (i localizeaz) o eroare. a s a
Ce e testorul ?
Rolul unui testor e s gseasc erori a a a ct mai devreme cu putint a a (costul corectrii crete odat cu timpul) a s a i s asigure corectarea lor s a (rapoarte, depanare, mentenant) a (Patton, Software Testing)
Cauza / sursa erorilor cele mai multe, cauzate de deciente specicatie n apoi cele originnd faza de proiectare a n doar relativ putine (uneori sub 15%) erori directe de programare Costul erorilor crete, chiar exponential, avansnd procesul de productie s a n O($1) la specicare, O($1000+) dup livrare a
What Makes a Good Software Tester (Patton) They They They They They They They They are explorers. are troubleshooters are relentless are creative are (mellowed) perfectionists exercise good judgment are tactful and diplomatic (?) are persuasive (!)
Testarea software e un exercitiu de apreciere a riscurilor Cu ct mai multe erori gseti, cu att mai multe sunt a a s a Paradoxul pesticidelor (Beizer): erorile devin reziliente la teste (pentru a gsi erori noi e nevoie de teste noi) a Nu toate erorile gsite vor corectate a E greu de spus cnd o eroare e o eroare ... a Specicatiile produselor nu sunt niciodat denitive a Testorii nu sunt cei mai populari membri ai echipei de proiect :) Testarea de software e o profesie tehnic guvernat de o disciplin a a a
[Cem Kaner, Black-box software testing course, Florida Inst. of Tech] Ce testm ? Ce vrem s am din asta ? a a a Care e misiunea testrii ? a Cum organizm lucrul pentru a a ndeplini misiunea ? Problema strategiei testrii a Cnd am testat destul ? a Problema msurrii testare a a n
o investigatie tehnic a produsului de testat efectuat pentru a oferi a a persoanelor implicate informatie legat de calitate [Kaner] a investigatie: cutare activ, organizat de informatii a a a tehnic: experimente, logic, modele, algoritmi, unelte a a produsul testat: ce primete clientul, totalitate s n (software, hardware, baze de date, documentatie, etc.) persoane implicate: succesul produsului, i al testrii n s a
puternic: ans mare de a descoperi o anumit eroare dac exist s a a a a convingtor (problem important) i credibil (e realist s apar) a a a s a a reprezentativ / probabil pentru client uor de evaluat (e o eroare sau nu?) / uor de depanat / informativ s s de complexitate potrivit (progresiv) a a relevant privind functionarea / performanta produsului (de ex. detecteaz modicri comportament / performant) a a n a
Java Pathnder http://babelfish.arc.nasa.gov/trac/jpf model checking i testare / executie simbolic s a Randoop http://people.csail.mit.edu/cpacheco/randoop/ testare prin generare aleatoare + feedback, pentru Java Blast (vericator pentru C), CREST (executie concret + simbolic), a a Daikon(generare de invarianti), ESCJava2 (analiz static), KeY, Why a a (vericare deductiv), ... a