Testa som Google: Bästa praxis från Industry Giants (04.26.24)

Vi kan lära oss mycket av branschjättar genom att följa deras metoder och tillvägagångssätt i arbetsflöden.

Hur lyckas de behålla programvarutestningsprocessen inom miljontals kodrader?

Hur organiserar de arbetsflöden med tusentals QA-ingenjörer?

Hur hanterar de projektutvidgningen?

Erfarenhet av företag som Google eller Spotify kan hjälpa till att förbättra testprocesser i små företag och team.

Låt oss titta närmare på hur jättar testar.

Google: vikten av kodtäckning

Ändå argumenterar många ingenjörer om vikten av ett sådant mått på programvarutestningseffektivitet som kodtäckning. Specialister från Google insisterar på att kodtäckningsdata kan vara värdefull information för att utvärdera risker och flaskhalsar i en testaktivitet. Carlos Arguelles, Marko Ivanković och Adam Bender delar bästa praxis för kodtäckning:

  • Kodtäckning kan hjälpa till att minska fel och fel. Erfarenheten av QA-ingenjörer från Google visade att ökad kodtäckning leder till förändringar i tillvägagångssätt och attityder till testning. Team med kodtäckning som primära mål tenderar att göra sina produkter bättre testbara. De skriver mer effektiv kod för testning för att uppnå testmål enklare och mindre tidskrävande.
  • Använd mutationstestning för att säkerställa hög testtäckning. Komplett kodtäckning kan vara slösaktigt och garanterar inte testkvalitet av hög kvalitet. En hög andel kodtäckning betyder inte att alla funktioner testades korrekt. Det betyder att koden testades totalt. För att säkerställa hög kvalitet på testtäckningen rekommenderar Googles experter att använda mutationstester. Den här metoden inkluderar implementering av små kodändringar och kontroll av hur testuppsättningarna identifierar dem.
  • Andelen kodtäckning beror på många faktorer. Vi bör inte sträva efter hög kodtäckning, men låg täckning leder också till ett stort antal misslyckanden. Och frågan är, vad är specifik kodtäckning för ett visst system? För att svara på den här frågan bör vi överväga saker som kritik, komplexitet och frekvens för att ändra kod. Kodtäckning är ett affärsbeslut och produktägare bör definiera det.
  • Analysera vad som ska täckas. Vi kan inte få 100% kodtäckning, så QA-ingenjörer bör observera att de mest värdefulla delarna av koden täcks. Ett utvecklarteam bör diskutera och tänka inte på hur många kodrader som täcks, utan vad som exakt täcks.
Spotify: pålitlig strategi

Spotify är ett snabbt växande företag. Det grundades 2008 med 150 anställda. År 2019 ökade antalet anställda till 4 405. Idag betjänar Spotify cirka 300 miljoner användare världen över, vilket gör det till den mest populära streamingtjänsten i världen.

Vi kan lära oss hur Spotify skalar sin testning och utvecklingsprocesser.

  • Ställ in produktmål för QA-team. Spotify har tvärfunktionella team. Varje lag har mål och en uppsättning särskilda färdigheter för att närma sig dessa mål. Lagstrukturen beror på mål. Därför består vissa lag endast av utvecklare och andra har utvecklare och testare. Således samarbetar testare nära med utvecklingsteamet och fokuserar på produktens primära mål. Ett sådant tillvägagångssätt gör det möjligt för Spotify att skala utvecklingsprocessen effektivt.
  • Automationstestning är ett verktyg, men inte ett universalmedel. Test- och utvecklingschef i Spotify Kristian Karl hävdar att programvarutestare inte kan ersättas med automatisering. Testning kräver mänsklig erfarenhet och kunskap. Automationstestning är ett robust verktyg för att påskynda processen, men människor fattar beslut och analyserar automatiserade rapporter. Spotify använder automatisering som ett av skalverktygen. Det låter testare lämna rutin för algoritmer och fokusera på produktmål.
SpaceX: kontinuerlig testning är ett måste

SpaceX är ett innovativt företag känt för kommersiell rymdtransport, ett återanvändbart lanseringssystem och hög effektivitet.

Nicholas Chaillan, chef för flygvapnet, sa att SpaceX-utvecklingsavdelningssystemet är fem gånger effektivare än företag med klassiskt arbetsflöde. Hur klarar SpaceX testprocessen med sådan prestanda?

DevOps och Agile-metoderna gör det möjligt för SpaceX QA-ingenjörer att testa massautomation. Genom utvecklingscykeln tillhandahåller testare kontinuerliga tester för att få omedelbar feedback och eliminera befintliga risker. Därigenom arbetar de proaktivt och testar ofta och tidigt.

Företaget utvecklade en strategi för hur man implementerar kontinuerlig testning i utvecklingsprocessen.

  • Prioritera värde. Precis som Google rekommenderar SpaceX att använda mätvärden för kodtäckning för att förstå vad du ska automatisera och vad som inte bör. Det hjälper till att optimera kontinuerlig testning och förbättra aktiviteter som redan tagits.
  • Nyckeln är automatiserad end-to-end-testning. Gör en konsekvensanalys till en del av kontinuerlig integration. Det gör det möjligt för företag att analysera hur man kan lägga till nya funktioner eller ändra kod kan påverka ett övergripande system eller vissa delar av systemet.
  • Teamet ska ha en stabil och lätt replikerad testmiljö. Ett verktyg som Snapshot för virtuell maskin kan hjälpa till att spara datatillstånd, återgå till testning eller återuppta arbete.
  • Använd artificiell intelligens och maskininlärning för att analysera testrapporter. AI -baserade verktyg påskyndar driftsättningen och optimerar testprocessen.
  • Bygg en robust kontinuerlig integrationsarkitektur. Den största fördelen med CI-systemet är korta perioder mellan byggnad och test av koden . Kontinuerlig testning måste vara involverad i utvecklingsprocessen och involvera nödvändiga typer av testning.
  • Sammanfattning

    Varje företag har sin teststrategi, process och metoder. Varje team väljer och justerar testprocessen baserat på de ultimata målen och produktfunktionerna. Huvuduppgiften för varje specialist är att tänka på klienten och slutanvändaren, anpassa sig till nya krav och anta erfarenheterna från de bästa i branschen.


    YouTube-video: Testa som Google: Bästa praxis från Industry Giants

    04, 2024