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 ä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 ä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.
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