Testarea dezvoltării - Development testing
| Dezvoltare de software |
|---|
Testarea dezvoltării este un proces de dezvoltare software care implică aplicarea sincronizată a unui spectru larg de strategii de prevenire și detectare a defectelor pentru a reduce riscurile de dezvoltare software, timpul și costurile.
În funcție de așteptările organizației pentru dezvoltarea de software, testare de dezvoltare ar putea include analiza codul static , fluxul de date analiza , analiza metrici , recenzii de cod la egal la egal , unitate de testare , analiză de acoperire cod , trasabilitatea , precum și alte practici de verificare de software.
Prezentare generală
Testarea dezvoltării este efectuată de către dezvoltatorul sau inginerul de software în timpul fazei de construcție a ciclului de viață al dezvoltării software - ului .
Mai degrabă decât să înlocuiască focalizările tradiționale QA , acesta îl mărește. Testarea dezvoltării vizează eliminarea erorilor de construcție înainte ca codul să fie promovat la QA; această strategie este menită să crească calitatea software-ului rezultat, precum și eficiența dezvoltării generale și a procesului de asigurare a calității.
Scopuri și beneficii
Testarea dezvoltării este aplicată în următoarele scopuri principale:
- Asigurarea calității — Pentru a îmbunătăți dezvoltarea generală și procesul de testare prin încorporarea calității și securității în software (mai degrabă decât încercarea de a testa defectele / vulnerabilitățile).
- Conformitate industrială sau de reglementare - Pentru a obține conformitatea cu inițiativele de conformitate cu industria sau cu reglementările (de exemplu, FDA , IEC 62304 , DO-178B , DO-178C , ISO 26262 , IEC 61508 etc.) care necesită în mod obișnuit reducerea strictă a riscurilor, precum și bidirecțională trasabilitatea cerințelor (de exemplu, între cerințe, teste, recenzii de cod, cod sursă, defecte, sarcini etc.)
Cercetarea VDC raportează că implementarea standardizată a proceselor de testare a dezvoltării în cadrul unui proces standardizat global nu numai că îmbunătățește calitatea software-ului (prin alinierea activităților de dezvoltare cu cele mai bune practici dovedite), ci și crește predictibilitatea proiectului. Cercetările vocale raportează că testarea dezvoltării face software-ul mai previzibil, trasabil, vizibil și transparent pe tot parcursul ciclului de viață al dezvoltării software-ului.
Principii cheie
În fiecare dintre aplicațiile de mai sus, testarea dezvoltării începe prin definirea politicilor care exprimă așteptările organizației cu privire la fiabilitate , securitate, performanță și conformitate cu reglementările. Apoi, după ce echipa este instruită cu privire la aceste politici, practicile de testare a dezvoltării sunt implementate pentru a alinia activitățile de dezvoltare software cu aceste politici. Aceste practici de testare a dezvoltării includ:
- Practici care previn cât mai multe defecte posibil printr-o abordare inspirată de Deming , care promovează reducerea oportunității de eroare prin analiza cauzelor principale .
- Practici care expun defecte imediat după introducere - atunci când găsirea și remedierea defectelor este mai rapidă, mai ușoară și mai ieftină.
Accentul pus pe aplicarea unui spectru larg de practici de prevenire și detectare a defectelor se bazează pe premisa că diferite tehnici de testare a dezvoltării sunt reglate pentru a expune diferite tipuri de defecte în diferite puncte ale ciclului de viață al dezvoltării software-ului, astfel încât aplicarea mai multor tehnici în comun reduce riscul de defecte care alunecau prin fisuri. Importanța aplicării unui set larg de practici este confirmată de Boehm și Basili în „Lista de top 10 pentru reducerea defectelor software”, adesea menționată.
Analiza statică
Termenul „testare a dezvoltării” a fost folosit ocazional pentru a descrie aplicarea instrumentelor de analiză statică. Numeroși lideri din industrie s-au opus acestei confuzii, deoarece analiza statică nu este testată din punct de vedere tehnic; chiar și analiza statică care „acoperă” fiecare linie de cod este incapabilă să confirme că codul face ceea ce ar trebui să facă - sau să expună anumite tipuri de defecte sau vulnerabilități de securitate care se manifestă doar pe măsură ce software-ul este executat dinamic. Deși mulți avertizează că analiza statică singură nu ar trebui considerată un glonț de argint sau un panaceu, majoritatea experților din industrie sunt de acord că analiza statică este o metodă dovedită pentru eliminarea multor defecte de securitate, fiabilitate și performanță. Cu alte cuvinte, deși analiza statică nu este aceeași cu testarea dezvoltării, este considerată de obicei o componentă a testării dezvoltării.
Activități suplimentare
În plus față de diferitele implementări ale analizei statice, cum ar fi analiza fluxului și testarea unitară, testarea dezvoltării include și revizuirea codului peer ca activitate primară de calitate. Revizuirea codului este considerată pe scară largă una dintre cele mai eficiente metode de detectare și prevenire a defectelor în dezvoltarea de software.