Rodzaje automatyzacji CI

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.