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