Automatyczne testy aplikacji mobilnych z Xamarin
Jak przyspieszyć testy na setkach urządzeń i podnieść jakość dzięki Xamarin.UITest i Xamarin Test Cloud. Przegląd narzędzi, przepływ pracy oraz przykład prostego testu UI.
Mateusz Kopta
Wprowadzenie
Różnorodność urządzeń mobilnych sprawia, że interfejsy trzeba optymalizować pod wiele rozdzielczości i przekątnych. Tradycyjne testowanie na pojedynczych urządzeniach i emulatorach jest kosztowne i skaluje się słabo: czas rośnie wraz z liczbą urządzeń i wersji aplikacji. Xamarin oferuje narzędzia, które automatyzują ten proces, w tym Test Cloud do uruchamiania testów na setkach realnych urządzeń. Celem artykułu jest przegląd wybranych funkcji Xamarin, które ułatwiają automatyczne testy aplikacji mobilnych.
Dlaczego testy mobilne są krytyczne
Aby pokryć ok. 80% rynku, aplikacja powinna być przetestowana na bardzo dużej liczbie modeli urządzeń. Pokrycie rośnie wykładniczo wraz z liczbą przetestowanych konfiguracji, dlatego szeroka macierz testowa realnie zwiększa zasięg.
Użytkownicy są bezlitośni wobec wydajności: jeśli aplikacja nie załaduje się w około 3 sekundy, większość ją zamknie, a spora część już nie wróci. Z kolei dobrze działające aplikacje chętnie polecają dalej. Przy ogromnej dostępności w sklepach jakość staje się kluczowym czynnikiem sukcesu.
Fragmentacja ekosystemu mobilnego
Jednym z głównych wyzwań jest fragmentacja: różne systemy, wersje, klasy urządzeń i parametry sprzętowe. To mnoży kombinacje i ryzyko błędów, więc testowanie jest dla zespołów realnym wyzwaniem.
- różne wersje systemów operacyjnych (iOS, Android, Windows Phone, WinRT, Windows 10) - różne klasy urządzeń (smartfony, tablety) - smartfony: rozdzielczości, przekątne, typy procesorów, ilość pamięci - tablety: rozdzielczości, przekątne, typy procesorów, ilość pamięci - różne wydania tego samego systemu, np. Android 2.3–6.x, iOS 7–9.x, Windows Phone 8.0–10
Metody testowania aplikacji mobilnych
W arsenale mamy testy manualne, crowd testing, testy jednostkowe, integracyjne i systemowe, a także automatyczne testy UI. Te ostatnie symulują prawdziwe działania użytkownika: dotykanie przycisków, wybór z list, przewijanie widoków itp.
Testy manualne oferują najwyższy realizm, ale są czasochłonne. Jednostkowe są szybkie, lecz nie sprawdzają warstwy interfejsu. Automatyczne testy UI łączą realizm z szybkością, dlatego będą w centrum tego artykułu. Co ważne, narzędzia Xamarin działają nie tylko z aplikacjami pisanymi w Xamarin.
Narzędzia od Xamarin
Xamarin.UITest to framework do pisania testów, który pozwala emulować zachowanie użytkownika i uruchamiać testy na emulatorze lub podłączonym urządzeniu. Testy można pisać w C# lub Ruby.
Xamarin Test Cloud (XTC) umożliwia uruchamianie tych testów w chmurze na ponad 2000 prawdziwych urządzeń. Usługa automatycznie instaluje aplikację na wybranej macierzy urządzeń, odpala testy i zwraca raporty ze zrzutami ekranu, logami i wynikami asercji.
Typowy przepływ pracy
- projektujesz i dopracowujesz testy lokalnie na emulatorze i fizycznym urządzeniu - gdy testy działają stabilnie, publikujesz je do XTC - wybierasz zestaw urządzeń i uruchamiasz testy równolegle - analizujesz raporty i artefakty (zrzuty ekranu, logi), szybko identyfikując regresje
Taki proces skraca czas weryfikacji na wielu konfiguracjach sprzętowo-systemowych bez konieczności posiadania setek urządzeń w firmie.
Projektowanie testów UI w praktyce
Testy tworzymy w C# lub Ruby, opisując scenariusze użytkownika. Przykładowa aplikacja w Xamarin.Forms ma ekran powitalny z przyciskiem Start app, który przenosi na drugi ekran z tekstem Hello!
Scenariusz przykładowego testu
- uruchom aplikację i ustaw orientację pionową - wykonaj zrzut ekranu ekranu startowego - sprawdź, że przycisk Start app jest widoczny - obróć urządzenie do orientacji poziomej i ponownie zweryfikuj widoczność przycisku - stuknij w przycisk Start app - sprawdź, że na drugim ekranie wyświetla się tekst Hello! - wróć do ekranu startowego i wykonaj zrzut ekranu
W Xamarin.UITest scenariusz składa się z prostych poleceń odzwierciedlających interakcje, takich jak WaitForElement, Tap, SetOrientationPortrait, SetOrientationLandscape, Back czy Screenshot. Najpierw uruchamiasz test lokalnie, a potem bez zmian wykonujesz go w XTC na wybranej puli urządzeń.
Podsumowanie
Automatyzacja testów UI z wykorzystaniem Xamarin.UITest i Xamarin Test Cloud pozwala szybciej wykrywać błędy, zwiększać pokrycie urządzeń i budować lepsze doświadczenie użytkownika. To praktyczny sposób, by ograniczyć koszty sprzętowe i przyspieszyć dostarczanie wysokiej jakości aplikacji mobilnych.
Potrzebujesz wsparcia technologicznego?
Porozmawiajmy o Twoim projekcie — od discovery po wdrożenie.
Umów konsultacjęChcesz wiedzieć więcej?
Sprawdź inne artykuły lub porozmawiajmy o Twoim projekcie
Wszystkie artykuły Zaprojektujmy Twoją aplikację AI