Poniżej znajdziesz typowe formy automatyzacji, które możesz wykorzystać w swoim systemie CI.
Zadania podstawowe
Kompilacja: tworząc projekt od podstaw, masz pewność, że nowe zmiany się skompilowają, a wszystkie biblioteki i narzędzia są ze sobą zgodne.
Sprawdzanie linii lub stylu: jest to opcjonalny, ale zalecany krok. Gdy egzekwujesz reguły stylu i przeprowadzasz analizę statyczną, weryfikacja kodu może być bardziej zwięzła i konkretna.
Testy lokalne lub testy po stronie hosta: przeprowadzane są na komputerze lokalnym, na którym kompilacja jest przeprowadzana. W przypadku Androida jest to zwykle JVM, więc jest szybkie i niezawodne. Obejmują one również testy robolectryczne.
Testy z instrumentacją
Testy przeprowadzane na emulatorach lub na urządzeniach fizycznych wymagają udostępnienia administracyjnej, oczekiwania na uruchomienie lub połączenie urządzeń oraz inne operacje, które zwiększają złożoność.
Testy z instrumentacją w CI możesz przeprowadzać na wiele sposobów:
- Urządzenia zarządzane przez Gradle mogą służyć do definiowania urządzeń, które mają być używane (np. „emulator Pixela 2 w interfejsie API 27”) oraz obsługuje obsługę administracyjną urządzeń.
- Większość systemów CI ma wbudowaną wtyczkę innej firmy (zwaną też „działaniem”, „integracją” lub „krok”) do obsługi emulatorów Androida.
- Przekaż testy instrumentowane do farmy urządzeń, na przykład do Laboratorium Firebase. Farmy urządzeń są wykorzystywane ze względu na wysoką niezawodność i mogą działać w emulatorach lub na urządzeniach fizycznych.
Testy regresji wydajności
Do monitorowania wydajności aplikacji zalecamy używanie bibliotek porównawczych. Automatyzacja testów wydajności na etapie programowania wymaga urządzeń fizycznych, aby zapewnić spójne i realistyczne wyniki testów.
Wykonywanie analiz porównawczych może zająć dużo czasu, zwłaszcza jeśli w testach porównawczych masz dużo kodu i ścieżek użytkowników. Zamiast przeprowadzać wszystkie testy porównawcze dla każdej scalonej funkcji lub zatwierdzenia, możesz je wykonać w ramach regularnie zaplanowanej kompilacji konserwacji, np. co noc.
Monitorowanie wydajności
Możesz sprawdzać spadki wydajności, korzystając z dopasowania stopniowego. Dopasowanie kroków definiuje okno kroczące wcześniejszych wyników kompilacji, które porównujesz z bieżącą kompilacją. Ta metoda łączy kilka wyników analizy porównawczej w jeden wskaźnik dotyczący regresji. Możesz zastosować dopasowanie schodkowe, aby zredukować szum podczas testowania regresji.
Zmniejsza to liczbę wyników fałszywie pozytywnych, które mogą wystąpić, gdy czasy testów porównawczych są długie w przypadku pojedynczej kompilacji, a następnie ponownie się ustabilizują.
Testy regresji zakresu testowego
Zasięg testów to dane, które mogą pomóc Tobie i Twojemu zespołowi podjąć decyzję, czy testy w wystarczającym stopniu obejmują daną zmianę. Nie jest to jednak jedyny wskaźnik. Częstą praktyką jest skonfigurowanie testu regresji, który kończy się niepowodzeniem lub wyświetla ostrzeżenie, gdy zasięg maleje w stosunku do gałęzi podstawowej.