Wyobraź sobie, że najważniejsze oprogramowanie w Twojej firmie nagle się zepsuje. Co by się stało? Klienci zawsze będą narzekać, że zamówienia mogą się gubić, nie docierać do terminów.
Można tego uniknąć: wdrażając ciągły i rygorystyczne testy, które wykrywają problemy, zanim spowodują chaos. Wdrożenie takiego procesu w organizacji jest jednak trudniejsze.
Z tego artykułu dowiesz się, co musisz wziąć pod uwagę, gdy przygotowujesz się do testowania w swojej firmie, i jakie korzyści możesz odnieść z testowania w dłuższej perspektywie.
Sprawdzone metody testowania przez zespoły produktowe
Pierwsza część tego artykułu dotyczy procesu rozpoczynania wdrażania testów w przepływie pracy.
Wdrażanie kultury testowania w zespole
Pomyślne wdrożenie testowania w zespole wymaga, aby wszyscy mieli wspólne podejście i postrzeganie jakości nie jako ciężkiej pracy, lecz inwestycji. Ten proces, tak jak wszystkie inne zmiany kulturowe, wymaga czasu i konsekwencji.
Jedną z rzeczy, które mogą kształtować tę kulturę, są regularne spotkania, na których omawiane są wady, ich wpływ, skąd pochodzą i co trzeba było naprawić. Pomaga to dowiedzieć się, dlaczego warto zapobiegać takim wadom od samego początku.
Wyznaczenie w zespole dedykowanej osoby, która nadzoruje i motywuje wysiłki, może znacznie zwiększyć szanse na sukces. Osoba, która określa wytyczne zespołowej, a nawet całej organizacji, zbiera sprawdzone metody, udostępnia je i promuje wysiłki na różnych poziomach.
Innym przydatnym narzędziem może być rotacja pomocy związanej z usługą. Uzyskanie bezpośrednich, niefiltrowanych statystyk od klientów i poznanie codziennych problemów, z jakimi mierzą się z Twoim produktem, może być bardzo cenne dla menedżerów produktów, projektantów i deweloperów.
Chcemy, aby wszyscy członkowie Twojego zespołu zdawali sobie sprawę, że jakość jest funkcją, która jest równie ważna jak inne funkcje tworzone przez Ciebie z myślą o produkcie. Przyjęcie tego sposobu myślenia staje się naturalnym postępem rozumienia, że testy również są funkcją. Ponieważ to właśnie testy są gwarancją jakości wysyłanego produktu.
Szczegółowy proces testowania
Gdy zespoły zaangażowane w projektowanie usługi uspójnią, można bardziej sformalizować istnienie i zastosowanie testów.
Niech testy staną się częścią „definicji gotowych”
Dodając testy jako wymaganie funkcji, deklarujesz, że funkcja nie jest gotowa do wprowadzenia, dopóki nie zostanie poprawnie i automatycznie przetestowana
Regularnie przeprowadzaj testy
Po wdrożeniu testy automatyczne mogą być Twoim zabezpieczeniem na każdym etapie procesu programowania. Nie wymagają one ingerencji człowieka w działanie AI i można je uruchamiać na każdym kluczowym etapie procesu programowania. Na przykład:
- Przy każdym zatwierdzeniu.
- Przy każdym żądaniu pull.
- Po każdej pełnej wersji lub zmianie środowiska.
Jeśli w środowisku produkcyjnym korzystasz z usług innych firm, możesz nawet uruchomić testy w środowisku produkcyjnym, aby sprawdzić, czy interfejsy API innych firm działają zgodnie z oczekiwaniami.
Definiowanie i zbieranie danych
Określenie zestawu danych jest ważne, ponieważ pozwala mierzyć skuteczność testów i wpływ testów na firmę. Oto kilka przykładów danych, których możesz używać:
- Wersje miesięcznie: większa liczba wersji miesięcznie może oznaczać, że proces programowania jest bardziej elastyczny. Kluczową rolę w tym procesie odgrywają automatyczne testy, które dają pewność, że publikowanie nowych wersji odbywa się z pewnością.
- Raporty o błędach: spadający trend w raportach o błędach może sugerować skuteczność testów (i procesów programistycznych).
- Zasięg testu: chociaż nigdy nie są to dokładne dane, zasięg może być dobrym wskaźnikiem tego, jak głęboko testujesz kluczowe przypadki użycia.
Pamiętaj, że na te wskaźniki wpływają też inne czynniki, które mogą je zniekształcać. Na przykład liczba wersji może być mniejsza w sezonie świątecznym, a liczba raportów o błędach rośnie. Nie ograniczaj się tylko do kilku z nich i połącz je z innymi danymi dostępnymi dla Twojego zespołu.
Jeśli uda Ci się wdrożyć te kroki ze swoim zespołem, w dłuższej perspektywie stan Twoich usług z pewnością przyniesie korzyści. To nie wszystko.
Sprawdzone metody testowania dla administratorów systemu
Zespoły produktowe nie mogą działać samodzielnie. Korzystają one ze sprzętu, narzędzi i infrastruktury utrzymywanej przez administratorów systemu. Choć administratorzy systemu zazwyczaj nie przyczyniają się bezpośrednio do rozwoju usługi, mogą nadal mieć znaczący wpływ na proces tworzenia usługi. Np. przez aktywne zarządzanie wersją przeglądarki używaną przez określone grupy użytkowników w firmie.
W drugiej części artykułu wyjaśniamy, jak to działa, z wykorzystaniem kanałów Chrome i zasad korporacyjnych.
Kanały wersji Chrome
Domyślnie Chrome aktualizuje się automatycznie, aby mieć pewność, że każdy użytkownik korzysta z najnowszej, najbardziej stabilnej i bezpiecznej wersji Chrome zawierającej wszystkie najnowsze funkcje.
Jako deweloper internetowy, który opracowuje produkt internetowy, możesz zdecydować się na użycie przeglądarki zamiast wersji stabilnej. Dzięki temu zespoły produktowe będą miały czas na dostosowanie usługi do zmian wprowadzonych na platformie internetowej.
W tym przypadku Chrome udostępnia łącznie 4 kanały wersji przeznaczone dla różnych grup użytkowników.
W przypadku Chrome możesz korzystać z różnych kanałów wersji, które pozwalają przewidywać przyszłe zmiany w przeglądarce i testować najnowsze funkcje, zanim staną się powszechnie dostępne:
- Wersja stabilna: tutaj znajduje się większość użytkowników. Wersja stabilna jest aktualizowana automatycznie po premierze wersji Chrome (która jest udostępniana co miesiąc).
- Wersja beta: ta wersja stanie się stabilna w ciągu 4–6 tygodni, co pozwoli Ci przejrzeć i przetestować nadchodzącą stabilną wersję oraz przygotować się do niej.
- Wersja deweloperska: ten kanał co tydzień otrzymuje nową wersję Chrome i zawiera wszystkie najnowsze poprawki, które z czasem trafią do wersji beta. Jest on w trakcie opracowywania i może się niespodziewanie popsuć. Zawiera on też najnowsze funkcje, czasem na długo przed wprowadzeniem ich do stabilnej wersji. To sprawia, że kanał deweloperski jest świetnym narzędziem do tworzenia prototypów.
- Kanał Canary: najbardziej eksperymentalny kanał, który zawiera wszystkie najnowsze funkcje, ale nie zawiera zbyt wielu testów. Co najmniej codziennie publikowane.
Jeśli chcesz dowiedzieć się więcej o kanałach Chrome, obejrzyj odpowiedni odcinek Chrome Concepts.
Korzystanie z kanałów w przykładowej organizacji
Struktura zespołów ds. usług różni się w zależności od organizacji, ponieważ nie ma jednego uniwersalnego podejścia do tworzenia oprogramowania. Przykładem może być zespół o tych rolach: Zarządzanie produktem, UX i UI, Inżynieria, Dział operacyjny i Pomoc.
W przypadku takiej organizacji możesz rozważyć podział kanałów w następujący sposób:
- Zarządzanie usługą: menedżerowie produktu zwykle mogą korzystać z kanału stabilnego, aby korzystać z tej samej wersji co większość użytkowników. Czasami mogą korzystać z kanału beta lub deweloperskiego, jeśli pracują nad funkcją wymagającą interfejsu API, który nie został jeszcze wprowadzony.
- Inżynieria i wrażenia użytkowników: część tych zespołów może pracować na kanale deweloperskim, aby dać im dostęp do najnowszych funkcji, takich jak wyświetlenie przejść, jeszcze zanim działają one stabilnie.
- Operacje: ta opcja może być w wersji beta, która pozwala przewidywać, jakie awarie będą miały wpływ na użytkowników.
- Pomoc: może korzystać z wersji stabilnej, by mieć pewność, że współpracują z usługą w tej samej przeglądarce co większość Twoich klientów.
Zarządzanie kanałami za pomocą zasad przedsiębiorstwa
Zamiast udzielać wskazówek i decydować, którego kanału używać, Chrome oferuje też narzędzia dla firm i administracyjne do aktywnego zarządzania kanałem, z którego korzystają użytkownicy. Jest to przydatne, ponieważ natychmiast zwiększa zakres testowania z kilku osób w deterministyczny zbiór użytkowników, co pozwala na jak najwcześniejszą wykrywalność usterek.
Jeśli chcesz uzyskać taki poziom kontroli, zalecamy skorzystanie z tej konfiguracji:
- Pracownicy (użytkownicy aplikacji): aby zminimalizować ryzyko zakłóceń, większość pracowników powinna korzystać z wersji stabilnej, która została w pełni przetestowana przez zespół testerów Chrome. Poza tym niewielki odsetek użytkowników (od 5 do 10%) może korzystać z wersji beta. Na tym kanale dostępna jest wersja przedpremierowa wersji stabilnej przez 4–6 tygodni, która może pomóc administratorom w wykryciu potencjalnych problemów z wersją, dając im więcej czasu na ich rozwiązanie, zanim ta wersja zostanie udostępniona wszystkim użytkownikom.
- Dział IT: członkowie działu IT, w tym sami administratorzy systemów, mogą korzystać z wersji beta lub dev, aby przez 4–6 lub 9–12 tygodni uzyskać podgląd funkcji, które pojawią się w stabilnej wersji Chrome.
Kanały wersji długoterminowych
Tworzenie usług może nie przebiegać tak szybko, jak planowaliśmy, a miesięczna częstotliwość publikowania wersji Chrome może być zbyt duża. W tym przypadku Chrome udostępnia rozszerzony kanał stabilny, który pozwala rzadziej otrzymywać aktualizacje funkcji, ale wciąż otrzymuje poprawki zabezpieczeń. Kanał jest aktualizowany co osiem tygodni.
Na diagramie poniżej widać kolejne etapy na różnych kanałach wersji Chrome:
- Zarówno stabilna, jak i rozszerzona, przez pierwsze 4 tygodnie wysyłają te same wersje.
- Nie ma rozszerzonego kanału beta. Zamiast tego do stabilizacji zarówno stabilnej, jak i rozszerzonej służy standardowy 4-tygodniowy cykl beta. Firmy, które zdecydują się na wdrożenie 8-tygodniowej stabilnej wersji, powinny nadal używać kanału beta, aby aktywnie wykrywać problemy, które mogą wpływać na ich środowiska.
Podsumowanie
Testowanie to kluczowy element firm tworzących oprogramowanie, który pozwala zapewnić odpowiednią jakość produktów, a także ważny krok dla administratorów systemów, ponieważ umożliwia pracownikom organizacji dostęp do wysokiej jakości oprogramowania i uniknięcie zakłócania procesów biznesowych.
Aby odnieść sukces w zakresie wdrażania przepływu pracy związanego z testowaniem w organizacji, wszyscy muszą wykazywać wspólne nastawienie do jakości, a więc testowanie jest funkcją.
W tym artykule omówiliśmy różne sposoby wdrażania sprawdzonych metod testowania w organizacji. Aby dowiedzieć się więcej o istniejących narzędziach do testowania, przeczytaj artykuł Narzędzia Chrome do sprawnego i automatycznego testowania.
Aby uzyskać praktyczne wskazówki dotyczące testowania, zapoznaj się z naszym najnowszym kursem szkoleniowym i sprawdzonymi metodami automatyzacji testów na stronie web.dev.