Testowanie aplikacji

W przeciwieństwie do innych typów aplikacji na Androida aplikacja korzystająca z interfejsów Home API ma swoje 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 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 przeprowadzać testy na różnych typach inteligentnych urządzeń domowych różnych producentów. Pamiętaj, aby testować na prawdziwych, fizycznych urządzeniach. Urządzenia wirtualne i emulatory mają swoje zastosowanie, 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ść.

Przygotowywanie narzędzi

Podczas testowania aplikacji korzystającej z interfejsów Home API przydatne są te narzędzia:

Narzędzie Opis
Google Home Plugin for Android Studio Umożliwia dostęp do Google Assistant Simulator, przeglądarki Home Graph Viewer, Google Cloud Logging, i przeglądarki logów Android Debug Bridge (adb) viewer.
Google Home Playground Nie zastępuje testowania na rzeczywistych urządzeniach fizycznych, ale jest nieocenione 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ę testów interfejsu. Aby symulować interakcje sprzętowe, 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ługuje i analizuje 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 Androidzie. Oprócz testów dotyczących wygody użytkowania i bezpieczeństwa, które muszą przejść wszystkie aplikacje na Androida, niektóre obszary testowania 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 wstępna konfiguracja 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 użytkownik wprowadzający nieprawidłowe dane logowania.
  2. Synchronizacja stanu, czyli sprawdzanie, czy aplikacja aktualizuje się na bieżąco, aby odzwierciedlać aktualny stan.
  3. Sposób zarządzania uprawnieniami i ich egzekwowania, zwłaszcza jeśli aplikacja obsługuje wielu użytkowników lub dostęp do domu współdzielony z innymi osobami. Obejmuje to sprawdzenie, czy aplikacja prawidłowo obsługuje cofnięte uprawnienia.
  4. Jeśli aplikacja obsługuje sceny, np. scenę „Dobranoc”, która wyłącza wszystkie światła, przetestuj tworzenie, modyfikowanie i wykonywanie scen. Przetestuj automatyzacje, w tym polecenia inicjujące i działania.

Testy wydajności

Sprawdź, czy aplikacja reaguje szybko 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 rozsądne.

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 testować pod kątem tych scenariuszy:

  1. Wahania sieci
    • Symuluj przerwy w połączeniu 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 urządzenia i włącz je ponownie.
  3. Operacje współbieżne
    • Wyślij szybką sekwencję poleceń.
    • Poproś kilku użytkowników, aby jednocześnie sterowali tym samym urządzeniem.
    • Przetestuj nakładające się sceny i automatyzacje.
  4. Obsługa błędów
    • Wymuś błędy interfejsu API, np. przez utworzenie atrap odpowiedzi serwera interfejsu API w chmurze.
    • Przetestuj nieprawidłowe dane wejściowe użytkownika.
    • Sprawdź, czy aplikacja prawidłowo obsługuje łagodną degradację i informacyjne komunikaty o błędach.
  5. Niezawodność – uruchamiaj aplikację i połączone urządzenia przez dłuższy czas, aby wykryć ewentualne wycieki pamięci lub problemy ze stabilnością.

Przed opublikowaniem aplikacji

Przed opublikowaniem aplikacji korzystającej z interfejsów Home API zalecamy dokładne przetestowanie jej, aby sprawdzić, czy spełnia wszystkie wymagania funkcjonalne i jakościowe. Podczas testowania funkcjonalności aplikacji korzystaj z raportu z testów aplikacji Google Home API.

Jeśli poprosimy Cię o przesłanie raportu z testów aplikacji korzystającej z interfejsów Home API, wyślij go do swojego technicznego opiekuna konta Google, aby mógł go sprawdzić i wykorzystać jako punkt odniesienia podczas testowania aplikacji.Technical Account Manager (TAM)