Kompletny przewodnik do testowania aplikacji mobilnych z dogłębnymi tutorialami:
Technologia mobilna i inteligentne urządzenia są teraz trendem i zmienią przyszłość świata, jaki znamy. Wszyscy możemy za to ręczyć, prawda? Teraz, to będzie amatorskie, jeśli wymienię, do czego używamy tych urządzeń mobilnych. Wszyscy to wiecie – być może lepiej niż my.
Przejdźmy od razu do tego, o czym będzie ten poradnik.
Pełna lista 30+ samouczków na temat testowania mobilnego:
Wprowadzenie do testowania mobilnego:
Samouczek #1: Wprowadzenie do testowania mobilnego
Samouczek #2: Testowanie aplikacji iOS
Samouczek #3: Testowanie aplikacji Android
Samouczek #4: Wyzwania i rozwiązania związane z testowaniem mobilnym
Samouczek #5: Dlaczego testowanie mobilne jest trudne?
Testowanie urządzeń mobilnych:
Samouczek #6: Testowanie wersji Androida po wycofaniu jej z rynku
Samouczek #7: Jak testować aplikacje mobilne na urządzeniach klasy low-end
Samouczek #8: Testowanie aplikacji mobilnych w terenie
Samouczek #9: Model telefonu kontra wersja systemu operacyjnego: Which Should Be Tested First?
Mobile UI Testing:
Tutorial #10: UI Testing of Mobile Apps
Tutorial #11: Mobile Responsive Test
Mobile Testing Services:
Tutorial #12: Cloud-Based Mobile Application Testing
Tutorial #13: Mobile Testing Services
Tutorial #14: Mobile App Beta Testing Services
Tutorial #15: Mobile App Development Company
Tutorial #16: Cloud-Based Mobile App Testing Service Providers
Mobile App Performance and Security Testing:
Tutorial #17: Mobile Applications Performance Testing Using BlazeMeter
Tutorial #18: Mobile App Security Testing Guidelines
Mobile Testing Tools:
Tutorial #19: Android App Testing Tools
Tutorial #20: Najlepsze narzędzia do testowania bezpieczeństwa aplikacji mobilnych
Tutorial #21: 58 najlepszych narzędzi do testowania aplikacji mobilnych
Mobile Automation Testing:
Tutorial #22: Appium Mobile Automation Tool tutorial
Tutorial #23: Appium Studio tutorial
Tutorial #24: Automate Android Applications Using TestComplete Tool
Tutorial #25: Robotium tutorial – Android App UI Testing Tool
Tutorial #26: Selendroid Tutorial: Mobile Automation Framework
Tutorial #27: pCloudy Tutorial: Mobile App Testing on Real Devices
Tutorial #28: Katalon Studio & Kobiton’s Cloud-Based Device Farm Tutorial
Mobile Testing Career:
Tutorial #29: How to Get a Mobile Testing Job Fast
Tutorial #30: Mobile Testing Interview Questions and Resume
Tutorial #31: Mobile Testing Interview Questions Part 2
*************************************************************
Zacznijmy od pierwszego tutoriala z tej serii.
- Tutorial #1: Wprowadzenie do testowania aplikacji mobilnych
- Typy Testów Mobilnych
- Znaczenie Testowania Aplikacji Mobilnych
- Podstawowe różnice pomiędzy testowaniem aplikacji mobilnych i stacjonarnych:
- Typy testowania aplikacji mobilnych:
- Strategia testowania aplikacji mobilnych
- Zalecane narzędzie
- Przypadki testowe do testowania aplikacji mobilnej
- Typowe czynności i postępowanie podczas testowania aplikacji mobilnej
- Jak testować aplikacje mobilne na obu platformach Android i iOS
- Podstawowa różnica pomiędzy Androidem i iOS Testing
- Kluczowe czynniki w testowaniu mobilnym
- Zdefiniuj swój własny zakres testowania
- Do not Limit your Testing
- Testy międzyplatformowe
- Miej oko na rozmiar swojej aplikacji mobilnej
- Testowanie scenariuszy aktualizacji aplikacji
- Device OS may not Support App
- Aplikacja Permission Testing
- Porównaj z podobnymi i popularnymi aplikacjami na rynku
- Get an Overview of Apple’s Build Rejection Criterion
- Zawsze bądź na pierwszej stopie
- Utrzymaj swoją aplikację w tle przez długi czas (12-24 godzin)
- Testowanie wydajności twojej aplikacji
- Konkluzja
Tutorial #1: Wprowadzenie do testowania aplikacji mobilnych
Minęły już czasy, kiedy telefon był urządzeniem, które siedziało w kącie i musiało dzwonić, aby zwrócić naszą uwagę lub komputer był maszyną używaną tylko przez kilka osób – teraz są one przedłużeniem naszej istoty – oknem na świat i wirtualnymi sługami, którzy robią to, co im się każe.
Komputery były szałem i zmieniły sposób myślenia, zachowania, uczenia się i istnienia nas, ludzi.
W dzisiejszych czasach rozwiązania mobilne opanowały rynek. Ludzie nie chcą włączać swoich laptopów/PC do wszystkiego, raczej chcą, aby ich urządzenia przenośne wykonywały wszystko szybko.
Więc rozwiązania mobilne, które dostarczamy naszym klientom powinny być bardzo dobrze przetestowane. Ten tutorial jest przeznaczony dla osób, które już zajmują się testami mobilnymi lub tych, które przestawiły się na nie w ostatnim czasie. Ponieważ mamy już wiele tutoriali dotyczących definicji terminologii związanej z testami mobilnymi, będziemy bezpośrednio zajmować się zakresem tego tutoriala.
Ten tutorial będzie zarówno wprowadzeniem jak i przewodnikiem po testach mobilnych. Więc, czytaj dalej!
Typy Testów Mobilnych
Są zasadniczo 2 rodzaje testów, które odbywają się na urządzeniach mobilnych:
#1. Testy sprzętowe:
Urządzenie w tym wewnętrzne procesory, wewnętrzny sprzęt, rozmiary ekranu, rozdzielczość, przestrzeń lub pamięć, aparat fotograficzny, radio, Bluetooth, WIFI itp. Jest to czasami określane jako, proste „Testowanie mobilne”.
#2. Testowanie oprogramowania lub aplikacji:
Testowane są aplikacje, które działają na urządzeniach mobilnych i ich funkcjonalność. Nazywa się to „Testowaniem Aplikacji Mobilnych”, aby odróżnić je od wcześniejszej metody. Nawet w aplikacjach mobilnych, istnieje kilka podstawowych różnic, które są ważne do zrozumienia:
a) Aplikacje natywne: Aplikacja natywna jest tworzona do użytku na platformie, takiej jak telefony komórkowe i tablety.
b) Mobilne aplikacje internetowe są aplikacjami po stronie serwera, aby uzyskać dostęp do strony internetowej / s na telefonie komórkowym za pomocą różnych przeglądarek, takich jak Chrome, Firefox, łącząc się z siecią komórkową lub siecią bezprzewodową, taką jak WIFI.
c) Aplikacje hybrydowe są kombinacją aplikacji natywnej i aplikacji internetowej. Działają na urządzeniach lub w trybie offline i są napisane przy użyciu technologii internetowych, takich jak HTML5 i CSS.
Jest kilka podstawowych różnic, które odróżniają je od siebie:
- Aplikacje natywne mają powinowactwo do jednej platformy, podczas gdy mobilne aplikacje internetowe mają powinowactwo międzyplatformowe.
- Aplikacje natywne są napisane w platformach takich jak SDK, podczas gdy mobilne aplikacje internetowe są napisane w technologiach internetowych, takich jak HTML, CSS, asp.net, Java, PHP.
- Dla aplikacji natywnych wymagana jest instalacja, ale dla mobilnych aplikacji internetowych nie jest wymagana instalacja.
- Naturalna aplikacja może być aktualizowana ze sklepu Play lub App Store, podczas gdy mobilne aplikacje internetowe są scentralizowane aktualizacje.
- Wiele natywnych aplikacji nie wymaga połączenia z Internetem, ale dla mobilnych aplikacji internetowych, to jest koniecznością.
- Naturalna aplikacja działa szybciej w porównaniu do mobilnych aplikacji internetowych.
- Aplikacje natywne są instalowane w sklepach z aplikacjami, takich jak Google play store lub app store, gdzie mobilne strony internetowe są stronami internetowymi i są dostępne tylko przez Internet.
Reszta artykułu będzie o testowaniu aplikacji mobilnych.
Znaczenie Testowania Aplikacji Mobilnych
Testowanie aplikacji na urządzeniach mobilnych jest bardziej wymagające niż testowanie aplikacji internetowych na pulpicie z powodu
- Różnego zakresu urządzeń mobilnych z różnymi rozmiarami ekranu i konfiguracjami sprzętowymi, takimi jak twarda klawiatura, wirtualna klawiatura (ekran dotykowy) i trackball itp.
- Szerokie odmiany urządzeń mobilnych, takich jak HTC, Samsung, Apple i Nokia.
- Różne mobilne systemy operacyjne, takie jak Android, Symbian, Windows, Blackberry i IOS.
- Różne wersje systemu operacyjnego jak iOS 5.x, iOS 6.x, BB5.x, BB6.x itp.
- Różni operatorzy sieci komórkowych jak GSM i CDMA.
- Częste aktualizacje – (jak Android- 4.2, 4.3, 4.4, iOS-5.x, 6.x) – z każdą aktualizacją zalecany jest nowy cykl testowy, aby upewnić się, że funkcjonalność aplikacji nie zostanie naruszona.
Tak jak w przypadku każdej aplikacji, testowanie aplikacji mobilnych jest również bardzo ważne, ponieważ klientela zazwyczaj liczy sobie miliony za dany produkt – a produkt z błędami nigdy nie jest doceniany. Często powoduje to straty pieniężne, problemy prawne i nieodwracalne szkody wizerunkowe marki.
Podstawowe różnice pomiędzy testowaniem aplikacji mobilnych i stacjonarnych:
Kilka oczywistych aspektów, które odróżniają testowanie aplikacji mobilnych od testowania aplikacji stacjonarnych
- Na komputerze stacjonarnym, aplikacja jest testowana na centralnej jednostce obliczeniowej. Na urządzeniu mobilnym, aplikacja jest testowana na telefonach takich jak Samsung, Nokia, Apple i HTC.
- Wielkość ekranu urządzenia mobilnego jest mniejsza niż komputera stacjonarnego.
- Urządzenia mobilne mają mniej pamięci niż komputery stacjonarne.
- Mobilne używają połączeń sieciowych takich jak 2G, 3G, 4G lub WIFI, gdzie komputery stacjonarne używają połączeń szerokopasmowych lub dial-up.
- Narzędzia automatyzacji używane do testowania aplikacji desktopowych mogą nie działać na aplikacjach mobilnych.
Typy testowania aplikacji mobilnych:
Aby zająć się wszystkimi powyższymi aspektami technicznymi, następujące rodzaje testów są wykonywane na aplikacjach mobilnych.
- Testowanie użyteczności- Aby upewnić się, że aplikacja mobilna jest łatwa w użyciu i zapewnia satysfakcjonujące doświadczenie użytkownika dla klientów
- Testowanie kompatybilności- Testowanie aplikacji w różnych urządzeniach mobilnych, przeglądarkach, rozmiarach ekranu i wersjach systemu operacyjnego zgodnie z wymaganiami.
- Testowanie interfejsu- Testowanie opcji menu, przycisków, zakładek, historii, ustawień i przepływu nawigacji w aplikacji.
- Testowanie usług- Testowanie usług aplikacji w trybie online i offline.
- Testowanie zasobów niskiego poziomu: Testowanie wykorzystania pamięci, auto-usuwanie plików tymczasowych, problemy z rosnącą lokalną bazą danych znane jako testowanie zasobów niskiego poziomu.
- Testowanie wydajności- Testowanie wydajności aplikacji poprzez zmianę połączenia z 2G, 3G na WIFI, udostępnianie dokumentów, zużycie baterii, itp.
- Testowanie operacyjne- Testowanie kopii zapasowych i planu odzyskiwania w przypadku awarii baterii lub utraty danych podczas aktualizacji aplikacji ze sklepu.
- Testy instalacyjne- Walidacja aplikacji poprzez zainstalowanie/odinstalowanie jej na urządzeniach.
- Testy bezpieczeństwa- Testowanie aplikacji w celu sprawdzenia czy system informatyczny chroni dane czy nie.
Strategia testowania aplikacji mobilnych
Strategia testowania powinna upewnić się, że wszystkie wytyczne dotyczące jakości i wydajności są spełnione. Kilka wskazówek w tym obszarze:
1) Wybór urządzeń – Przeanalizuj rynek i wybierz urządzenia, które są powszechnie używane. (Ta decyzja zależy głównie od klientów. Klient lub twórcy aplikacji biorą pod uwagę czynnik popularności niektórych urządzeń, a także potrzeby marketingowe aplikacji, aby zdecydować, jakich telefonów użyć do testów.)
2) Emulatory – Korzystanie z nich jest niezwykle przydatne w początkowych etapach rozwoju, ponieważ pozwalają na szybkie i sprawne sprawdzenie aplikacji. Emulator to system, który uruchamia oprogramowanie z jednego środowiska do drugiego bez zmiany samego oprogramowania. Powiela on funkcje i działa na prawdziwym systemie.
Typy emulatorów mobilnych
- Emulator urządzenia- dostarczany przez producentów urządzeń
- Emulator przeglądarki- symuluje środowiska przeglądarek mobilnych.
- Emulator systemów operacyjnych – Apple dostarcza emulatory dla iPhone’ów, Microsoft dla telefonów z systemem Windows i Google Android
Zalecane narzędzie
#1) Kobiton
Kobiton to niedroga i wysoce elastyczna platforma mobilna oparta na chmurze, która przyspiesza testowanie i dostarczanie natywnych, webowych i hybrydowych aplikacji na Androida i iOS przy użyciu prawdziwych urządzeń. Ich nowa bezskryptowa automatyzacja testów pomaga zespołom bez doświadczenia w kodowaniu generować otwarte skrypty Appium z łatwością.
=> Visit Kobiton Website
Lista kilku darmowych i łatwych w użyciu emulatorów urządzeń mobilnych
i. Mobile Phone Emulator – Służy do testowania telefonów takich jak iPhone, Blackberry, HTC, Samsung itp.
ii. MobiReady – Dzięki niemu możemy nie tylko przetestować aplikację internetową, ale także sprawdzić jej kod.
iii. Responsivepx – Sprawdza reakcje stron internetowych, wygląd i funkcjonalność stron internetowych.
iv. Screenfly – Jest to narzędzie konfigurowalne i używane do testowania stron internetowych w różnych kategoriach.
3) Po osiągnięciu zadowalającego poziomu rozwoju aplikacji mobilnej, możesz przejść do testowania na urządzeniach fizycznych, aby uzyskać więcej rzeczywistych scenariuszy opartych na testowaniu.
4) Rozważ testowanie w chmurze obliczeniowej: Chmura obliczeniowa to w zasadzie uruchamianie urządzeń na wielu systemach lub sieciach przez Internet, gdzie aplikacje mogą być testowane, aktualizowane i zarządzane. Do celów testowych, tworzy środowisko mobilne oparte na sieci Web na symulatorze, aby uzyskać dostęp do aplikacji mobilnej.
Pros:
- Backup i odzyskiwanie- Cloud computing automatycznie wykonuje kopię zapasową danych z lokalizacji zdalnej podejmowania odzyskiwania i przywracania danych łatwo. A także, pojemność pamięci masowej jest nieograniczona.
- Do chmury można uzyskać dostęp z różnych urządzeń i w dowolnym miejscu.
- Chmura obliczeniowa jest efektywna kosztowo, łatwa w użyciu, utrzymaniu i aktualizacji.
- Szybkie i szybkie wdrożenie.
- Interfejs oparty na przeglądarce internetowej.
- Możliwość uruchomienia tego samego skryptu na kilku urządzeniach równolegle.
Konsekwencje
- Mniejsza kontrola- Ponieważ aplikacja działa w środowisku zdalnym lub strony trzeciej, użytkownik ma ograniczoną kontrolę i dostęp do funkcji.
- Kwestie łączności internetowej- konfiguracja jest w Internecie. Kwestie sieciowe wpływają na dostępność i funkcjonowanie
- Kwestie bezpieczeństwa i prywatności- Cloud computing jest Internet computing i nic w Internecie jest całkowicie bezpieczny, więc szanse na włamanie do danych są więcej.
5) Automatyzacja vs. Testowanie ręczne
- Jeśli aplikacja zawiera nową funkcjonalność, testuj ją ręcznie.
- Jeśli aplikacja wymaga testowania raz lub dwa razy, rób to ręcznie.
- Automatyzuj skrypty dla przypadków testów regresji. Jeśli testy regresji są powtarzane, automatyczne testowanie jest do tego idealne.
- Automatyzuj skrypty dla złożonych scenariuszy, które są czasochłonne, jeśli są wykonywane ręcznie.
Dwa rodzaje narzędzi automatyzacji są dostępne do testowania aplikacji mobilnych:
Object-based mobile testing tools- automatyzacja poprzez mapowanie elementów na ekranie urządzenia do obiektów. Podejście to jest niezależne od rozmiaru ekranu i stosowane głównie dla urządzeń z systemem Android.
- Eg:- Ranorex, jamo solution
Image-based mobile testing tools- tworzenie skryptów automatyzacji na podstawie współrzędnych ekranowych elementów.
- Eg:- Sikuli, Egg Plant, RoutineBot
6) Konfiguracja sieci jest również niezbędną częścią testów mobilnych. Ważne jest, aby zatwierdzić aplikację w różnych sieciach, takich jak 2G, 3G, 4G lub WIFI.
Przypadki testowe do testowania aplikacji mobilnej
Oprócz przypadków testowych opartych na funkcjonalności, testowanie aplikacji mobilnej wymaga specjalnych przypadków testowych, które powinny obejmować następujące scenariusze.
- Wykorzystanie baterii- ważne jest, aby śledzić zużycie baterii podczas uruchamiania aplikacji na urządzeniach mobilnych.
- Szybkość aplikacji- czas odpowiedzi na różnych urządzeniach, z różnymi parametrami pamięci, z różnymi typami sieci itp.
- Wymagania dotyczące danych – do instalacji, jak również do sprawdzenia, czy użytkownik z ograniczonym planem danych będzie w stanie go pobrać.
- Wymagana pamięć- ponownie, do pobrania, zainstalowania i uruchomienia
- Funkcjonalność aplikacji- upewnij się, że aplikacja nie zawiesza się z powodu awarii sieci lub czegokolwiek innego.
Pobierz kilka przykładowych przypadków testowych do testowania aplikacji mobilnych:
=> Pobierz przykładowe przypadki testowe aplikacji mobilnej
Typowe czynności i postępowanie podczas testowania aplikacji mobilnej
Zakres testowania zależy od liczby wymagań do sprawdzenia lub zakresu zmian wprowadzonych do aplikacji. Jeżeli zmian jest niewiele, wystarczy runda testów poprawności. W przypadku większych i/lub złożonych zmian, zalecana jest pełna regresja.
Przykładowy projekt testowania aplikacji: ILL (International Learn Lab) jest aplikacją zaprojektowaną, aby pomóc administratorowi, wydawcy w tworzeniu stron internetowych we współpracy. Używając przeglądarki internetowej, instruktorzy wybierają z zestawu funkcji, aby stworzyć klasę, która spełnia ich wymagania.
Proces testowania aplikacji mobilnych:
Krok #1. Zidentyfikuj rodzaje testów: Ponieważ aplikacja ILL ma zastosowanie dla przeglądarek, więc obowiązkowe jest przetestowanie tej aplikacji na wszystkich obsługiwanych przeglądarkach przy użyciu różnych urządzeń mobilnych. Musimy wykonać testy użyteczności, funkcjonalne i kompatybilności na różnych przeglądarkach z kombinacją ręcznych i automatycznych przypadków testowych.
Krok #2. Testowanie ręczne i zautomatyzowane: Metodologia stosowana w tym projekcie to Agile z iteracją dwutygodniową. Co dwa tygodnie zespół deweloperski wypuszcza nowy build dla zespołu testującego, a zespół testujący uruchamia swoje przypadki testowe w środowisku QA. Zespół automatyków tworzy skrypty dla zestawu podstawowych funkcjonalności i uruchamia skrypty, które pomagają określić czy nowy build jest wystarczająco stabilny do testowania. Zespół testerów manualnych przetestuje nową funkcjonalność.
JIRA jest używana do pisania kryteriów akceptacji; utrzymywania przypadków testowych i rejestrowania / ponownej weryfikacji defektów. Kiedy iteracja dobiega końca, odbywa się spotkanie planowania iteracji, na którym dev. Zespół, właściciel produktu, analityk biznesowy i zespół QA omawiają, co poszło dobrze, a co wymaga poprawy.
Krok #3. Testy Beta: Po zakończeniu testów regresyjnych przez zespół QA, build przechodzi do UAT. Testy Akceptacji Użytkownika są przeprowadzane przez klienta. Ponownie weryfikują wszystkie błędy, aby upewnić się, że każdy błąd został naprawiony i aplikacja działa zgodnie z oczekiwaniami na każdej zatwierdzonej przeglądarce.
Krok #4. Test wydajności: Zespół testujący wydajność testuje wydajność aplikacji internetowej przy użyciu skryptów JMeter i przy różnych obciążeniach aplikacji.
Krok #5. Testowanie przeglądarek: Aplikacja webowa jest testowana na wielu przeglądarkach – zarówno przy użyciu różnych narzędzi symulacyjnych, jak i fizycznie przy użyciu prawdziwych urządzeń mobilnych.
Krok #6. Plan uruchomienia: Po co 4 tygodniu, testowanie przenosi się do etapów, gdzie przeprowadzana jest ostateczna runda testów end to end na tych urządzeniach, aby upewnić się, że produkt jest gotowy do produkcji. I wtedy, to idzie na żywo!
*****************************************
Jak testować aplikacje mobilne na obu platformach Android i iOS
To jest bardzo ważne dla testerów, którzy testują swoje aplikacje na obu platformach iOS i Android, aby znać różnicę między nimi. iOS i Android mają wiele różnic w.r.t do wyglądu i czuć, widoki aplikacji, standardy kodowania, wydajność, itp.
Podstawowa różnica pomiędzy Androidem i iOS Testing
Może przeszedłeś przez wszystkie tutoriale, umieściłem tutaj kilka głównych różnic, które z kolei pomogą ci jako część twojego testowania:
#1) Ponieważ mamy wiele urządzeń z Androidem dostępnych na rynku i wszystkie z nich pochodzą z różnymi rozdzielczościami ekranu i rozmiarami, stąd jest to jedna z głównych różnic.
Na przykład, Samsung S2 rozmiar jest zbyt mały w porównaniu z Nexus 6. Istnieją duże możliwości, że układ aplikacji i projekt zostanie zniekształcony na jednym z urządzeń. Prawdopodobieństwo jest niskie w iOS, ponieważ istnieje tylko policzalna liczba urządzeń dostępnych na rynku, a z nich wiele telefonów ma podobną rozdzielczość.
Na przykład, zanim powstał iPhone 6 i wyżej, wszystkie starsze wersje miały tylko podobny rozmiar.
#2) Przykładem potwierdzającym powyższy punkt jest to, że w Androidzie programiści muszą używać obrazów 1x,2x,3x,4x i 5x, aby obsługiwać rozdzielczości obrazu dla wszystkich urządzeń, podczas gdy iOS używa tylko 1x,2x i 3x. Jednakże, obowiązkiem testera staje się zapewnienie, że obrazy i inne elementy UI są wyświetlane poprawnie na wszystkich urządzeniach.
Możesz odnieść się do poniższego diagramu, aby zrozumieć koncepcję rozdzielczości obrazu:
#3) Ponieważ mamy rynek zalany urządzeniami z Androidem, kod musi być napisany w taki sposób, aby wydajność pozostała na stałym poziomie. Tak, to jest całkiem prawdopodobne, że Twoja aplikacja może zachowywać się powoli na urządzeniach niższej klasy.
#4) Innym problemem z Androidem jest to, że aktualizacje oprogramowania nie są dostępne dla wszystkich urządzeń na raz. Producenci urządzeń decydują, kiedy aktualizować swoje urządzenia. To staje się bardzo trudne zadanie, aby przetestować wszystko zarówno z nowym OS i starym OS.
Also, staje się uciążliwe zadanie dla programistów, aby zmodyfikować swój kod do obsługi obu wersji.
Na przykład, gdy Android 6.0 przyszedł, nie było głównej zmiany, jak ten system operacyjny zaczął wspierać uprawnienia poziomu aplikacji. Aby wyjaśnić dalej, użytkownik mógł zmienić uprawnienia (lokalizacja, kontakty) na poziomie aplikacji również.
Teraz zespół testujący jest odpowiedzialny za upewnienie się, że pokazywanie ekranu uprawnień na starcie aplikacji na Androidzie 6.0 i wyżej i nie pokazywanie ekranu uprawnień na niższych wersjach.
#5) Z perspektywy testowania, budowanie przedprodukcyjne (tj. wersja beta) testowanie jest inne na obu platformach. W Androidzie, jeśli użytkownik jest dodany do listy użytkowników beta to może zobaczyć zaktualizowaną wersję beta w Sklepie Play tylko wtedy, gdy jest zalogowany w sklepie Play z tym samym identyfikatorem e-mail, który jest dodany jako użytkownik beta.
Kluczowe czynniki w testowaniu mobilnym
Pracowałem w testowaniu mobilnym przez ostatnie 2 lata zarówno na platformie iOS jak i Android i wszystkie kluczowe punkty wymienione poniżej w tym poradniku pochodzą z mojego osobistego doświadczenia, a niektóre pochodzą z problemów napotkanych w projekcie.
Zdefiniuj swój własny zakres testowania
Każdy ma swój własny styl testowania. Niektórzy testerzy skupiają się tylko na tym, co widzą na własne oczy, a pozostali są pasjonatami wszystkiego, co działa za kulisami każdej aplikacji mobilnej.
Jeśli jesteś testerem iOS/Android, sugerowałbym, abyś przynajmniej zapoznał się z niektórymi wspólnymi ograniczeniami/podstawowymi funkcjonalnościami Androida lub iOS, ponieważ to zawsze dodaje wartości do naszego stylu testowania. Wiem, że rzeczy są trudne do zrozumienia bez przytaczania przykładów.
Dane poniżej to kilka przykładów:
- Nie możemy zmienić uprawnień takich jak aparat, pamięć masowa itp. na poziomie aplikacji w urządzeniach z Androidem, które są poniżej wersji 6.0.1.
- Dla iOS poniżej wersji 10.0, zestaw połączeń nie był tam. Wystarczy poinformować Cię w prostych słowach, zestaw połączeń jest używany przez aplikację wywołującą i wyświetla widok pełnoekranowy, gdy użytkownik otrzymuje połączenie z aplikacji wywołujących, takich jak WhatsApp, Skype itp. Natomiast dla wersji iOS poniżej 10.0 widzimy te połączenia jako baner powiadomień.
- Wielu z was mogło natknąć się na problemy w Paytm, gdzie wasza aplikacja nie przekierowuje was na stronę płatności banku w przypadku, gdy chcecie dodać pieniądze do portfela. Myślimy, że powyższe jest problemem z naszym bankiem lub serwerem Paytm, ale to po prostu nasz AndroidSystemWebView nie jest zaktualizowany. Mała wiedza na temat programowania jest zawsze przydatna dla ciebie i do dzielenia się z twoim zespołem.
- W prostych słowach, za każdym razem, gdy aplikacja otwiera jakąkolwiek stronę internetową w niej, wtedy AndroidSystemWebView powinien być aktualizowany.
Do not Limit your Testing
Testowanie nie powinno być ograniczone tylko do badania aplikacji mobilnej i rejestrowania błędów. My, jako QA powinniśmy być świadomi wszystkich żądań, które trafiają na nasz serwer i odpowiedzi, które z niego otrzymujemy.
Skonfiguruj Putty do przeglądania logów lub zweryfikuj logikę sumo dla logów w zależności od tego, co jest używane w twoim projekcie. To nie tylko pomaga ci w poznaniu przepływu End-to-End aplikacji, ale także czyni cię lepszym testerem, ponieważ dostajesz więcej pomysłów i scenariuszy teraz.
Reason: Nic nie przychodzi na ten świat bez żadnego powodu. Każde stwierdzenie powinno mieć ważny powód za nim. Powodem analizy logów jest to, że wiele wyjątków jest obserwowanych w logach, ale nie mają one żadnego wpływu na UI, więc ich nie zauważamy.
Więc, czy powinniśmy je zignorować?
Nie, nie powinniśmy. Nie ma to żadnego wpływu na UI, ale może być przyszłościowym zmartwieniem. Możemy potencjalnie zobaczyć naszą aplikację zawieszającą się, jeśli tego rodzaju wyjątki będą się skradać. Jak wspomnieliśmy o App Crash w ostatnim zdaniu, prowadzi to QA do dostępu do crashlytics projektu.
Crashlytics jest narzędziem, w którym awarie są rejestrowane wraz z czasem i modelem urządzenia.
Teraz nasuwa się pytanie, że jeśli tester widział awarie aplikacji, to dlaczego musi zawracać sobie głowę crashlytics?
Odpowiedź na to pytanie jest dość interesująca. Istnieją pewne awarie, które mogą nie być widoczne w UI, ale są rejestrowane w crashlytics. Może to być awaria poza pamięcią lub kilka fatalnych wyjątków, które mogą mieć wpływ na wydajność później.
Testy międzyplatformowe
Testy interakcji międzyplatformowej są bardzo ważne.
Przywołując prosty przykład, powiedzmy, że pracujesz nad aplikacją czatu jak WhatsApp, która obsługuje wysyłanie obrazów i filmów i aplikacja jest zbudowana na obu platformach iOS i Android (rozwój może lub nie może być idąc w synchronizacji)
Zapewnij przetestować komunikację Android i iOS, powodem jest to, że jest iOS używa „Objective C”, podczas gdy programowanie Android jest oparty na Java i ze względu na oba z nich są zbudowane na różnych platformach czasami dodatkowe poprawki muszą być wykonane po stronie aplikacji do rozpoznawania ciągów pochodzących z różnych platform językowych.
Miej oko na rozmiar swojej aplikacji mobilnej
Kolejna ważna rada dla testerów mobilnych – Proszę sprawdzać rozmiar swojej aplikacji po każdym wydaniu.
Powinniśmy upewnić się, że rozmiar aplikacji nie osiągnie punktu, w którym nawet my, jako użytkownik końcowy, nie będziemy chcieli pobrać tej aplikacji ze względu na jej duży rozmiar.
Testowanie scenariuszy aktualizacji aplikacji
Dla testerów mobilnych, testowanie aktualizacji aplikacji jest bardzo ważne. Upewnij się, że Twoja aplikacja nie ulegnie awarii podczas aktualizacji, ponieważ zespół programistów mógł źle dopasować numer wersji.
Zachowanie danych jest równie ważne, ponieważ jakiekolwiek preferencje zapisane przez użytkownika w poprzedniej wersji powinny zostać zachowane podczas aktualizacji aplikacji.
Na przykład, użytkownik mógł zapisać dane swojej karty bankowej w aplikacjach takich jak PayTm, itp.
Device OS may not Support App
Sounds Interesting?
Tak, wiele urządzeń może nie wspierać Twojej aplikacji. Wielu z was musi wiedzieć, że dostawcy piszą swoje własne wrappery na wierzchu US i może się zdarzyć, że jakiekolwiek zapytanie SQL w waszej aplikacji nie jest kompatybilne z urządzeniem i dlatego rzuca wyjątek, a to może skutkować nawet nie uruchomieniem aplikacji na tym telefonie.
Punktem nad tym jest – Spróbujcie użyć swojej aplikacji na własnych urządzeniach, z wyjątkiem tych, których używacie w biurze. Jest całkiem możliwe, że widzisz jakieś problemy ze swoją app.
Aplikacja Permission Testing
Następnym na liście jest Permission Testing aplikacji mobilnych. Prawie co druga aplikacja prosi swoich użytkowników o dostęp do kontaktów w telefonie, aparatu, galerii, lokalizacji itp. Widziałem kilku testerów, którzy popełniają błąd, nie testując odpowiednich kombinacji tych uprawnień.
Mogę sobie przypomnieć przykład w czasie rzeczywistym, kiedy testowaliśmy aplikację czatu, która miała wszystkie funkcje udostępniania obrazów i plików audio. Uprawnienie do przechowywania było ustawione na NO.
Teraz, gdy użytkownik kliknąłby na opcję aparatu, nigdy nie otworzyłby się, dopóki uprawnienie do przechowywania nie byłoby ustawione na TAK. Scenariusz został zignorowany jako Android Marshmallow miał tę funkcjonalność, że jeśli pozwolenie na przechowywanie jest ustawione na NIE, aparat nie może być używany dla tej aplikacji.
Zakres rozciąga się dalej niż to, co omówiliśmy w powyższym akapicie. Powinniśmy się upewnić, że aplikacja nie prosi o żadne uprawnienia, które nie są używane.
Każdy użytkownik końcowy zaznajomiony z branżą oprogramowania może nie pobrać aplikacji, w której prosi się o zbyt wiele uprawnień. Jeśli usunąłeś jakąkolwiek funkcję ze swojej aplikacji, to upewnij się, że usunąłeś ekran uprawnień dla tego samego.
Porównaj z podobnymi i popularnymi aplikacjami na rynku
Morał tej historii – Jeśli kiedykolwiek masz wątpliwości, to po prostu nie zawieraj tego sam. Porównanie z innymi podobnymi aplikacjami na tej samej platformie może wzmocnić twój argument, że testowana funkcjonalność będzie działać lub nie.
Get an Overview of Apple’s Build Rejection Criterion
Na koniec, większość z was mogła natknąć się na sytuacje, w których wasze kompilacje zostały odrzucone przez Apple. Wiem, że ten temat nie zainteresuje większej części czytelników, ale zawsze dobrze jest poznać politykę odrzucania Apple.
Jako testerom, trudno jest nam zająć się aspektami technicznymi, ale mimo to, istnieje pewne kryterium odrzucania, którym testerzy mogą się zająć.
Aby uzyskać więcej informacji na ten temat, proszę kliknąć tutaj.
Zawsze bądź na pierwszej stopie
Będąc testerem, nie pozwól, aby rzeczy przeszły na twój sąd od Zespołu Dev/Menedżerów. Jeśli jesteś pasjonatem testowania to „Zawsze bądź na pierwszej stopie”. Staraj się angażować w działania, które mają miejsce na długo przed tym, jak kod trafi do twojego wiadra, aby go przetestować.
Najważniejsze jest to, abyś ciągle zaglądał do JIRA, QC, MTM lub tego, co jest używane w twoim projekcie dla wszystkich najnowszych aktualizacji biletów od klientów i Analityka Biznesowego. Bądź również gotowy do dzielenia się swoimi poglądami, jeśli wymagasz modyfikacji. Dotyczy to wszystkich testerów, którzy pracują w różnych domenach i na różnych platformach.
Do czasu i chyba że nie czujemy produktu jako własnego, nigdy nie powinniśmy dawać sugestii dotyczących nowych ulepszeń lub zmian w istniejącej funkcjonalności.
Utrzymaj swoją aplikację w tle przez długi czas (12-24 godzin)
Wiem, że brzmi to dziwnie, ale za kulisami jest wiele logiki, której wszyscy nie rozumiemy.
Podzielam się tym, ponieważ widziałem, jak aplikacja zawiesza się po uruchomieniu, powiedzmy po około 14 godzinach od stanu tła. Powodem może być wszystko w zależności od tego, jak deweloperzy zakodowali go.
Pozwól mi podzielić się przykładem w czasie rzeczywistym:
W moim przypadku wygaśnięcie tokena było przyczyną. Dla jednej z aplikacji czatu, jeśli uruchomiona po 12-14 godzinach utknęłaby na banerze łączącym i nigdy nie uzyskałaby połączenia, dopóki nie zostałaby zabita i ponownie uruchomiona. Tego rodzaju rzeczy są bardzo trudne do wychwycenia i w pewien sposób, to czyni testowanie mobilne bardziej wymagającym i kreatywnym.
Testowanie wydajności twojej aplikacji
W świecie mobilnym, wydajność twojej aplikacji wpływa na stopień, w jakim twoja aplikacja jest rozpoznawana na całym świecie. Jako zespół testujący, staje się zbyt ważne, aby sprawdzić odpowiedź aplikacji, a co ważniejsze, jak to działa, gdy duża liczba użytkowników używa go razem.
Przykład:
Porozmawiajmy o PayTm.
Wszyscy pewnie kliknęliście na opcję ADD MONEY w aplikacji PayTm, która następnie wyświetla saldo, jakie macie w portfelu. Jeśli weźmiemy pod uwagę to, co dzieje się za kulisami, to jest to żądanie, które idzie do serwera z PayTm UserID, a serwer odsyła odpowiedź z saldem na Twoim koncie.
Powyższy przypadek jest tylko wtedy, gdy jeden użytkownik trafił na serwer. Musimy się upewnić, że nawet jeśli 1000 użytkowników trafi na serwer, powinni oni otrzymać odpowiedź na czas, ponieważ użyteczność dla użytkownika końcowego jest naszym głównym celem.
Konkluzja
Zakończę ten poradnik powtarzając, że testowanie mobilne wydaje się być bardzo łatwe na początku, ale jak będziesz się w to zagłębiał zrozumiesz, że nie jest łatwo zapewnić, że to co zostało opracowane będzie działać płynnie na tysiącach urządzeń na całym świecie.
W większości przypadków zobaczysz aplikacje, które są obsługiwane tylko na najnowszych i ostatnich wersjach OS. Jednak to staje się obowiązkiem testerów, aby zapewnić, że nie przegapić żadnych scenariuszy. Jest wiele innych punktów, które należy wziąć pod uwagę, ale nie wspomniałem o tych, które już zostały przedstawione w innych poradnikach.
Scenariusze takie jak zużycie baterii, testowanie przerwań, testowanie w różnych sieciach (3G, Wi-Fi), testowanie podczas przełączania sieci, testowanie małp aplikacji mobilnych, itp. są przydatne, jeśli chodzi o testowanie mobilne.
Postawa testerów ma duże znaczenie, jeśli chodzi o prawdziwe środowisko testowe. Dopóki nie pokochasz swojej pracy nie będziesz zawracał sobie głowy robieniem rzeczy, które są wymienione w tutorialu.
Jestem w tej dziedzinie od około 6 lat i bardzo dobrze zdaję sobie sprawę, że zadania stają się monotonne czasami, ale jest wiele innych rzeczy, które możemy zrobić na własną rękę, aby uczynić te monotonne zadania nieco interesującymi.
Projektowanie właściwej strategii testowej, wybór odpowiednich symulatorów mobilnych, urządzeń i narzędzi do testowania mobilnego może upewnić się, że mamy 100% pokrycie testowe i pomóc nam włączyć testy bezpieczeństwa, użyteczności, wydajności, funkcjonalności i kompatybilności do naszych zestawów testowych.
Cóż, to był nasz wysiłek, aby spełnić wiele próśb od naszych czytelników na temat przewodnika testowania aplikacji mobilnych.
Autorzy: Podziękowania dla Swapna, Hasnet i wielu innych ekspertów od testowania mobilnego za pomoc w skompilowaniu tej serii!
W naszym następnym artykule omówimy więcej na iOS App Testing.
Ostatnia aktualizacja: Luty 18, 2021