Revizuire a Codului - Code review
| Dezvoltare de software |
|---|
| Activități de bază |
| Paradigme și modele |
| Metodologii și cadre |
| Disciplinele de sprijin |
| Practici |
| Instrumente |
| Standarde și corpuri de cunoaștere |
| Glosare |
| Schițe |
Revizuirea codului (denumită uneori evaluare inter pares ) este o activitate de asigurare a calității software-ului în care una sau mai multe persoane verifică un program în principal vizualizând și citind părți din codul sursă al acestuia , și o fac după implementare sau ca o întrerupere a implementării. Cel puțin una dintre persoane nu trebuie să fie autorul codului. Persoanele care efectuează verificarea, cu excepția autorului, sunt numite „recenzori”.
Deși descoperirea directă a problemelor de calitate este adesea obiectivul principal, recenziile de coduri sunt de obicei efectuate pentru a atinge o combinație de obiective:
- Calitate mai bună a codului - îmbunătățiți calitatea și menținerea codului intern (lizibilitate, uniformitate, înțelegere etc.)
- Găsirea defectelor - îmbunătățiți calitatea aspectelor externe, în special corectitudinea, dar găsiți și probleme de performanță, vulnerabilități de securitate, malware injectat, ...
- Învățare / Transfer de cunoștințe - ajutor în transferul de cunoștințe despre baza de cod, abordări de soluții, așteptări privind calitatea etc .; atât pentru recenzori, cât și pentru autor
- Creșteți sentimentul de responsabilitate reciprocă - creșteți sentimentul de proprietate colectivă și solidaritate
- Găsirea soluțiilor mai bune - generați idei pentru soluții și idei noi și mai bune care transcend codul specific la îndemână.
- Respectarea liniilor directoare QA, standardelor ISO / IEC - Revizuirea codului este obligatorie în anumite contexte, de exemplu, software de trafic aerian, software critic de siguranță
Definiția menționată mai sus a revizuirii codului o delimitează de tehnicile de asigurare a calității software învecinate, dar separate : în analiza statică a codului , verificarea principală este efectuată de un program automat, în autocontrole numai autorul verifică codul, în testarea executării codului este o parte integrantă, iar programarea în perechi se realizează continuu în timpul implementării și nu ca un pas separat.
Tipuri de recenzii
Există multe variante ale proceselor de revizuire a codului, dintre care unele vor fi detaliate mai jos. Tipurile de revizuire suplimentare fac parte din IEEE 1028
IEEE 1028-2008 enumeră următoarele tipuri de recenzii:
- Revizuiri ale managementului
- Recenzii tehnice
- Inspecții
- Plimbări
- Audituri
Inspecție (formală)
Din punct de vedere istoric, primul proces de revizuire a codului care a fost studiat și descris în detaliu a fost numit „Inspecție” de către inventatorul său Michael Fagan . Această inspecție Fagan este un proces formal care implică o execuție atentă și detaliată cu participanți multipli și faze multiple. Recenziile codurilor formale sunt metoda tradițională de revizuire, în care dezvoltatorii de software participă la o serie de întâlniri și revizuiesc codul rând cu rând, de obicei folosind copii tipărite ale materialului. Inspecțiile formale sunt extrem de amănunțite și s-au dovedit eficiente în depistarea defectelor din codul analizat.
Revizuirea regulată a codului bazată pe modificări (Walk-throughs)
În ultimii ani, multe echipe din industrie au introdus un tip de revizuire a codului mai ușor. Principala sa caracteristică este că scopul fiecărei recenzii se bazează pe modificările aduse bazei de cod efectuate într-un bilet, povestea utilizatorului, comiterea sau o altă unitate de lucru. Mai mult, există reguli sau convenții care încorporează sarcina de revizuire în procesul de dezvoltare (de exemplu, „fiecare bilet trebuie revizuit”), în loc să planifice în mod explicit fiecare revizuire. Un astfel de proces de revizuire se numește „revizuire regulată a codului bazată pe modificări”. Există multe variante ale acestui proces de bază. Un sondaj între 240 de echipe de dezvoltare din 2017 a constatat că 90% dintre echipe folosesc un proces de revizuire care se bazează pe modificări (dacă utilizează recenzii) și 60% utilizează o revizuire regulată a codului bazată pe modificări. De asemenea, majoritatea corporațiilor mari de software, cum ar fi Microsoft, Google și Facebook, urmează un proces de revizuire a codului bazat pe modificări.
Eficiența și eficacitatea recenziilor
Analiza continuă a lui Capers Jones a peste 12.000 de proiecte de dezvoltare software a arătat că rata de descoperire a defectelor latente a inspecției formale este în intervalul 60-65%. Pentru inspecția informală, cifra este mai mică de 50%. Rata de descoperire a defectelor latente pentru majoritatea formelor de testare este de aproximativ 30%. Un studiu de caz de revizuire a codului publicat în cartea Best Kept Secrets of Peer Code Review a constatat că recenziile ușoare pot descoperi la fel de multe bug-uri ca recenziile formale, dar au fost mai rapide și mai rentabile în contradicție cu studiul făcut de Capers Jones
De asemenea, au fost studiate tipurile de defecte detectate în recenziile de cod. Studiile empirice au furnizat dovezi că până la 75% din defectele revizuirii codului afectează mai degrabă evoluția / mentenabilitatea software-ului decât funcționalitatea, făcând recenziile de cod un instrument excelent pentru companiile de software cu cicluri de viață lungi ale produsului sau ale sistemului. Acest lucru înseamnă, de asemenea, că mai puțin de 15% din problemele discutate în revizuirea codului sunt legate de erori.
Instrucțiuni
S-a constatat că eficiența revizuirii codului depinde de viteza de revizuire. Tarifele de examinare a codului ar trebui să fie între 200 și 400 de linii de cod pe oră. Inspectarea și revizuirea a mai mult de câteva sute de linii de cod pe oră pentru software-ul critic (cum ar fi software-ul încorporat pentru siguranță ) poate fi prea rapidă pentru a găsi erori.
Instrumente de sprijin
Software-ul de analiză statică a codului reduce sarcina de a revizui bucăți mari de cod de pe dezvoltator prin verificarea sistematică a codului sursă pentru vulnerabilități și tipuri de defecte cunoscute. Un studiu realizat în 2012 de VDC Research raportează că 17,6% dintre inginerii software încorporați chestionați utilizează în prezent instrumente automate pentru a sprijini revizuirea codului de la egal la egal și 23,7% se așteaptă să le folosească în termen de 2 ani.
Vezi si
- Revizuirea software-ului
- Calitatea software-ului
- Cele mai bune practici de codificare
- Lista filozofiilor de dezvoltare software