4_IP
-
Upload
andreea-grama -
Category
Documents
-
view
220 -
download
0
Transcript of 4_IP
Testarea Programelor
Testarea Programelor
Cateva intrebari…
Ati avea încredere într-un pilot automat (avion, masina) complet automatizat?… scris de dvs. insivă ?… scris de unul dintre colegii dvs. ?
Ati avea curajul să folositi sistem software scris dvs pentru diagnosticare?… dar dacă ceva merge prost si sunteti făcut responsabil ?
Ati avea încredere într-o centrală nucleară complet automatizată?
Testarea Programelor Componenta din procesul de asigurare a calitatii software (SQA)
SQA - serie de activitati de monitorizare a procesului de software engineering si in vederea asigurarii calitatii sistemelor software obtinute Acopera intreg procesul: requirements definition, software design, source
code control, code reviews, changes management, configuration management, release management
(S)QA cannot absolutely guarantee the production of quality products, unfortunately, but makes this more likely
SQA – conceptul V & V Construim produsul corect (are we building the right product ?) =>program
corect din punctul de vedere al utilizatorului – Validare Construim corect produsul (are we building the product right ?) =>program
corect din punctul de vedere al programatorului - (Verificare)
Testarea Programelor Verificarea şi validarea trebuie să stabilească încredere că sistemul software
poate fi folosit
Aceasta NU înseamnă fără nici un defect Mai degrabă, trebuie să fie suficient de bun pentru ceea ce este folosit
Necesita planificare atentă pentru a folosi eficient procesele de testare
Planificarea trebuie să înceapă devreme în procesul de dezvoltare
Testarea Programelor
SQA – recomandat a fi in concordanta cu unul sau mai multe standarde: ISO 9000, ISO 9001, CMMI, etc.
ISO 9000 – familie de standarde pentru calitatea sistemelor
ISO 9001 – desprins din ISO 9000: a set of procedures; monitoring processes; keeping adequate records; checking output for defects; regularly reviewing individual processes; facilitating continual improvement
Cateva concepte ale calitatii software: sigurantă, eficientă, uzabilitate, intretinere
Dilema calitatii software
De ce exista defecte software (bug –uri) ?
Comunicarea deficitară, blocaje de comunicare
Înţelegerea deficitară
Presiunea Timpului
Nivelul Programatorului (sau al echipei) este Scăzut
Comunicarea deficitara (in tratarea cerintelor)
Testarea programelor – cand facem erorile ?
Testarea Programelor – de unde provin erorile ?
• Cerinţe definite Incomplet 50%
• Modelare Ambiguă sau Insuficientă 30%
• Erori de Programare 20%
Testarea Programelor Testarea software – set de investigatii derulate in vederea obtinerii de informatii
privind calitatea unui produs software [wikipedia]
Testarea software – “The process of exercising or evaluating a system by manual or automated means to verify that it satisfies specified requirements or to identify differences between expected and actual results.” [IEEE Standard Glossary,1983]
Scop: scoaterea în evidentă a defectelor unui program înainte ca programul să fie livrat
Test reusit este acela care face programul să se comporte incorect (evidentiază un defect)
Testarea demonstrează prezenta, si nu absenta, erorilor într-un program
Testarea Programelor
Tehnicile de vârf actuale nu sunt capabile să obtină programe fără defecte
Se fac 30 - 85 erori la 1000 linii de cod (‘81)
După testare intensivă: 0.5 – 3 erori la 1000 linii de cod (‘86)
Testarea Programelor
Testarea cuprinde activitati de: concepţia cazurilor de test execuţia testelor evaluarea rezultatelor testelor
Testarea – derulata în fiecare etapa a ciclului de viaţă al programelor
Testarea Software NU trebuie sa fie vazuta ca o fază este un proces care trebuie integrat în toate fazele construcţiei produsului
software - există documente de testare asociate la fiecare fază a dezvoltării
In general – dupa definirea cerintelor si completarea scrierii codului
Testarea programelor – modelul general
Testarea programelor – in procesul de dezvoltare
Systemspecification
Systemdesign
Detaileddesign
Module andunit codeand test
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
Service Acceptancetest
Systemintegration test
Sub-systemintegration test
Requirementsspecification
[I. Sommerville]
Testarea Programelor
De a localiza şi preveni bugs cât mai curând posibil - influenteaza costurile
De a efectua toate Testele corespunzător Cerinţelor, într-un mod cât mai eficient şi mai economic
De a aduce produsul software la un nivel de calitate cât mai ridicat (pentru client)
Testarea nu e doar pentru Software. Este pentru toate componentele ce vor fi livrate clientului
Testarea Programelor
Profesionalismul în testare: abilitatea de a selecta numărul minim de cazuri de testare eficiente ce vor fi capabile să verifice numărul maxim de funcţii ale sistemului
Doar testarea completă poate arăta că un program nu are defecte, dar testarea completă este imposibilă
Testarea Programelor - Cand oprim testarea ?
Niciodată
Când numărul de erori găsite într-un ciclu de testare este mai mic decât un număr stabilit
Când nu mai sunt găsite defecte critice şi majore
Când expira timpul
Testarea Programelor Nivele de testare:
unit testing, integration testing, system testing, acceptance testing
Metode de testare: static vs dinamic testing abodarea de tip box testing (white-box, black-box, grey-box) visual testing manual vs automated testing
Obiectivele testarii: installation testing, compatibility testing, sanity testing, regression testing,
acceptance testing, alpha and beta testing, functional vs. non functional testing, destructive testing, performance testing, usability testing, accessibility testing, security testing, internationalization and localization testing, development testing