Test som Google: Beste fremgangsmåter fra Industry Giants (04.26.24)

Vi kan lære mye av industrigiganter ved å observere metodene og tilnærmingene deres i arbeidsflyter.

Hvordan klarer de å opprettholde programvaretestprosessen innen millioner av kodelinjer?

Hvordan organiserer de arbeidsflyten med tusenvis av QA-ingeniører?

Hvordan takler de prosjektutvidelsen?

Erfaring fra selskaper som Google eller Spotify kan bidra til å forbedre testprosesser i små selskaper og team.

La oss se nærmere på hvordan gigantene tester.

Google: viktigheten av kodedekning

Likevel argumenterer mange ingeniører for viktigheten av et slikt mål for programvaretestingseffektivitet. som kodedekning. Spesialister fra Google insisterer på at kodedekningsdata kan være verdifull informasjon for å vurdere risiko og flaskehalser i en testaktivitet. Carlos Arguelles, Marko Ivanković og Adam Bender deler beste praksis for kodedekning:

  • Kodedekning kan bidra til å redusere feil og feil. Erfaring fra QA-ingeniører fra Google viste at økende kodedekning fører til endringer i tilnærminger og holdninger til testing. Lag med kodedekning som hovedmål har en tendens til å gjøre produktene bedre testbare. De skriver mer effektiv kode for testing for å oppnå testmål enklere og mindre tidkrevende.
  • Bruk mutasjonstesting for å sikre høy testdekning. Komplett kodedekning kan være bortkastet og garanterer ikke testdekning av høy kvalitet. En høy prosentandel av kodedekning betyr ikke at alle funksjoner ble testet riktig. Det betyr at koden ble testet totalt. For å sikre høy kvalitet på testdekningen anbefaler Google-eksperter å bruke mutasjonstesting. Denne metoden inkluderer implementering av små kodeendringer og kontroll av hvordan testsettene identifiserer dem.
  • Prosentandelen av kodedekning avhenger av mange faktorer. Vi bør ikke sikte mot høy kodedekning, men lav dekning fører også til et stort antall feil. Og spørsmålet er, hva er spesifikk kodedekning for et bestemt system? For å svare på dette spørsmålet, bør vi vurdere slike ting som kritikk, kompleksitet og hyppighet for å endre kode. Kodedekning er en forretningsbeslutning, og produkteiere bør definere den.
  • Analyser hva du skal dekke. Vi kan ikke få 100% kodedekning, så QA-ingeniører bør observere at de mest verdifulle kodedelene dekkes. Et utviklerteam bør diskutere og tenke ikke på hvor mange kodelinjer som er dekket, men hva som dekkes nøyaktig.
Spotify: pålitelig strategi

Spotify er et raskt voksende selskap. Det ble etablert i 2008 med 150 ansatte. I 2019 økte antall ansatte til 4 405. I dag betjener Spotify rundt 300 millioner brukere over hele verden, noe som gjør den til den mest populære streamingtjenesten i verden.

Vi kan lære leksjoner om hvordan Spotify skalerer testingen og utviklingsprosesser.

  • Sett produktmål for QA-team. Spotify har tverrfunksjonelle team. Hvert lag har mål og et sett med spesielle ferdigheter for å nærme seg disse målene. Lagstrukturen avhenger av mål. Derfor består noen lag bare av utviklere, og noen har utviklere og testere. Dermed samarbeider testere tett med utviklingsteamet og fokuserer på produktets primære mål. En slik tilnærming tillater Spotify å skalere utviklingsprosessen effektivt.
  • Automatiseringstesting er et verktøy, men ikke et universalmiddel. Test- og utviklingssjef i Spotify Kristian Karl hevder at programvaretestere ikke kan erstattes av automatisering. Testing krever menneskelig erfaring og kunnskap. Automatiseringstesting er et robust verktøy for å øke hastigheten på prosessen, men mennesker tar beslutninger og analyserer automatiserte rapporter. Spotify bruker automatisering som et av skaleringsverktøyene. Det lar testere legge igjen rutiner for algoritmer og fokusere på produktmål.
SpaceX: kontinuerlig testing er et must

SpaceX er et innovativt selskap kjent for kommersiell romtransport, et gjenbrukbart lanseringssystem og høy effektivitet.

Nicholas Chaillan, programvaresjef for Air Force, sa at SpaceX-utviklingsavdelingssystemet er fem ganger mer effektivt enn selskaper med klassisk arbeidsflyt. Hvordan takler SpaceX testprosessen med slik ytelse?

DevOps og Agile-tilnærmingene tillater SpaceX QA-ingeniører å tilby masseautomatiseringstesting. Gjennom utviklingssyklusen gir testere kontinuerlig testing for å få øyeblikkelig tilbakemelding og eliminere eksisterende risiko. Dermed arbeider de proaktivt, tester ofte og tidlig.

Selskapet utviklet en strategi for hvordan man kan implementere kontinuerlig testing i utviklingsprosessen.

  • Prioriter verdi. I likhet med Google anbefaler SpaceX å bruke beregninger for kodedekning for å forstå hva du bør automatisere og hva som ikke bør. Det hjelper med å optimalisere kontinuerlig testing og forbedre aktiviteter som allerede er tatt.
  • Nøkkelen er automatisert end-to-end-testing. Gjør en konsekvensanalyse til en del av kontinuerlig integrasjon. Det gjør det mulig for bedrifter å analysere hvordan å legge til nye funksjoner eller endre kode kan påvirke et samlet system eller noen deler av systemet.
  • Teamet skal ha et stabilt og lett replikert testmiljø. Et verktøy som Virtual Machine Snapshot kan bidra til å lagre datatilstand, gå tilbake til testing eller gjenoppta arbeid.
  • Bruk kunstig intelligens og maskinlæring til å analysere testrapporter. AI -baserte verktøy fremskynder distribusjonen og optimaliserer testprosessen.
  • Bygg en robust kontinuerlig integrasjonsarkitektur. Den største fordelen med CI-systemet er korte perioder mellom bygging og tester av koden. . Kontinuerlig testing må være involvert i utviklingsprosessen og involvere nødvendige typer testing.
  • Oppsummering

    Hvert selskap har sin teststrategi, prosess og tilnærminger. Hvert team velger og justerer testprosessen basert på de endelige målene og produktets evner. Hovedoppgaven til enhver spesialist er å tenke på klienten og sluttbrukeren, tilpasse seg nye krav og ta i bruk opplevelsen fra de beste i bransjen.


    YouTube Video.: Test som Google: Beste fremgangsmåter fra Industry Giants

    04, 2024