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:
- 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.
- Synchronizacja stanu, czyli sprawdzanie, czy aplikacja aktualizuje się na bieżąco, aby odzwierciedlać aktualny stan.
- 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.
- 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:
- 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.
- Odłączenie urządzenia
- Odłącz urządzenia od zasilania.
- Wyłącz urządzenia i włącz je ponownie.
- 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.
- 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.
- 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)