Pagsubok Tulad ng Google: Mga Pinakamahusay na Kasanayan mula sa Mga Giants sa Industriya (04.20.24)

Marami tayong matututunan mula sa mga higante ng industriya sa pamamagitan ng pagmamasid sa kanilang mga pamamaraan at diskarte sa mga daloy ng trabaho.

Paano nila pinangangalagaan ang proseso ng pagsubok ng software sa loob ng milyun-milyong mga linya ng code?

Paano nila aayos ang daloy ng trabaho kasama ang libu-libong mga inhinyero ng QA? Paano nila makayanan ang pagpapalawak ng proyekto?

Ang karanasan ng mga kumpanya tulad ng Google o Spotify ay makakatulong mapabuti ang mga proseso ng pagsubok sa maliliit na kumpanya at mga koponan.

Google: ang kahalagahan ng saklaw ng code

Gayunpaman, maraming mga inhinyero ang nagtatalo tungkol sa kahalagahan ng nasabing sukat ng kahusayan sa pagsubok ng software bilang saklaw ng code. Iginiit ng mga dalubhasa mula sa Google na ang data ng saklaw ng code ay maaaring maging mahalagang impormasyon para sa pagsusuri ng mga panganib at bottleneck sa isang aktibidad sa pagsubok. Sina Carlos Arguelles, Marko Ivanković, at Adam Bender ay nagbabahagi ng pinakamahuhusay na kasanayan para sa saklaw ng code:

  • Ang saklaw ng code ay makakatulong upang mabawasan ang mga bug at pagkabigo. Ipinakita ng karanasan ng mga QA-engineer mula sa Google na ang pagtaas ng saklaw ng code ay humantong sa mga pagbabago sa mga diskarte at saloobin sa pagsubok. Ang mga pangkat na may saklaw ng code bilang pangunahing layunin ay may posibilidad na gumawa ng mas mahusay na pagsubok sa kanilang mga produkto. Nagsusulat sila ng mas mahusay na code para sa pagsubok upang makamit ang mga layunin sa pagsubok na mas madali at mas kaunting oras.
  • Gumamit ng pagsubok sa mutation upang matiyak na mataas ang saklaw ng pagsubok. Ang kumpletong saklaw ng code ay maaaring maging aksaya at hindi ginagarantiyahan ang saklaw ng mataas na kalidad na pagsubok. Ang isang mataas na porsyento ng saklaw ng code ay hindi nangangahulugang ang lahat ng mga pagpapaandar ay nasubok nang tama. Nangangahulugan ito na ang code ay pangkalahatang nasubukan. Upang matiyak ang mataas na kalidad ng saklaw ng pagsubok, inirerekumenda ng mga eksperto ng Google ang paggamit ng pagsubok sa mutation. Kasama sa pamamaraang ito ang pagpapatupad ng mga maliliit na pagbabago ng code at pag-check kung paano nakikilala ang mga hanay ng pagsubok.
  • Ang porsyento ng saklaw ng code ay nakasalalay sa maraming mga kadahilanan. Hindi namin dapat hangarin ang mataas na saklaw ng code, ngunit ang mababang saklaw ay humantong sa isang malaking bilang ng mga pagkabigo din. At ang tanong ay, ano ang tukoy na saklaw ng code para sa isang partikular na system? Upang sagutin ang katanungang ito, dapat nating isaalang-alang ang mga bagay tulad ng pagiging kritikal, kumplikado, at dalas ng pagbabago ng code. Ang saklaw ng code ay isang pasya sa negosyo, at dapat itong tukuyin ng mga may-ari ng produkto.
  • Pag-aralan kung ano ang sasakupin. Hindi kami makakakuha ng 100% saklaw ng code, kaya dapat na obserbahan ng mga inhinyero ng QA iyon ang pinaka-mahalagang mga bahagi ng code ay sakop. Ang isang pangkat ng developer ay dapat talakayin at isipin hindi tungkol sa kung gaano karaming mga linya ng code ang nasasakop, ngunit kung ano ang eksaktong nasasakop.
Spotify: maaasahang diskarte

Ang Spotify ay isang mabilis na lumalagong kumpanya. Ito ay itinatag noong 2008 kasama ang 150 mga empleyado. Noong 2019 ang bilang ng mga empleyado ay lumago hanggang sa 4 405. Ngayon ang Spotify ay nagsisilbi ng halos 300 milyong mga gumagamit sa buong mundo, ginagawa itong pinakasikat na serbisyo sa streaming sa buong mundo. proseso ng pag-unlad.

  • Magtakda ng mga layunin sa produkto para sa QA-team. Ang mga Spotify ay mayroong mga cross-functional na koponan. Ang bawat koponan ay may mga layunin at isang hanay ng mga partikular na kasanayan upang lumapit sa mga layuning ito. Ang istraktura ng koponan ay nakasalalay sa mga layunin. Samakatuwid, ang ilang mga koponan ay binubuo lamang ng mga developer at ang ilan ay may mga developer at tester. Samakatuwid, ang mga tagasubok ay nakikipagtulungan malapit sa koponan ng pag-unlad at nakatuon sa pangunahing mga layunin ng produkto. Ang ganitong diskarte ay nagbibigay-daan sa Spotify na sukatin nang maayos ang proseso ng pag-unlad.
  • Ang pagsubok sa automation ay isang tool, ngunit hindi isang panlunas sa sakit. Sinusubukan ng Test and Development Manager sa Spotify Kristian Karl na ang mga tester ng software ay hindi maaaring mapalitan ng awtomatiko. Ang pagsubok ay nangangailangan ng karanasan at kaalaman ng tao. Ang pagsubok sa awtomatiko ay isang matibay na tool upang mapabilis ang proseso, ngunit ang mga tao ay gumagawa ng mga desisyon at pinag-aaralan ang mga awtomatikong ulat. Gumagamit ang Spotify ng automation bilang isa sa mga tool sa scale. Pinapayagan nitong mag-iwan ng mga gawain ang mga sumusubok para sa mga algorithm at pagtuunan ng pansin ang mga layunin ng produkto.
SpaceX: kinakailangan ng tuloy-tuloy na pagsubok mataas na kahusayan.

Si Nicholas Chaillan, pinuno ng opisyal ng software para sa Air Force, ay nagsabi na ang sistema ng departamento ng pagpapaunlad ng SpaceX ay limang beses na mas mahusay kaysa sa mga kumpanya na may klasikong daloy ng trabaho. Paano nakayanan ng SpaceX ang proseso ng pagsubok sa naturang pagganap?

Pinapayagan ng mga diskarte ng DevOps at Agile na SpaceX QA-engineers na magbigay ng pagsubok sa masahe ng masa. Sa pamamagitan ng ikot ng pag-unlad, nagbibigay ang mga sumusubok ng tuluy-tuloy na pagsubok upang makakuha ng instant na puna at matanggal ang mga mayroon nang mga panganib. Sa gayon sila ay gumaganang proactive, madalas na sumusubok at maaga.

Bumuo ang isang kumpanya ng isang diskarte sa kung paano ipatupad ang tuluy-tuloy na pagsubok sa proseso ng pag-unlad.

  • Unahin ang halaga. Tulad ng Google, inirekomenda ng SpaceX ang paggamit ng mga sukatan ng saklaw ng code upang maunawaan kung ano ang dapat mong i-automate at kung ano ang hindi dapat. Nakakatulong ito upang mai-optimize ang tuluy-tuloy na pagsubok at pagbutihin ang mga aktibidad na nakuha na. Pinapayagan nitong masuri ng mga kumpanya kung paano makakaapekto ang pagdaragdag ng mga bagong pag-andar o pagbabago ng code sa isang pangkalahatang system o ilang bahagi ng system nito.
  • Ang koponan ay dapat magkaroon ng isang matatag at madaling kinopya ang kapaligiran sa pagsubok. Ang isang tool tulad ng Virtual Machine Snapshot ay maaaring makatulong sa pag-save ng estado ng data, bumalik sa pagsubok, o ipagpatuloy ang trabaho.
  • Gumamit ng Artipisyal na Intelihensiya at pag-aaral ng Machine upang suriin ang mga ulat sa pagsubok. AI -based na mga tool na pinapabilis ang paglawak at na-optimize ang proseso ng pagsubok.
  • Bumuo ng isang matatag na patuloy na arkitektura ng pagsasama. Ang pangunahing bentahe ng sistema ng CI ay maikling panahon sa pagitan ng pagbuo at mga pagsubok ng code . Ang tuluy-tuloy na pagsubok ay dapat na kasangkot sa proseso ng pag-unlad at may kasamang kinakailangang mga uri ng pagsubok.
  • Sum Up

    Ang bawat kumpanya ay may diskarte, proseso, at diskarte sa pagsubok. Pinipili at inaayos ng bawat koponan ang proseso ng pagsubok batay sa mga panghuli na layunin at kakayahan ng produkto. Ang pangunahing gawain ng sinumang espesyalista ay mag-isip tungkol sa kliyente at sa end-user, umangkop sa mga bagong kinakailangan, at gamitin ang karanasan ng pinakamahusay sa industriya.


    Youtube Video.: Pagsubok Tulad ng Google: Mga Pinakamahusay na Kasanayan mula sa Mga Giants sa Industriya

    04, 2024