Test som Google: Bedste fremgangsmåder fra branchegiganter (04.26.24)

Vi kan lære meget af industriens giganter ved at observere deres metoder og fremgangsmåder i arbejdsgange.

Hvordan klarer de at opretholde softwaretestprocessen inden for millioner af kodelinjer?

Hvordan organiserer de workflow med tusindvis af QA-ingeniører?

Hvordan håndterer de projektudvidelsen?

Erfaringer fra virksomheder som Google eller Spotify kan hjælpe med at forbedre testprocesser i små virksomheder og team.

Lad os se nærmere på, hvordan giganter tester.

Google: vigtigheden af ​​kodedækning

Alligevel argumenterer mange ingeniører for vigtigheden af ​​et sådant mål for software-testeffektivitet som kodedækning. Specialister fra Google insisterer på, at kodedækningsdata kan være værdifuld information til vurdering af risici og flaskehalse i en testaktivitet. Carlos Arguelles, Marko Ivanković og Adam Bender deler bedste praksis for kodedækning:

  • Kodedækning kan hjælpe med at reducere fejl og fejl. Erfaringerne fra QA-ingeniører fra Google viste, at øget kodedækning fører til ændringer i tilgang og holdning til test. Hold med kodedækning som primære mål har tendens til at gøre deres produkter bedre testbare. De skriver mere effektiv kode til test for at nå testmål lettere og mindre tidskrævende.
  • Brug mutationstest for at sikre høj testdækning. Komplet kodedækning kan være spild og garanterer ikke testdækning af høj kvalitet. En høj procentdel af kodedækning betyder ikke, at alle funktioner blev testet korrekt. Det betyder, at koden samlet blev testet. For at sikre en høj kvalitet af testdækningen anbefaler Google-eksperter at bruge mutationstest. Denne metode inkluderer implementering af små kodeændringer og kontrol af, hvordan testsættene identificerer dem.
  • Procentdelen af ​​kodedækning afhænger af mange faktorer. Vi bør ikke sigte mod høj kodedækning, men lav dækning fører også til et stort antal fejl. Og spørgsmålet er, hvad er specifik kodedækning for et bestemt system? For at besvare dette spørgsmål skal vi overveje ting som kritiskitet, kompleksitet og hyppighed for ændring af kode. Kodedækning er en forretningsbeslutning, og produktejere skal definere det.
  • Analyser, hvad der skal dækkes. Vi kan ikke få 100% kodedækning, så QA-ingeniører bør overholde de mest værdifulde dele af koden er dækket. Et udviklerhold bør diskutere og tænke ikke over, hvor mange kodelinjer der er dækket, men hvad der præcist er dækket.
Spotify: pålidelig strategi

Spotify er en hurtigt voksende virksomhed. Det blev etableret i 2008 med 150 ansatte. I 2019 voksede antallet af medarbejdere op til 4 405. I dag betjener Spotify omkring 300 millioner brugere over hele verden, hvilket gør det til den mest populære streamingtjeneste i verden.

Vi kan lære lektioner om, hvordan Spotify skalerer sin test og udviklingsprocesser.

  • Sæt produktmål for QA-team. Spotify har tværfunktionelle hold. Hvert hold har mål og et sæt særlige færdigheder til at nærme sig disse mål. Holdstrukturen afhænger af målene. Derfor består nogle hold kun af udviklere, og nogle har udviklere og testere. Testere samarbejder således tæt med udviklingsteamet og fokuserer på produktets primære mål. En sådan tilgang gør det muligt for Spotify at skalere udviklingsprocessen effektivt.
  • Automatiseringstest er et værktøj, men ikke et universalmiddel. Test- og udviklingschef i Spotify Kristian Karl hævder, at softwaretestere ikke kan erstattes af automatisering. Test kræver menneskelig erfaring og viden. Automatiseringstest er et robust værktøj til at fremskynde processen, men mennesker træffer beslutninger og analyserer automatiserede rapporter. Spotify bruger automatisering som et af skaleringsværktøjerne. Det giver testere mulighed for at efterlade rutine for algoritmer og fokusere på produktmål.
SpaceX: kontinuerlig test er et must

SpaceX er et innovativt firma kendt for kommerciel rumtransport, et genanvendeligt lanceringssystem og høj effektivitet.

Nicholas Chaillan, Chief Software Officer for Air Force, sagde, at SpaceX-udviklingsafdelingssystemet er fem gange mere effektivt end virksomheder med klassisk arbejdsgang. Hvordan håndterer SpaceX testprocessen med en sådan ydeevne?

DevOps og Agile-tilgangene tillader SpaceX QA-ingeniører at levere masseautomatiseringstest. Gennem udviklingscyklussen leverer testere kontinuerlig test for at få øjeblikkelig feedback og eliminere eksisterende risici. Dermed arbejder de proaktivt og tester ofte og tidligt.

Virksomheden udviklede en strategi for, hvordan man implementerer kontinuerlig test i udviklingsprocessen.

  • Prioriter værdi. Ligesom Google anbefaler SpaceX at bruge metoden til at dække kode for at forstå, hvad du skal automatisere, og hvad der ikke bør. Det hjælper med at optimere kontinuerlig test og forbedre aktiviteter, der allerede er taget.
  • Nøglen er automatiseret end-to-end test. Lav en effektanalyse til en del af kontinuerlig integration. Det giver virksomheder mulighed for at analysere, hvordan tilføjelse af nye funktioner eller ændring af kode kan påvirke et overordnet system eller nogle dele af dets system.
  • Holdet skal have et stabilt og let replikeret testmiljø. Et værktøj som Virtual Machine Snapshot kan hjælpe med at gemme datatilstand, vende tilbage til test eller genoptage arbejde.
  • Brug kunstig intelligens og maskinindlæring til at analysere testrapporter. AI -baserede værktøjer fremskynder implementeringen og optimerer testprocessen.
  • Byg en robust kontinuerlig integrationsarkitektur. Den største fordel ved CI-systemet er korte perioder mellem build og test af koden . Kontinuerlig test skal være involveret i udviklingsprocessen og involvere nødvendige typer af test.
  • Opsummer

    Enhver virksomhed har sin teststrategi, proces og tilgange. Hvert team vælger og justerer testprocessen baseret på de ultimative mål og produktfunktioner. Enhver specialists hovedopgave er at tænke på klienten og slutbrugeren, tilpasse sig nye krav og tilegne sig de bedste i branchen.


    YouTube Video.: Test som Google: Bedste fremgangsmåder fra branchegiganter

    04, 2024