Testowanie aplikacji

W przeciwieństwie do innych typów aplikacji na Androida aplikacja interfejsów Home API ma własne, unikalne aspekty i wyzwania, w tym zależności od fizycznych inteligentnych urządzeń domowych, niezawodność sieci, bezpieczeństwo i prywatność oraz interoperacyjność urządzeń i protokołów. Te różnice mają wpływ na testowanie.

Konfigurowanie środowiska testowego

Solidne środowisko testowe jest niezbędne do testowania aplikacji korzystającej z interfejsów Home API.

Dobrym rozwiązaniem jest odizolowanie urządzeń testowych interfejsu Home API w dedykowanej sieci Wi-Fi. Zapobiega to zakłóceniom ze strony innych urządzeń i umożliwia symulowanie różnych warunków sieciowych, takich jak ograniczona przepustowość.

Warto przeprowadzić testy na różnych typach inteligentnych urządzeń domowych różnych producentów. Pamiętaj, aby przeprowadzać testy na rzeczywistych urządzeniach fizycznych. Urządzenia wirtualne i emulatory są przydatne, ale nie należy polegać wyłącznie na nich.

Podobnie testowanie aplikacji na różnych urządzeniach z Androidem różnych producentów, o różnych wymiarach ekranu i z różnymi wersjami Androida pomaga sprawdzić szerszą kompatybilność.

Przygotuj narzędzia

Do testowania aplikacji korzystającej z interfejsów Home API przydadzą Ci się te narzędzia:

Narzędzie Opis
Google Home Plugin for Android Studio Umożliwia dostęp do Google Assistant Simulator, przeglądarki Home Graph, Google Cloud Logging i przeglądarki logów Android Debug Bridge (adb).
Google Home Playground Nie zastępuje testowania na rzeczywistych urządzeniach, ale jest nieoceniony w wielu scenariuszach testowych.
Matter Virtual Device (MVD) Kolejna aplikacja do emulacji, która może być przydatna podczas testowania urządzeń Matter w aplikacji korzystającej z interfejsów Home API.
Espresso Umożliwia automatyzację testowania interfejsu. Aby symulować interakcje ze sprzętem, musisz utworzyć atrapę bazowego interfejsu API.
emulator sieci, Umożliwia symulowanie różnych warunków sieciowych i odpowiedzi interfejsu API, co jest szczególnie przydatne, jeśli interfejs Home API korzysta z backendu w chmurze.
Logcat w Android Studio obsługi i analizowania danych logów,

Stosowanie różnych podejść i strategii testowania

W przypadku aplikacji korzystającej z interfejsów Home API należy stosować różne podejścia do testowania. Ogólne informacje o różnych metodach znajdziesz w artykule Testowanie aplikacji na Androida. Oprócz testów bezpieczeństwa i testów pod kątem wygody użytkownika, które powinny przechodzić wszystkie aplikacje na Androida, niektóre obszary testów są szczególnie istotne w przypadku aplikacji korzystających z interfejsów Home API. Więcej informacji znajdziesz w kolejnych sekcjach.

Testy funkcjonalne

W zależności od możliwości aplikacji warto zwrócić szczególną uwagę na te obszary:

  1. Wykrywanie i parowanie urządzeń, w tym konfiguracja początkowa i parowanie z nowymi urządzeniami, ponowne wykrywanie istniejących urządzeń po ponownym uruchomieniu aplikacji, ponownym uruchomieniu urządzenia lub zmianach w sieci. Sprawdź też scenariusze, takie jak brak odpowiedzi urządzeń lub podanie przez użytkownika nieprawidłowych danych logowania.
  2. synchronizacja stanu, która zapewnia, że aplikacja jest aktualizowana w odpowiednim czasie, aby dokładnie odzwierciedlać bieżący stan;
  3. Jak uprawnienia są zarządzane i egzekwowane, zwłaszcza jeśli aplikacja obsługuje wielu użytkowników lub wspólny dostęp do domu. Obejmuje to sprawdzenie, czy aplikacja prawidłowo obsługuje cofnięte uprawnienia.
  4. Jeśli Twoja aplikacja obsługuje sceny, np. scenę „Dobranoc”, która wyłącza wszystkie światła, przetestuj tworzenie, modyfikowanie i wykonywanie scen. Testuj automatyzacje, w tym polecenia inicjujące i działania.

Testy wydajności

Sprawdź, czy aplikacja działa sprawnie i nie powoduje niepotrzebnych opóźnień. Jeśli to możliwe, przetestuj aplikację na dużej liczbie urządzeń, aby ocenić jej skalowalność i wydajność pod obciążeniem. Sprawdź też zużycie procesora, pamięci i baterii przez aplikację, zwłaszcza podczas aktywnej komunikacji z urządzeniem, aby sprawdzić, czy wykorzystanie zasobów jest uzasadnione.

Testy niezawodności i stabilności

Ze względu na zależność od połączenia z siecią aplikacje korzystające z interfejsów Home API należy przetestować w tych scenariuszach:

  1. Wahania sieci
    • Symuluj przerwy w działaniu Wi-Fi, słaby sygnał i przełączanie sieci.
    • Sprawdź, czy aplikacja prawidłowo obsługuje rozłączanie i ponowne łączenie.
    • Sprawdź, czy polecenia są kolejkowane i wykonywane po przywróceniu łączności, lub wyświetl odpowiednie komunikaty o błędach.
    • Testuj aplikację w sieciach zdalnych, a nie tylko w sieci domowej.
  2. Odłączenie urządzenia
    • Odłącz urządzenia od zasilania.
    • Wyłącz i włącz urządzenia.
  3. Operacje równoczesne
    • wysyłanie szybkiej sekwencji poleceń;
    • Poproś kilku użytkowników, aby jednocześnie spróbowali sterować tym samym urządzeniem.
    • Testowanie nakładających się scen i automatyzacji.
  4. Obsługa błędów
    • Wymuszaj błędy interfejsu API, np. przez symulowanie odpowiedzi serwera interfejsu API w chmurze.
    • Testowanie nieprawidłowych danych wejściowych użytkownika.
    • Sprawdź, czy w przypadku błędów wyświetlają się odpowiednie komunikaty.
  5. Niezawodność – uruchom aplikację i połączone urządzenia na dłuższy czas, aby wykryć ewentualne wycieki pamięci lub problemy ze stabilnością.