android app testing tutorial
Zbieranie podstawowej wiedzy przed testowaniem aplikacji na Androida:
Jak sugeruje sam tytuł, w tym samouczku omówimy więcej na temat procesu testowania Androida.
Zanim jednak przejdę do różnych szczegółów procesu testowania Androida, chciałbym zadać kilka pytań.
posiadasz telefon komorkówy?
Otóż, jakie to głupie pytanie! Oczywiście każdy z nas to robi. Każdy ma telefon komórkowy. Telefony komórkowe stały się w dzisiejszych czasach podstawową koniecznością egzystencji człowieka.
Czy możesz mi powiedzieć, jaki system operacyjny masz w telefonie?
Jeśli kupiłeś telefon w latach 2014-16, prawdopodobieństwo, że Twój telefon działa na Androidzie, wynosi około 80-85%.
Czego się nauczysz:
- Rozwój Androida
- Wprowadzenie do aplikacji na Androida
- Lista „Do zrobienia” przed rozpoczęciem procesu testowania
- Typy testowania aplikacji mobilnych
- Sprawdzone metody testowania aplikacji na Androida
- Android Testing Framework
- Wniosek
- rekomendowane lektury
Rozwój Androida
Poniższe statystyki opisują więcej na temat rozwoju Androida w łatwo zrozumiały sposób.
- W 2009 roku Android był nowicjuszem i stanowił tylko 3,9% całego rynku.
- Wówczas głównym dostawcą był system operacyjny Symbian z imponującą liczbą 47% [Złote dni Nokii].
- Trend ten zaczął się zmieniać na przestrzeni lat, a Android osiągnął obecnie 85,2% w 2016 roku.
[ Źródło obrazu ]
- Powyższe numery dotyczą tylko telefonów komórkowych. System operacyjny Android ma również ogromny wpływ na branżę tabletów. Od 4,4% udziału w rynku w 2011 r. Do 35,7% w 2015 r. Świadczy o zainteresowaniu, jakie ludzie rozwijają w kierunku tabletów z systemem Android.
[ Źródło obrazu ]
- Sklep Google Play również odnotował szybki wzrost liczby pobrań. W latach 2010-2016 liczba ta wzrosła z 1 miliarda pobrań miesięcznie do 65 miliardów pobrań miesięcznie.
- Na pobieranie aplikacji duży wpływ mają również niskie ceny [Średnio: 0,06 $ / aplikacja] aplikacji na Androida w porównaniu z aplikacjami na iOS.
Dlaczego właśnie przeprowadziłem cię przez te wszystkie liczby?
Chodziło tylko o to, abyś wiedział, jak rozległy się rozrósł Android, jak trudny stał się rozwój aplikacji i jak duży rynek zdobył ten system operacyjny w ciągu ostatniej dekady.
Każda witryna internetowa, aplikacja dla systemu Windows i aplikacja na komputery Mac mają teraz rodzeństwo Androida. Każdy zaczyna tworzyć aplikację na Androida, gdy tylko planuje stworzyć witrynę internetową / aplikację dla systemu Windows. Stało się to konieczne, ponieważ w ostatnich latach klienci zaczęli także preferować aplikacje mobilne niż aplikacje komputerowe lub strony internetowe.
Niektóre z aplikacji, które są bardzo często używane w naszych codziennych działaniach, to Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp itp.
Powodem gwałtownego wzrostu na rynku Androida jest to, że:
- Jest to system otwarty, dzięki czemu można go łatwo dostosować, łatwo się go nauczyć, a nawet tworzenie aplikacji jest łatwiejsze.
- Publikowanie aplikacji w sklepie Google Play jest dość łatwe w porównaniu z innymi sklepami Play.
- Na rynku jest kilku producentów telefonów z systemem Android, takich jak Sony, HTC, Samsung, Motorola itp.
- Na Androidzie jest ogromna liczba funkcji, takich jak DualSIM, microSD, wymienna bateria itp., Co jest dodatkową zaletą.
- Ceny telefonów z Androidem nie są zbyt wysokie i są przystępne itp.
Wraz z wymaganiami programistycznymi związanymi z aplikacjami na Androida wzrósł również wymóg dotyczący testerów posiadających wiedzę na temat testowania Androida.
Jako tester, zanim zaczniesz testować jakąkolwiek aplikację zbudowaną dla systemu Android, musisz odrobić dużo pracy domowej. Pierwszą rzeczą do zrobienia jest przestudiowanie systemu operacyjnego i jego historii. Jeśli nie znasz systemu operacyjnego, nie możesz przetestować aplikacji pod kątem różnych wersji. Podstawowa funkcjonalność wersji systemu operacyjnego, interfejs użytkownika, GPS, obsługa typu sieci, żywotność baterii itp. To tylko niektóre z ważnych aspektów, które mają wpływ na aplikację.
W przypadku Androida badanie wymaga nie tylko systemu operacyjnego, ale także wielu urządzeń.
Na rynku dostępnych jest ogromna liczba urządzeń, dlatego przed sfinalizowaniem i zamrożeniem stanowiska testowego należy ustalić, jaki jest udział urządzeń docelowych odbiorców. Różne urządzenia oferujące różne funkcje, takie jak DualSIM, podwójny aparat, rozdzielczość ekranu, motywy itp., Wpływają na aplikację i wymagają przetestowania.
Dlatego bardzo ważne jest, aby podczas kontroli jakości zebrano wszechstronną wiedzę na temat całego ekosystemu Androida.
Wprowadzenie do aplikacji na Androida
Istnieją różne metody testowania, po których następuje pomyślna certyfikacja aplikacji na Androida.
Typowa architektura aplikacji na Androida wyglądałaby podobnie do diagramu pokazanego poniżej:
najlepsze oprogramowanie szpiegowskie do telefonów komórkowych
Na podstawie powyższego rysunku istnieją 2 możliwości aplikacji:
1) Aplikacja mobilna do aplikacji internetowej: Może się zdarzyć, że klient ma aplikację internetową i chce zrobić dla niej aplikację mobilną. Amazon, Jabong, Myntra itp. Zrobiły to samo i w momencie, gdy aplikacje mobilne zaczęły tworzyć boom na rynku, te komercyjne firmy zdały sobie sprawę, że wkrótce ludzie przejdą z aplikacji internetowych na aplikacje mobilne.
2) Aplikacja mobilna jako odrębny podmiot gospodarczy: Przetestowałem podobną aplikację logistyczną, aby rozwinąć działalność, stworzyła osobną aplikację dla swoich kierowców, aby ułatwić płynną dostawę i usunęła papierkową robotę.
Kierowcy mieli zainstalowaną aplikację na swoich telefonach, aby przenieść przesyłkę na różne etapy dostawy i odpowiadający jej status, a aktualizacje dostawy zostały odzwierciedlone w ich istniejącej aplikacji internetowej.
Inne takie Przykłady gdzie aplikacja mobilna jest oddzielną jednostką, to WhatsApp, aplikacje do śledzenia zdrowia, takie jak S Health itp.
Lista „Do zrobienia” przed rozpoczęciem procesu testowania
W przeciwieństwie do zwykłego cyklu testowego, w przypadku pierwszego wydania aplikacji mobilnej istnieje kilka elementów, które wymagają dodatkowych badań i planowania w celu pomyślnego dostarczenia aplikacji.
Poniżej przedstawiono niektóre czynności, które są ważne dla zapewnienia jakości do wykonania przed rozpoczęciem właściwego testowania:
# 1) Badania dotyczące systemu operacyjnego i urządzeń:
Oprócz zrozumienia wymagań aplikacji, musisz również zrozumieć wpływ różnych wersji systemu operacyjnego i modeli urządzeń. Musisz tworzyć przypadki testowe lub scenariusze w.r.t z systemem operacyjnym i modelami urządzeń.
#dwa) Łóżko testowe:
W przeciwieństwie do aplikacji na komputery stacjonarne, aplikacje internetowe i iOS, tworzenie platformy testowej dla aplikacji na Androida jest bardzo trudne ze względu na otwarty system Android. Decyzja powinna zostać podjęta po dyskusji z licencjatem, deweloperami i właścicielami produktu, aby znaleźć grupę docelową.
# 3) Plan testów:
Ponieważ jest to pierwsze wydanie, powinien istnieć zatwierdzony plan z zatwierdzonym stanowiskiem testowym, typami testów itp. Jeśli potrzeba osobnego czasu na zbadanie funkcjonalności lub reguł biznesowych lub jeśli testowanie będzie trudne itp., Wszystko powinno być uwzględnione w planie.
# 4) Narzędzia automatyzacji:
Narzędzia do automatyzacji wymagane w przypadku aplikacji mobilnych bardzo różnią się od tych stosowanych w aplikacjach komputerowych lub internetowych. Dlatego może być konieczne poświęcenie dodatkowego czasu i wysiłku, aby nauczyć się tego narzędzia. Wymagany czas i wysiłek powinien zostać zatwierdzony przez właściciela produktu lub klienta.
# 5) Techniki lub metody testowania:
W przeciwieństwie do konwencjonalnych testów, które zwykle wykonujemy, istnieje kilka testów, które są bardzo specyficzne dla aplikacji mobilnych. Mianowicie test terenowy, test GPS, test przechwytywania obrazu itp. Muszą one zostać udokumentowane w przypadkach testowych wraz ze sposobem testowania tego typu.
Typy testowania aplikacji mobilnych
W celu certyfikacji aplikacji na Androida wykonywane są następujące rodzaje testów:
1) Testowanie funkcjonalne:
Testowanie jest zwykle realizowane przez przepływy testowe inicjowane przez interfejs użytkownika. Testowany jest nie tylko przepływ przypadków użycia, ale także różne reguły biznesowe. Testowanie odbywa się poprzez certyfikację wymagań. czyli czy aplikacja działa w oparciu o wymagania.
Weźmy Przykład aplikacji Zomato.
Po uruchomieniu aplikacji, w oparciu o lokalizację, pojawia się lista restauracji. Teraz jako QA musisz przetestować listę restauracji.
To jest testowanie funkcjonalności i tutaj przetestujesz takie funkcjonalności jak:
- Sprawdź, czy karty restauracji są wyświetlane z lokalizacją.
- Sprawdź, czy pokazane restauracje znajdują się w podanym zakresie (km) lokalizacji.
- Sprawdź, czy liczba recenzji dla każdej karty jest zsynchronizowana z podanymi recenzjami.
- Sprawdź, czy dodanie nowej restauracji do lokalizacji znajduje odzwierciedlenie na liście.
- Sprawdź, czy restauracje są wymienione na podstawie reguły filtrowania Zomato itp.
2) Testowanie interfejsu użytkownika Androida:
To jest testowanie aplikacji zorientowane na użytkownika. W tej fazie testowej sprawdzane są takie elementy, jak widoczność tekstu na różnych ekranach aplikacji, interaktywne komunikaty, wyrównanie danych, wygląd i działanie aplikacji na różnych ekranach, rozmiar pól itp.
Dla tego samego powyższego przykładu Zomato, testy interfejsu użytkownika wyglądałyby następująco:
- Sprawdź, czy karty są wyświetlane odpowiednio dopasowane do rozmiaru ekranu telefonu komórkowego.
- Sprawdź, czy obraz restauracji jest wyświetlany zgodnie z oczekiwaniami.
- Sprawdź, czy szczegóły karty, ocena restauracji, rodzaj kuchni, adres itp. Są odpowiednio wyrównane.
- Sprawdź, czy przewijanie listy przebiega bez zakłóceń i czy karty nie są wyświetlane nieprawidłowo, gdy przewijana jest długa lista kart itp.
3) Testowanie zgodności:
Testowanie to odbywa się głównie w postaci dwóch macierzy aplikacji OS Vs i aplikacji Device model Vs. Zwykle lista obsługiwanych systemów operacyjnych (a czasem urządzeń) jest dostarczana przez właściciela produktu lub klienta.
Potrzeba tego testu jest następująca:
- Biorąc pod uwagę system operacyjny, taki jak Android, znaleziono 7 wersji podstawowych, z pominięciem liczby wydań poprawek / EP.
- Czy potrafisz odgadnąć, jakie typy urządzeń z Androidem działają obecnie na całym świecie? 1000? 2000? Źle! Prawidłowa odpowiedź to 24000. Istnieje 24000 typów unikalnych urządzeń z Androidem, które są obecne i aktywne na świecie.
- W przypadku takich odmian testy zgodności odgrywają istotną rolę w certyfikacji aplikacji na Androida.
- Musimy nie tylko zweryfikować system operacyjny i typ urządzenia, ale także zweryfikować kilka innych funkcji, które podlegają testom zgodności. Funkcje obejmują:
- Rozmiar ekranu
- Rozdzielczość ekranu
- Łączność sieciowa
4) Testowanie interfejsu:
Innymi słowy, nazywa się to również testowaniem integracyjnym. Testy te są wykonywane po całkowitym opracowaniu wszystkich modułów aplikacji, przetestowaniu ich indywidualnie i zweryfikowaniu wszystkich błędów.
Testowanie interfejsu obejmuje testy, takie jak pełne testowanie aplikacji, interakcje z innymi aplikacjami, takimi jak Mapy, aplikacje społecznościowe itp., Używanie mikrofonu do wprowadzania tekstu, używanie aparatu do skanowania kodu kreskowego lub robienia zdjęć itp.
Ponownie biorąc pod uwagę Zomato, testy integracji wyglądałyby tak:
- Sprawdź, czy użytkownik może zarezerwować stolik w restauracji.
- Sprawdź, czy użytkownik może przeglądać menu i zamawiać jedzenie online.
- Sprawdź, czy użytkownik może skorzystać z kuponu PayTM podczas zamawiania jedzenia.
- Sprawdź, czy użytkownik może wyświetlić lokalizację restauracji w Mapach Google.
- Sprawdź, czy użytkownik może otworzyć dialer telefoniczny i zadzwonić do restauracji itp.
5) Testowanie sieci:
Kluczowe funkcje testowania sieci obejmują:
- Aplikacja powinna komunikować się z usługą pośredniczącą, aby przeprowadzić proces.
- Podczas tego testowania żądanie / odpowiedź do / z usługi jest testowane pod kątem różnych warunków.
- Ten test jest wykonywany głównie w celu sprawdzenia czasu odpowiedzi, w którym wykonywana jest czynność, taka jak odświeżanie danych po synchronizacji lub ładowanie danych po zalogowaniu itp.
- Odbywa się to zarówno dla silnego połączenia Wi-Fi, jak i mobilnej sieci danych.
- To są testy wewnętrzne.
6) Testowanie wydajności:
Sprawdzane jest działanie aplikacji w pewnych szczególnych warunkach.
Warunki te obejmują:
c pytania i odpowiedzi do wywiadu pdf
- Mała ilość pamięci w urządzeniu.
- Akumulator jest bardzo niski.
- Słaby / zły odbiór sieci.
Wydajność jest zasadniczo testowana na dwóch końcach: po stronie aplikacji i po stronie serwera aplikacji
7) Testowanie instalacji:
Istnieją dwa typy aplikacji na urządzeniu z systemem Android, tj. Aplikacje zainstalowane fabrycznie i aplikacje, które są instalowane później przez użytkownika.
W przypadku obu powyższych należy przeprowadzić testy instalacji. Ma to zapewnić płynną instalację aplikacji bez błędów, częściowej instalacji itp.
Testy aktualizacji i deinstalacji są przeprowadzane w ramach testów instalacji.
8) Testowanie bezpieczeństwa:
Prywatność i bezpieczeństwo to 2 główne wymagania aplikacji. Jednak w bankowości, opiece zdrowotnej staje się to podstawowym wymogiem.
W tej fazie ma zostać przetestowany przepływ danych pod kątem mechanizmu szyfrowania i deszyfrowania. Dostęp do przechowywanych danych jest również testowany na tym etapie.
9) Testy terenowe:
Testy terenowe są przeprowadzane specjalnie dla mobilnej sieci danych, a nie w firmie, ale poprzez wyjście i używanie aplikacji jako zwykły użytkownik. Te testy są wykonywane „dopiero” po opracowaniu, przetestowaniu i wycofaniu całej aplikacji (w przypadku błędów i przypadków testowych).
Zasadniczo służy do weryfikacji zachowania aplikacji, gdy telefon ma połączenie 2G lub 3G. Testy terenowe sprawdzają, czy aplikacja ulega awarii przy wolnym połączeniu sieciowym lub czy ładowanie informacji trwa zbyt długo.
Możesz przeczytać więcej o testach terenowych w naszym artykule „Znaczenie i konieczność testów terenowych dla aplikacji mobilnych”
10) Testowanie przerwania:
Ten typ testowania jest również znany jako weryfikacja scenariusza offline. Warunki, w których komunikacja zrywa się w środku, nazywane są warunkami offline.
Niektóre z warunków, w których można testować przerwy w sieci, są następujące:
- Usunięcie kabla danych podczas przesyłania danych.
- Awaria sieci w fazie księgowania transakcji.
- Odzyskiwanie sieci po awarii.
- Wyjęcie baterii lub włączenie / wyłączenie zasilania, gdy jest w fazie transakcyjnej.
Sprawdzone metody testowania aplikacji na Androida
Podczas tworzenia strategii testowania aplikacji mobilnych należy wziąć pod uwagę pewne czynniki.
Oni są:
1) Wybór urządzenia:
- Jest to jeden z najważniejszych kroków przed rozpoczęciem procesu testowania aplikacji na Androida.
- Zdecyduj, które urządzenia mają być brane pod uwagę w procesie testowania.
- Selekcji należy dokonać tak, aby zmaksymalizować liczbę docelowych klientów.
- Czynniki takie jak wersja systemu operacyjnego, rozdzielczości ekranu i współczynniki kształtu [tablety lub smartfony] odgrywają istotną rolę w fazie wyboru.
- W razie potrzeby można wziąć pod uwagę nawet pomoc emulatorów.
- Jednak emulatory nie powinny zastępować procesu testowania urządzeń fizycznych.
- Emulatory urządzeń są opłacalne i przydają się w początkowej fazie rozwoju.
- Jednak aby przetestować rzeczywiste scenariusze, niezbędne są urządzenia fizyczne. Zarówno emulatory, jak i urządzenia fizyczne powinny być używane w sposób zrównoważony, aby uzyskać optymalny wynik.
2) Beta testowanie aplikacji:
- Testy beta są bardzo skuteczne w testowaniu na rzeczywistych użytkownikach, rzeczywistych urządzeniach, rzeczywistych sieciach i aplikacjach zainstalowanych w szerokim zakresie geograficznym.
- Daje to jasny obraz gęstości sieci, odmian sieci [Wi-Fi, 4G, 3G i 2G] oraz wpływu na aplikację.
- Testy beta w prawdziwym świecie są jedyne w swoim rodzaju i nie mogą być replikowane w kontrolowanym środowisku.
3) Łączność:
- Zwykle aplikacje na Androida są połączone z Internetem dla różnych wymagań.
- Łączność na różnych urządzeniach odgrywa kluczową rolę w tworzeniu strategii.
- Przeważnie łączność jest kontrolowana przez oprogramowanie symulacyjne, które pomaga w regulowaniu szybkości sieci, opóźnień i ograniczonej łączności podczas testowania.
- Mówi się, że testowanie w rzeczywistych połączeniach sieciowych jest zawsze zalecane dla wyników / danych w czasie rzeczywistym.
4) Testowanie ręczne lub automatyczne:
- Chociaż testowanie zautomatyzowane zajmuje dużo czasu podczas pierwszego uruchomienia, przydaje się, gdy testowanie musi zostać powtórzone. Zmniejsza to również całkowity czas testowania na różnych etapach rozwoju.
- Android Automation powinien być połączony z testowaniem ręcznym, gdy liczba powtórzeń testów regresyjnych jest wysoka w fazie tworzenia aplikacji, testy zgodności należy wykonać dla tej samej aplikacji w różnych wersjach systemu operacyjnego, punkty kontrolne zgodności wstecznej itp.
Android Testing Framework
Dostępnych jest kilka platform testowych systemu Android.
W tym samouczku omówimy 3 różne typy najczęściej używanych frameworków:
- Framework testowy Robotium
- Framework do testów roboelektrycznych
- Appium Test Framework
1) Platforma testowa Robotium:
- Ta struktura jest używana do pisania zaawansowanych i niezawodnych przypadków testowych dla aplikacji na Androida.
- Obsługuje zarówno klientów natywnych, jak i hybrydowych.
- Funkcje, przypadki testowe systemu i przypadki testowe akceptacji użytkownika mogą być pisane przy użyciu tej struktury.
- Robotium obsługuje Androida 1.6 i nowsze, a także obsługę okien dialogowych, menu, działań itp.
- Ta struktura automatycznie obsługuje wiele działań systemu Android.
- W ramach Robotium podano kilka metod interakcji z różnymi elementami graficznymi aplikacji na Androida. Niektóre z nich są jak poniżej:
- Wróć();
- getButton ();
- isRadioButtonChecked ();
- searchText („Użytkownik”);
- kliknij na przycisk („Wyloguj”);
2) Robo-elektryczne ramy testów:
- Ta struktura pomaga w testowaniu aplikacji na Androida na JVM opartych na frameworku JUnit4.
- Wykorzystuje Android API.
- Pomaga to w pisaniu przypadków testowych i uruchamianiu ich na JVM.
- W ramach tego wszystkie klasy są zastępowane przez coś, co nazywa się obiektami cienia.
- Za każdym razem, gdy metoda jest implementowana, Robo-electric wewnętrznie wysyła wywołanie do obiektu cienia.
- Na podstawie implementacji, jeśli metoda jest implementowana przez obiekt shadow, zwracana jest wartość. W przeciwnym razie zwracana jest wartość NULL.
- Ze względu na obiekty w cieniu i maszynę JVM wykonanie staje się szybsze.
3) Epoki ram testowych;
- Ta struktura działa w aplikacjach internetowych, hybrydowych i mobilnych na urządzenia z systemem Android.
- Appium jest narzędziem darmowym.
- Pojedynczy interfejs API działa zarówno na platformie Android, jak i iOS. Jest to jedna z platform obsługujących testowanie międzyplatformowe.
- Wykorzystuje sterownik sieciowy Selenium do interakcji z aplikacją na Androida.
- Appium obsługuje pisanie skryptów przy użyciu wielu języków programowania, takich jak Java, C #, Python, PHP, Ruby itp.
Wniosek
Automatyzację aplikacji na Androida można połączyć z instrukcją, zgodnie z potrzebami. Jeśli jednak do strategii zostanie dodane testowanie Androind Automation, wybór odpowiedniego narzędzia jest dużym zadaniem. Przy wyborze narzędzia do automatyzacji należy uwzględnić takie czynniki, jak obsługa wielu platform, przepływ pracy testowej, cena narzędzia, usługa / wsparcie itp.
Testowanie aplikacji na Androida wiąże się z kilkoma wyzwaniami. Istnieje wiele czynników, które należy wziąć pod uwagę, zanim proces testowania Androida będzie mógł rzeczywiście zostać wdrożony, ale gdy zostanie to zrobione, stanie się to bardzo interesującym zadaniem.
Obejrzyj nasz nadchodzący samouczek, aby dowiedzieć się więcej Wyzwania i rozwiązania w zakresie testów mobilnych.
rekomendowane lektury
- 11 najlepszych narzędzi automatyzacji do testowania aplikacji na Androida (narzędzia do testowania aplikacji na Androida)
- Usługi testowania wersji beta aplikacji mobilnych (narzędzia do testowania wersji beta systemów iOS i Android)
- Twórz testy Appium dla aplikacji na Androida
- Testy funkcjonalne a testy niefunkcjonalne
- Samouczki testowania aplikacji mobilnych (kompletny przewodnik z ponad 30 samouczkami)
- Najlepsze narzędzia do testowania oprogramowania 2021 [Narzędzia do automatyzacji testów QA]
- Testy alfa i testy beta (kompletny przewodnik)
- Dogłębne samouczki dotyczące Eclipse dla początkujących