4_ip

19
Testarea Programelor

Upload: andreea-grama

Post on 14-Apr-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4_IP

Testarea Programelor

Page 2: 4_IP

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ă?

Page 3: 4_IP

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)

Page 4: 4_IP

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

Page 5: 4_IP

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

Page 6: 4_IP

Dilema calitatii software

Page 7: 4_IP

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

Page 8: 4_IP

Comunicarea deficitara (in tratarea cerintelor)

Page 9: 4_IP

Testarea programelor – cand facem erorile ?

Page 10: 4_IP

Testarea Programelor – de unde provin erorile ?

• Cerinţe definite Incomplet 50%

• Modelare Ambiguă sau Insuficientă 30%

• Erori de Programare 20%

Page 11: 4_IP

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

Page 12: 4_IP

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)

Page 13: 4_IP

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

Page 14: 4_IP

Testarea programelor – modelul general

Page 15: 4_IP

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]

Page 16: 4_IP

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

Page 17: 4_IP

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ă

Page 18: 4_IP

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

Page 19: 4_IP

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