Testing in production

O practică de dezvoltare software în care modificările de cod noi sunt testate pe traficul utilizatorilor în direct, mai degrabă decât într-un mediu intermediar.

Testarea în producție (TIP) este o practică de dezvoltare software în care modificările de cod noi sunt testate pe traficul utilizatorilor în direct, mai degrabă decât într-un mediu de etapizare. Este una dintre practicile de testare găsite în livrarea continuă.

Software-ul de producție este versiunea software-ului care este lansat în direct utilizatorilor reali. În schimb, software-ul de dezvoltare, de organizare sau de pre-producție este în curs de construire și nu este încă disponibil pentru utilizatorii finali.

De ce să testăm în producție
Din punct de vedere istoric, companiile au încercat să se asigure că software-ul pe care îl construiesc a fost testat temeinic pentru erori în mediile de dezvoltare, etapizare și pre-producție, cu mult înainte ca acesta să ajungă la utilizatori în producție. Prinderea erorilor devreme împiedică utilizatorii să vadă erori, sporind încrederea clienților și satisfacția generală față de un brand și produsele sale.

Cu toate acestea, prinderea tuturor erorilor în dezvoltare și în etapă nu este ușoară. Echipele de inginerie și QA pot petrece mult timp și efort construind teste unitare, testând suite și testând sisteme de automatizare, încercând să simuleze mediul de producție sau verificând manual fluxurile utilizatorilor cu date de utilizator simulate și testând cazuri pentru a încerca să expună erorile doar pentru a găsi afară că o cutie de colț cheie a fost trecută cu vederea. În cele din urmă, mulți utilizatori pot experimenta software buggy chiar și după ce o perioadă mare de timp este petrecută testând în dezvoltare.

În multe cazuri, este imposibil să simulăm complet software-ul real din lume într-un mediu de testare. Cu toate dependențele prezente în sistemele moderne de producție și numeroasele cazuri posibile, testarea producției a devenit o parte necesară a testelor software și devops. Companiile de top de software, cum ar fi Google, Netflix și Amazon, lansează în mod constant noi funcții într-o fracțiune din traficul lor pentru a măsura impactul.

Testarea producției și semnalizarea caracteristicilor
Odată cu avansarea semnalizărilor de caracteristici (cunoscute sub numele de comutare de funcții și lansări de funcții) care permit echipelor de ingineri să expună software-ul nou doar unor fracțiuni din traficul de producție live, companiile pot pune caracteristici experimentale sau noi în fața unei mici porțiuni din traficul de producție pentru a le verifica rapid software-ul lor funcționează așa cum era de așteptat în timp real, având în același timp o modalitate sigură de a reveni la orice erori neacoperite folosind un comutator de distrugere sau retrogradare.

Rularea testelor în producție prin lansări sau semnalizatoare de caracteristici permite ca toate datele despre produse, dependențele și cazurile marginale să fie luate în considerare în testele de integrare cuprinzătoare. A avea date din lumea reală poate fi deosebit de puternic atunci când efectuați teste de performanță sau teste de încărcare.

Instrumentele de semnalizare a caracteristicilor au, de asemenea, avantajul suplimentar de a permite testarea A / B, unde noua caracteristică este comparată cu versiunea anterioară a software-ului pentru a vedea care dintre acestea are ca rezultat o experiență mai bună a utilizatorului pe baza datelor de producție. Acest lucru permite inginerilor de software să nu se asigure doar că noile lor caracteristici nu conțin erori, ci folosește și date reale pentru a valida faptul că modificarea îmbunătățește de fapt experiența lor generală de software.