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:
- 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.
- Synchronizacja stanu, która zapewnia, że aplikacja jest aktualizowana w odpowiednim czasie, aby dokładnie odzwierciedlać bieżący stan.
- 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.
- 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:
- 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.
- Odłączenie urządzenia
- Odłącz urządzenia od zasilania.
- Wyłącz i włącz ponownie urządzenia.
- 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.
- 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.
- Niezawodność – uruchom aplikację i połączone urządzenia na dłuższy czas, aby wykryć ewentualne wycieki pamięci lub problemy ze stabilnością.