Testowanie aplikacji

W przeciwieństwie do innych typów aplikacji na Androida aplikacja korzystająca z interfejsów Home API ma własne, unikalne aspekty i wyzwania, w tym zależności od fizycznych inteligentnych urządzeń domowych, niezawodności sieci, bezpieczeństwa i prywatności oraz interoperacyjności 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 Zapewnia 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ługiwać i analizować dane 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 wrażeń 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ądzeń lub zmianach w sieci. Sprawdź też scenariusze, takie jak urządzenia, które nie odpowiadają, lub sytuacje, w których użytkownik wpisuje nieprawidłowe dane 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, przeprowadź testy na dużej liczbie urządzeń, aby ocenić skalowalność i wydajność aplikacji 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łączenia i ponowne połączenia.
    • Sprawdź, czy polecenia są kolejkowane i wykonywane po przywróceniu połączenia lub czy wyświetlają się 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 ponownie urządzenia.
  3. Operacje równoczesne
    • wysyłać szybką sekwencję poleceń;
    • Niech kilku użytkowników spróbuje jednocześnie 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 awarii następuje płynne przejście do trybu awaryjnego i czy wyświetlane są informacyjne komunikaty o błędach.
  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ą.