Testați ca Google: cele mai bune practici de la industria giganților (04.26.24)

Putem învăța multe de la giganții din industrie, observând metodele și abordările lor în fluxurile de lucru.

Cum reușesc să mențină procesul de testare a software-ului în milioane de linii de cod?

Cum organizează fluxul de lucru cu mii de ingineri QA?

Cum fac față extinderii proiectului?

Experiența companiilor precum Google sau Spotify poate ajuta la îmbunătățirea proceselor de testare în companiile mici și echipe.

Să aruncăm o privire mai atentă asupra modului în care testează giganții.

Google: importanța acoperirii codului

​​110617 Totuși, mulți ingineri susțin importanța unei astfel de măsuri a eficienței testării software-ului ca acoperire de cod. Specialiștii de la Google insistă asupra faptului că datele privind acoperirea codului pot fi informații valoroase pentru evaluarea riscurilor și a blocajelor într-o activitate de testare. Carlos Arguelles, Marko Ivanković și Adam Bender împărtășesc cele mai bune practici pentru acoperirea codului:

  • Acoperirea codului poate ajuta la reducerea erorilor și erorilor. Experiența inginerilor QA de la Google a arătat că creșterea acoperirii codului duce la modificări ale abordărilor și atitudinilor față de testare. Echipele cu acoperire a codului ca obiective principale tind să facă o testabilitate mai bună a produselor lor. Scriu un cod mai eficient pentru testare pentru a atinge obiectivele de testare mai ușor și consumă mai puțin timp.
  • Folosiți testarea mutației pentru a asigura o acoperire ridicată a testelor. Acoperirea completă a codului poate fi risipitoare și nu garantează acoperirea testelor de înaltă calitate. Un procent ridicat de acoperire a codului nu înseamnă că toate funcțiile au fost testate corect. Înseamnă că codul a fost testat în general. Pentru a asigura o înaltă calitate a acoperirii testelor, experții Google recomandă utilizarea testelor de mutație. Această metodă include implementarea modificărilor de cod mici și verificarea modului în care seturile de testare le identifică.
  • Procentul de acoperire a codului depinde de mulți factori. Nu ar trebui să vizăm o acoperire cu cod ridicat, dar o acoperire scăzută duce și la un număr mare de eșecuri. Și întrebarea este, care este acoperirea codului specific pentru un anumit sistem? Pentru a răspunde la această întrebare, ar trebui să luăm în considerare lucruri precum criticitatea, complexitatea și frecvența schimbării codului. Acoperirea codului este o decizie comercială, iar proprietarii de produse ar trebui să o definească.
  • Analizați ce trebuie să acoperiți. Nu putem obține o acoperire cod 100%, așa că inginerii QA ar trebui să observe că sunt acoperite cele mai valoroase părți ale codului. O echipă de dezvoltatori ar trebui să discute și să nu se gândească la câte linii de cod sunt acoperite, ci ce anume este acoperit.
Spotify: strategie de încredere

Spotify este o companie cu creștere rapidă. A fost înființată în 2008 cu 150 de angajați. În 2019, numărul angajaților a crescut la 4 405. Astăzi, Spotify deservește aproximativ 300 de milioane de utilizatori din întreaga lume, ceea ce îl face cel mai popular serviciu de streaming din lume.

Putem învăța lecții despre cum Spotify își scalează testarea și procesele de dezvoltare.

  • Stabiliți obiectivele produsului pentru echipa QA. Spotify are echipe multifuncționale. Fiecare echipă are obiective și un set de abilități speciale pentru a aborda aceste obiective. Structura echipei depinde de obiective. Prin urmare, unele echipe sunt formate doar din dezvoltatori, iar altele au dezvoltatori și testeri. Astfel, testerii cooperează îndeaproape cu echipa de dezvoltare și se concentrează pe obiectivele principale ale produsului. O astfel de abordare permite Spotify să scaleze eficient procesul de dezvoltare.
  • Testarea automatizării este un instrument, dar nu un panaceu. Managerul de testare și dezvoltare din Spotify Kristian Karl susține că testerii software nu pot fi înlocuiți cu automatizarea. Testarea necesită experiență și cunoștințe umane. Testarea automatizării este un instrument robust pentru a accelera procesul, dar oamenii iau decizii și analizează rapoarte automate. Spotify folosește automatizarea ca unul dintre instrumentele de scară. Permite testerilor să părăsească rutina pentru algoritmi și să se concentreze asupra obiectivelor produsului.
SpaceX: testarea continuă este o necesitate

SpaceX este o companie inovatoare cunoscută pentru transportul spațiului comercial, un sistem de lansare reutilizabil și eficiență ridicată.

Nicholas Chaillan, director software pentru Forțele Aeriene, a declarat că sistemul departamentului de dezvoltare SpaceX este de cinci ori mai eficient decât companiile cu flux de lucru clasic. Cum face față SpaceX procesul de testare cu o astfel de performanță?

DevOps și abordările Agile permit inginerilor SpaceX QA să furnizeze teste de automatizare în masă. Prin ciclul de dezvoltare, testerii furnizează teste continue pentru a obține feedback instantaneu și pentru a elimina riscurile existente. Astfel, aceștia lucrează proactiv, testând des și devreme.

Compania a dezvoltat o strategie privind modul de implementare a testării continue în procesul de dezvoltare.

  • Prioritizează valoarea. La fel ca Google, SpaceX recomandă utilizarea valorilor de acoperire a codului pentru a înțelege ce ar trebui să automatizați și ce nu. Ajută la optimizarea testării continue și la îmbunătățirea activităților deja întreprinse.
  • Cheia este testarea automată de la capăt la cap. Faceți din analiza impactului o parte a integrării continue. Permite companiilor să analizeze modul în care adăugarea de funcții noi sau schimbarea codului pot afecta un sistem general sau anumite părți ale sistemului său.
  • Echipa ar trebui să aibă un mediu de testare stabil și ușor de reprodus. Un instrument precum Instantaneul mașinii virtuale vă poate ajuta să salvați starea datelor, să reveniți la testare sau să reluați activitatea.
  • Utilizați inteligența artificială și învățarea automată pentru a analiza rapoartele de testare. AI -unelte bazate accelerează implementarea și optimizează procesul de testare.
  • Construiți o arhitectură robustă de integrare continuă. Principalul avantaj al sistemului CI este perioadele scurte între construirea și testarea codului. . Testarea continuă trebuie să fie implicată în procesul de dezvoltare și să implice tipurile de testare necesare.
  • Sum Up

    Fiecare companie are strategia, procesul și abordările sale de testare. Fiecare echipă selectează și ajustează procesul de testare pe baza obiectivelor finale și a capacităților produsului. Sarcina principală a oricărui specialist este să se gândească la client și la utilizatorul final, să se adapteze la noile cerințe și să adopte experiența celor mai buni din industrie.


    Video YouTube.: Testați ca Google: cele mai bune practici de la industria giganților

    04, 2024