Compatibility Test Suite (CTS) to bezpłatny zestaw testów klasy komercyjnej używany przez producentów urządzeń w celu zapewnienia zgodności ich urządzeń i raportowania wyników testów do celów weryfikacji. CTS ma zostać zintegrowany z codziennym przepływem pracy (np. poprzez system ciągłego budowania) inżynierów budujących urządzenie. Zamiarem CTS jest wczesne wykrywanie niezgodności i zapewnienie kompatybilności oprogramowania przez cały proces rozwoju.
CTS jest dostępny do pobrania jako plik binarny lub jako źródło w projekcie Android Open Source Project (AOSP) . CTS działa na komputerze stacjonarnym i wykonuje przypadki testowe bezpośrednio na podłączonych urządzeniach lub emulatorze.
CTS zawiera dwa główne komponenty oprogramowania:
- Wiązka testowa Federacji Handlowej działa na komputerze stacjonarnym i zarządza wykonywaniem testów. Federacja Handlowa oferuje możliwość fragmentowania testów na wielu testowanych urządzeniach (DUT). Możesz także użyć funkcji ponawiania prób pakietu, aby ponawiać tylko błędy, a nie pełne pakiety, co znacznie skraca czas ponownego uruchomienia.
- Poszczególne przypadki testowe są wykonywane na urządzeniu DUT. Przypadki testowe są pisane w Javie jako testy JUnit i spakowane pliki .apk systemu Android, które można uruchomić na rzeczywistym urządzeniu docelowym.
Weryfikator zestawu testów zgodności (weryfikator CTS)
Weryfikator zestawu testów zgodności (CTS Verifier) jest dodatkiem do CTS dostępnym do pobrania . Weryfikator CTS zapewnia testy interfejsów API i funkcji, których nie można przetestować na urządzeniu stacjonarnym bez ręcznego wprowadzania danych (na przykład jakości dźwięku i akcelerometru) lub ręcznego pozycjonowania.
CTS Verifier jest narzędziem do ręcznego testowania i zawiera następujące komponenty oprogramowania:
Aplikacja CTS Verifier uruchamiana na urządzeniu DUT (oraz na drugim urządzeniu na potrzeby pomiaru odległości) i zbierająca wyniki.
Pliki wykonywalne lub skrypty wykonywane na komputerze stacjonarnym w celu zapewnienia danych lub dodatkowej kontroli dla niektórych przypadków testowych w aplikacji CTS Verifier.
Przepływ pracy
Ten diagram podsumowuje przepływ pracy w CTS. Szczegółowe instrukcje można znaleźć na podstronach tej sekcji, zaczynając od opcji Konfiguracja .
Rodzaje przypadków testowych
CTS obejmuje następujące typy przypadków testowych:
- Testy jednostkowe testują atomowe jednostki kodu na platformie Android; np. pojedyncza klasa, taka jak java.util.HashMap.
Testy funkcjonalne testują kombinację interfejsów API razem w przypadku użycia wyższego poziomu.
Pokrycie testów jednostkowych
Przypadki testów jednostkowych obejmują następujące obszary, aby zapewnić kompatybilność:
Obszar | Opis |
---|---|
Testy podpisów | Dla każdej wersji Androida dostępne są pliki XML opisujące sygnatury wszystkich publicznych interfejsów API zawartych w tej wersji. CTS zawiera narzędzie umożliwiające sprawdzenie podpisów API względem interfejsów API dostępnych na urządzeniu. Wyniki sprawdzania podpisu są zapisywane w pliku XML z wynikami testu. |
Testy API platformy | Przetestuj interfejsy API platformy (biblioteki podstawowe i środowisko aplikacji systemu Android) zgodnie z dokumentacją w indeksie klas pakietu SDK, aby zapewnić poprawność interfejsu API, w tym prawidłowe podpisy klas, atrybutów i metod, prawidłowe zachowanie metod oraz negatywne testy, aby zapewnić oczekiwane zachowanie w przypadku nieprawidłowej obsługi parametrów. |
Testy Dalvika | Testy skupiają się na testowaniu formatu pliku wykonywalnego Dalvik. |
Model danych platformy | CTS testuje podstawowy model danych platformy udostępniony twórcom aplikacji za pośrednictwem dostawców treści, zgodnie z dokumentacją w pakiecie SDK android.provider : kontakty, przeglądarka, ustawienia itp. |
Zamierzenia Platformy | CTS testuje podstawowe intencje platformy, jak udokumentowano w SDK Available Intents . |
Uprawnienia platformy | CTS testuje podstawowe uprawnienia platformy, zgodnie z dokumentacją w zestawie SDK Dostępne uprawnienia . |
Zasoby platformy | CTS testuje poprawną obsługę typów zasobów platformy podstawowej, zgodnie z dokumentacją w zestawie SDK Dostępne typy zasobów . Obejmuje to testy: prostych wartości, rysunków, dziewięciu poprawek, animacji, układów, stylów i motywów oraz ładowania alternatywnych zasobów. |