Compatibility Test Suite (CTS) to darmowy zestaw testów klasy komercyjnej, dostępny do pobrania jako plik binarny lub jako źródło w ramach projektu Android Open Source Project (AOSP) . CTS reprezentuje „mechanizm” kompatybilności.
CTS działa na komputerze stacjonarnym i wykonuje przypadki testowe bezpośrednio na podłączonych urządzeniach lub emulatorze. CTS to zestaw testów jednostkowych zaprojektowanych do zintegrowania z codziennym przepływem pracy (takim jak system ciągłego budowania) inżynierów budujących urządzenie. Jego intencją jest wczesne wykrycie niezgodności i zapewnienie kompatybilności oprogramowania przez cały proces rozwoju.
CTS to zautomatyzowany pakiet testowy, który wykorzystuje dwa główne komponenty oprogramowania:
- Wiązka testowa CTS Trade Federation działa na komputerze stacjonarnym i zarządza wykonywaniem testów. Oferuje możliwość dzielenia testów na wielu testowanych urządzeniach (DUT). Możesz również użyć funkcji ponawiania prób pakietu , aby ponawiać tylko błędy, a nie pełne pakiety, co znacznie skraca czas ponownego uruchamiania.
- Poszczególne przypadki testowe są wykonywane na DUT. Przypadki testowe są napisane w Javie jako testy JUnit i spakowane pliki .apk Androida do uruchomienia na rzeczywistym urządzeniu docelowym.
Weryfikator zestawu testów zgodności (CTS Verifier) jest uzupełnieniem dostępnego do pobrania CTS. CTS Verifier zapewnia testy interfejsów API i funkcji, których nie można przetestować na urządzeniu stacjonarnym bez ręcznego wprowadzania danych (np. jakość dźwięku, akcelerometr itp.).
CTS Verifier to narzędzie do ręcznego testowania, które zawiera następujące komponenty oprogramowania:
Aplikacja weryfikatora CTS, która jest wykonywana na testowanym urządzeniu i zbiera wyniki.
Pliki wykonywalne lub skrypty, które są wykonywane na komputerze stacjonarnym w celu zapewnienia danych lub dodatkowej kontroli dla niektórych przypadków testowych w aplikacji CTS Verifier.
Przepływ pracy

Rysunek 1. Jak korzystać z CTS
Ten diagram podsumowuje przepływ pracy CTS. Szczegółowe instrukcje znajdują się na podstronach tego rozdziału, zaczynając od konfiguracji .
Rodzaje przypadków testowych
CTS obejmuje następujące rodzaje 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 w przypadku użycia wyższego poziomu.
- Testy wytrzymałościowe sprawdzają trwałość systemu pod obciążeniem.
- Testy wydajności sprawdzają wydajność systemu w odniesieniu do zdefiniowanych testów porównawczych, na przykład renderowania klatek na sekundę.
Obszary objęte
Przypadki testów jednostkowych obejmują następujące obszary w celu zapewnienia kompatybilności:
Powierzchnia | Opis |
---|---|
Testy sygnatur | Dla każdego wydania Androida istnieją pliki XML opisujące sygnatury wszystkich publicznych interfejsów API zawartych w wydaniu. CTS zawiera narzędzie do sprawdzania tych podpisów API z API dostępnymi na urządzeniu. Wyniki sprawdzania podpisów są zapisywane w pliku XML z wynikami testu. |
Testy API platformy | Przetestuj interfejsy API platformy (podstawowe biblioteki i platformę Android Application Framework) zgodnie z dokumentacją w indeksie klas SDK, aby zapewnić poprawność interfejsu API, w tym poprawne sygnatury klas, atrybutów i metod, poprawne zachowanie metody i testy negatywne, aby zapewnić oczekiwane zachowanie w przypadku nieprawidłowej obsługi parametrów. |
Testy Dalvika | Testy skupiają się na testowaniu formatu wykonywalnego Dalvik. |
Model danych platformy | CTS testuje podstawowy model danych platformy, który został 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. |
Intencje platformy | CTS testuje podstawowe intencje platformy, zgodnie z dokumentacją w zestawie SDK Available Intents . |
Uprawnienia platformy | CTS testuje podstawowe uprawnienia platformy, zgodnie z dokumentacją w zestawie SDK Available Permissions . |
Zasoby platformy | CTS testuje poprawną obsługę podstawowych typów zasobów platformy, zgodnie z dokumentacją w zestawie SDK Dostępne typy zasobów . Obejmuje to testy dla: prostych wartości, elementów do rysowania, dziewięciu poprawek, animacji, układów, stylów i motywów oraz ładowania alternatywnych zasobów. |