Testuj jak Google: najlepsze praktyki branżowych gigantów (03.29.24)

Możemy się wiele nauczyć od gigantów branżowych, obserwując ich metody i podejścia w przepływach pracy.

Jak udaje im się utrzymać proces testowania oprogramowania w milionach linii kodu?

Jak organizują przepływ pracy z tysiącami inżynierów QA?

Jak radzą sobie z rozszerzeniem projektu?

Doświadczenie firm takich jak Google czy Spotify może pomóc w usprawnieniu procesów testowania w małych firmach i zespoły.

Przyjrzyjmy się bliżej, jak testują giganci.

Google: znaczenie pokrycia kodu

Mimo to wielu inżynierów spiera się o znaczenie takiej miary wydajności testowania oprogramowania jako pokrycie kodu. Specjaliści z Google twierdzą, że dane dotyczące pokrycia kodu mogą być cennymi informacjami do oceny ryzyka i wąskich gardeł w działalności testowej. Carlos Arguelles, Marko Ivanković‎ i Adam Bender dzielą się najlepszymi praktykami dotyczącymi pokrycia kodu:

  • Pokrycie kodu może pomóc w ograniczeniu błędów i niepowodzeń. Doświadczenie inżynierów ds. kontroli jakości z Google pokazało, że zwiększenie zasięgu kodu prowadzi do zmian w podejściu i postawie wobec testowania. Zespoły, dla których głównym celem jest pokrycie kodu, mają tendencję do lepszej testowalności swoich produktów. Piszą bardziej wydajny kod do testowania, aby osiągnąć cele testowe łatwiej i mniej czasochłonne.
  • Używaj testów mutacji, aby zapewnić wysoki zasięg testu. Pełne pokrycie kodu może być marnotrawstwem i nie gwarantuje wysokiej jakości pokrycia testami. Wysoki procent pokrycia kodu nie oznacza, że ​​wszystkie funkcje zostały poprawnie przetestowane. Oznacza to, że kod został ogólnie przetestowany. Aby zapewnić wysoką jakość pokrycia testami, eksperci Google zalecają stosowanie testów mutacji. Ta metoda obejmuje implementację małych zmian w kodzie i sprawdzenie, jak zestawy testowe je identyfikują.
  • Procent pokrycia kodu zależy od wielu czynników. Nie powinniśmy dążyć do wysokiego pokrycia kodu, ale niskie pokrycie również prowadzi do dużej liczby błędów. A pytanie brzmi, co to jest konkretne pokrycie kodu dla konkretnego systemu? Aby odpowiedzieć na to pytanie, powinniśmy rozważyć takie rzeczy jak krytyczność, złożoność i częstotliwość zmian kodu. Pokrycie kodu to decyzja biznesowa i właściciele produktu powinni to zdefiniować.
  • Przeanalizuj, co należy pokryć. Nie możemy uzyskać 100% pokrycia kodu, więc inżynierowie QA powinni to zauważyć omówione są najcenniejsze części kodu. Zespół programistów powinien omówić i pomyśleć nie o tym, ile wierszy kodu jest objętych, ale o tym, co dokładnie obejmuje.
Spotify: niezawodna strategia

Spotify to szybko rozwijająca się firma. Została założona w 2008 roku i zatrudnia 150 pracowników. W 2019 r. liczba pracowników wzrosła do 4 405. Dziś Spotify obsługuje około 300 milionów użytkowników na całym świecie, co czyni go najpopularniejszą usługą przesyłania strumieniowego na świecie.

Możemy wyciągnąć wnioski o tym, jak Spotify skaluje swoje testy i procesy rozwoju.

  • Ustal cele produktowe dla zespołu QA. Spotify ma wielofunkcyjne zespoły. Każdy zespół ma cele i zestaw konkretnych umiejętności, aby osiągnąć te cele. Struktura zespołu zależy od celów. Dlatego niektóre zespoły składają się tylko z programistów, a niektóre mają programistów i testerów. Dlatego testerzy ściśle współpracują z zespołem programistów i koncentrują się na podstawowych celach produktu. Takie podejście pozwala Spotify na efektywne skalowanie procesu rozwoju.
  • Testowanie automatyczne to narzędzie, ale nie panaceum. Kierownik ds. testów i rozwoju w Spotify Kristian Karl twierdzi, że testerów oprogramowania nie można zastąpić automatyzacją. Testowanie wymaga ludzkiego doświadczenia i wiedzy. Testowanie automatyzacji to solidne narzędzie przyspieszające proces, ale ludzie podejmują decyzje i analizują automatyczne raporty. Spotify wykorzystuje automatyzację jako jedno z narzędzi skalowania. Pozwala testerom porzucić rutynę algorytmów i skupić się na celach produktu.
SpaceX: ciągłe testowanie jest koniecznością

SpaceX to innowacyjna firma znana z komercyjnego transportu kosmicznego, systemu startowego wielokrotnego użytku i wysoka wydajność.

Nicholas Chaillan, dyrektor ds. oprogramowania w Siłach Powietrznych, powiedział, że system działu rozwoju SpaceX jest pięć razy bardziej wydajny niż firmy z klasycznym przepływem pracy. Jak SpaceX radzi sobie z procesem testowania z taką wydajnością?

Podejścia DevOps i Agile pozwalają inżynierom SpaceX QA na przeprowadzanie testów automatyzacji masowej. W cyklu rozwojowym testerzy zapewniają ciągłe testowanie, aby uzyskać natychmiastową informację zwrotną i wyeliminować istniejące ryzyko. W ten sposób pracują proaktywnie, testując często i wcześnie.

Firma opracowała strategię wdrażania ciągłego testowania w procesie rozwoju.

  • Nadaj priorytet wartości. Podobnie jak Google, SpaceX zaleca używanie wskaźników pokrycia kodu, aby zrozumieć, co należy zautomatyzować, a co nie. Pomaga zoptymalizować ciągłe testowanie i ulepszyć już podjęte działania.
  • Kluczem jest zautomatyzowane kompleksowe testowanie. Uczyń analizę wpływu częścią ciągłej integracji. Pozwala firmom analizować, w jaki sposób dodanie nowych funkcji lub zmiana kodu może wpłynąć na cały system lub niektóre jego części.
  • Zespół powinien mieć stabilne i łatwe do replikacji środowisko testowe. Narzędzie takie jak Migawka maszyny wirtualnej może pomóc w zapisaniu stanu danych, powrocie do testowania lub wznowieniu pracy.
  • Użyj sztucznej inteligencji i uczenia maszynowego do analizowania raportów z testów. AI oparte na narzędziach przyspieszają wdrażanie i optymalizują proces testowania.
  • Zbuduj solidną architekturę ciągłej integracji. Główną zaletą systemu CI są krótkie okresy między kompilacją a testami kodu . Ciągłe testowanie musi być zaangażowane w proces rozwoju i obejmować niezbędne rodzaje testów.
  • Podsumowanie

    Każda firma ma swoją strategię, proces i podejście do testowania. Każdy zespół wybiera i dostosowuje proces testowania w oparciu o ostateczne cele i możliwości produktu. Głównym zadaniem każdego specjalisty jest myślenie o kliencie i użytkowniku końcowym, dostosowanie się do nowych wymagań i przyjęcie doświadczenia najlepszych w branży.


    Wideo YouTube.: Testuj jak Google: najlepsze praktyki branżowych gigantów

    03, 2024