Preizkusite kot Google: najboljše prakse iz industrije Giants (03.29.24)

Od panožnih velikanov se lahko veliko naučimo z opazovanjem njihovih metod in pristopov v delovnih poteh.

Kako jim uspe ohraniti postopek testiranja programske opreme znotraj milijonov kodnih vrstic?

Kako organizirajo potek dela s tisoči inženirjev za zagotavljanje kakovosti?

Kako se spopadajo s širitvijo projekta?

Izkušnje podjetij, kot sta Google ali Spotify, lahko pomagajo izboljšati postopke testiranja v majhnih podjetjih in ekipe.

Oglejmo si podrobneje, kako preizkušajo velikani.

Google: pomen pokritosti kode

Kljub temu se mnogi inženirji prepirajo o pomembnosti takšnega merila učinkovitosti testiranja programske opreme kot pokritost kode. Googlovi strokovnjaki vztrajajo, da so podatki o pokritosti kode lahko dragocene informacije za oceno tveganj in ozkih grl pri preskusni dejavnosti. Carlos Arguelles, Marko Ivanković in Adam Bender delijo najboljše prakse za pokrivanje kode:

  • Pokritost kode lahko pomaga zmanjšati napake in napake. Izkušnje Googlovih inženirjev za zagotavljanje kakovosti so pokazale, da povečanje pokritosti kode vodi do sprememb pristopov in odnosa do testiranja. Skupine s pokritostjo kode kot glavnimi cilji ponavadi izboljšajo preizkusnost svojih izdelkov. Za testiranje napišejo učinkovitejšo kodo, da lažje in manj zamudno dosežejo cilje testiranja.
  • S testiranjem mutacij zagotovite visoko pokritost s testom. Popolna pokritost kode je lahko potratna in ne zagotavlja kakovostne pokritosti s preskusi. Visok odstotek pokritosti kode ne pomeni, da so bile vse funkcije pravilno preizkušene. To pomeni, da je bila koda na splošno preizkušena. Da bi zagotovili visoko kakovost pokritosti s testi, Googlovi strokovnjaki priporočajo uporabo testiranja mutacij. Ta metoda vključuje izvajanje majhnih sprememb kode in preverjanje, kako jih preizkusni nizi prepoznajo.
  • Odstotek pokritosti kode je odvisen od številnih dejavnikov. Ne smemo si prizadevati za visoko pokritost kode, vendar nizka pokritost vodi tudi do velikega števila napak. Vprašanje pa je, kakšna je posebna pokritost kode za določen sistem? Da bi odgovorili na to vprašanje, bi morali razmisliti o kritičnosti, zapletenosti in pogostosti spreminjanja kode. Pokritost kode je poslovna odločitev, lastniki izdelkov pa jo morajo določiti.
  • Analizirajte, kaj zajeti. Ne moremo dobiti 100% pokritosti kode, zato bi morali inženirji QA upoštevati, da zajeti so najdragocenejši deli kode. Ekipa razvijalcev bi morala razpravljati in razmišljati ne o tem, koliko vrstic kode je zajetih, temveč o tem, kaj natančno je zajeto.
Spotify: zanesljiva strategija

Spotify je hitro rastoče podjetje. Ustanovljen je bil leta 2008 s 150 zaposlenimi. Leta 2019 se je število zaposlenih povečalo na 4 405. Danes Spotify služi približno 300 milijonom uporabnikov po vsem svetu, zaradi česar je najbolj priljubljena pretočna storitev na svetu.

Lahko se naučimo lekcij o tem, kako Spotify meri svoje testiranje in razvojni procesi.

  • Nastavite cilje izdelka za ekipo QA. Spotify ima večfunkcijske ekipe. Vsaka ekipa ima cilje in vrsto posebnih veščin, kako se jim približati. Struktura ekipe je odvisna od ciljev. Zato nekatere ekipe sestavljajo samo razvijalci, nekatere pa razvijalce in preizkuševalce. Tako preizkuševalci tesno sodelujejo z razvojno skupino in se osredotočajo na primarne cilje izdelka. Tak pristop omogoča, da Spotify učinkovito širi razvojni proces.
  • Preizkušanje avtomatizacije je orodje, ne pa tudi zdravilo. Vodja preizkusov in razvoja v Spotifyu Kristian Karl trdi, da preizkuševalcev programske opreme ni mogoče nadomestiti z avtomatizacijo. Testiranje zahteva človeške izkušnje in znanje. Avtomatizirano testiranje je močno orodje za pospešitev procesa, vendar ljudje sprejemajo odločitve in analizirajo avtomatizirana poročila. Spotify uporablja avtomatizacijo kot eno od merilnih orodij. Preizkuševalcem omogoča, da rutino prepustijo algoritmom in se osredotočijo na cilje izdelka.
SpaceX: neprekinjeno testiranje je nujno

SpaceX je inovativno podjetje, znano po komercialnem vesoljskem prevozu, sistemu za večkratno uporabo in visoka učinkovitost.

Nicholas Chaillan, vodja programske opreme za Air Force, je dejal, da je sistem razvojnega oddelka SpaceX petkrat učinkovitejši od podjetij s klasičnim delovnim tokom. Kako se SpaceX spopada s preskusnim postopkom s tako zmogljivostjo?

DevOps in pristopi Agile omogočajo inženirjem SpaceX QA zagotavljanje množičnega testiranja avtomatizacije. Skozi razvojni cikel preizkuševalci zagotavljajo neprekinjeno testiranje, da dobijo takojšnje povratne informacije in odpravijo obstoječa tveganja. S tem delajo proaktivno, pogosto in zgodaj testirajo.

Podjetje je razvilo strategijo, kako v razvojnem procesu izvajati neprekinjeno testiranje.

  • Prednostno določite vrednost. Tako kot Google tudi SpaceX priporoča uporabo meritev pokritosti kode, da boste razumeli, kaj morate avtomatizirati in kaj ne. Pomaga optimizirati neprekinjeno testiranje in izboljšati že izvedene dejavnosti.
  • Ključno je avtomatizirano testiranje od konca do konca. Analiza učinka naj bo del stalne integracije. Podjetjem omogoča analizo, kako lahko dodajanje novih funkcij ali spreminjanje kode vpliva na celoten sistem ali nekatere njegove dele.
  • Skupina bi morala imeti stabilno in lahko ponovljivo preskusno okolje. Z orodjem, kot je posnetek navideznega računalnika, lahko prihranite stanje podatkov, se vrnete na testiranje ali nadaljujete z delom.
  • Za analizo poročil o testiranju uporabite umetno inteligenco in strojno učenje. Orodja na osnovi pospešijo uvajanje in optimizirajo preskusni proces.
  • Zgradite zanesljivo arhitekturo neprekinjene integracije. Glavna prednost sistema CI so kratka obdobja med izdelavo in testiranjem kode . Neprekinjeno testiranje mora biti vključeno v razvojni proces in mora vključevati potrebne vrste testiranja.
  • Povzetek

    Vsako podjetje ima svojo strategijo testiranja, postopek in pristope. Vsaka ekipa izbere in prilagodi postopek testiranja na podlagi končnih ciljev in zmogljivosti izdelka. Glavna naloga vsakega strokovnjaka je razmišljati o stranki in končnem uporabniku, se prilagoditi novim zahtevam in sprejeti izkušnje najboljših v panogi.


    YouTube Video.: Preizkusite kot Google: najboljše prakse iz industrije Giants

    03, 2024