Instrukcja vs. Zautomatyzowane: jaki jest właściwy sposób testowania aplikacji

Opublikowany: 2022-02-24
testowanie

Kiedy wydajesz aplikację, musisz mieć 100% pewność, że będzie działać płynnie i bezbłędnie. I oczywiście powinien też spełniać oczekiwania Twoich użytkowników! W przeciwnym razie Twój projekt może się nie powieść, co nie jest pożądanym rezultatem, prawda? Musisz więc zwrócić należytą uwagę na testowanie jakości aplikacji (QA).

Ale jakie jest właściwe podejście do testowania Twojej platformy? Jakie techniki wybrać? Czy warto sprawdzać działanie produktu ręcznie czy za pomocą automatyzacji? A może wybrać obie opcje na raz?

W zapewnianiu jakości (QA) automatyzacja testów jest jednym z największych mistrzów szybkości. Ale jeśli chodzi o funkcjonalność i pierwsze wrażenia, nic nie zastąpi ręcznego testowania. Faktem jest, że nawet gdy oprogramowanie do automatycznego testowania staje się coraz bardziej wyrafinowane, ręczne testowanie aplikacji mobilnych nadal odgrywa ogromną rolę w dostarczaniu aplikacji wysokiej jakości.

Obie kategorie testowania aplikacji mobilnych mają wyraźne zalety i wady, ale szczególnie ważne jest, aby firmy tworzące aplikacje mobilne przećwiczyły ręczne testowanie, aby zapewnić wyjątkowe wrażenia użytkownika.

Usługa rankingu aplikacji ASO World
Kliknij „Dowiedz się więcej”, aby rozwijać swoją działalność w zakresie aplikacji i gier dzięki usłudze promocji aplikacji ASO World.

Podstawy testowania aplikacji mobilnych

Najogólniej mówiąc, istnieją dwa podejścia do testowania aplikacji mobilnej. Możesz sprawić, by ludzie używali aplikacji w różnych sytuacjach, aby zobaczyć, jak reaguje, lub możesz sprawić, by aplikacja kierowała oprogramowanie w interesujące miejsca i szukała oczekiwanych rezultatów.

Ten drugi termin jest powszechnie określany jako „automatyzacja testów” lub być może „testowanie automatyczne”. Bardziej trafne może być określanie tego jako „zautomatyzowane wykonywanie i ocena testów” lub „automatyczne sprawdzanie”, ale wcześniejsze terminy się przyjęły.

Oba te podejścia mogą być prawidłowe w różnych okolicznościach, a ważność ta może zmieniać się w czasie w różnych momentach cyklu życia aplikacji. W praktyce większość organizacji wykorzystuje połączenie tych dwóch, być może przepychając niektóre z ludzkich eksploracji na klientów.

Co to jest testowanie automatyczne i ręczne?

Zapewnienie wysokiej jakości oprogramowania to złożony proces, który zajmuje dużo czasu i kosztuje trochę pieniędzy. Takich wydatków nie da się jednak uniknąć (pod warunkiem, że chcesz odnieść sukces na dłuższą metę).

Ważne jest, aby opracować kompetentną strategię testowania, która pozwoliłaby uzyskać maksymalny efekt przy minimalnym wysiłku i zrozumieć, czy witryna lub aplikacja spełnia określone wymagania.

Testowanie ręczne

Testowanie automatyczne to proces, w którym wstępnie zaprogramowane testy są wykonywane na aplikacji przed jej wprowadzeniem do produkcji. Zautomatyzowane testowanie pomaga szybciej znajdować błędy w aplikacji. Automatyzacja testów może być używana do uruchamiania testów, które są powtarzalne, które muszą być uruchamiane okresowo i które mogą pomóc Ci znaleźć błędy na wczesnych etapach.

Podczas gdy celem testowania ręcznego jest testowanie tak zwanego „doświadczenia użytkownika”, testowanie automatyczne ma na celu przetestowanie wszystkich funkcjonalności charakteryzujących aplikację.

Szesnaście lat po tym, jak po raz pierwszy powiedziano mi, że testy na ludziach „odejdą” i prawie dziesięć lat po tym, jak po raz pierwszy usłyszałem ludzi zwanych „dinozaurami”, testowanie ręczne pozostaje najpopularniejszym podejściem do testowania zarówno aplikacji mobilnych, jak i stacjonarnych.

Przez testowanie ręczne rozumiem człowieka, który faktycznie korzysta z aplikacji za pośrednictwem interfejsu użytkownika. Istnieje wiele miejsc, w których może mieć miejsce to ręczne testowanie. Większość programistów przynajmniej symuluje aplikację, jeśli nie umieszcza ją na telefonie, zanim przekaże ją komuś innemu w celu przetestowania. Niektóre firmy zatrudniają testerów, aby wejść głębiej, wybiegając poza szczęśliwą ścieżkę lub w inne modele urządzeń.

Jeśli oprogramowanie jest wewnętrzne, firma może zlecić osobom, które będą z niego korzystać, faktycznie przeprowadzić testy akceptacji użytkownika, które są bardziej skoncentrowane na „czy mogę wykonywać swoją pracę z tym oprogramowaniem”. Niektóre firmy wcześniej udostępniają oprogramowanie testerom „beta”, którymi mogą być pracownicy, za pomocą narzędzia takiego jak Microsoft AppCenter.

Wreszcie, firmy takie jak Applause i Testio istnieją, aby wykorzystać tę wersję „beta” i pozyskać ją na zasadzie crowdsourcingu, zapewniając dziesiątki do tysięcy gałek ocznych, aby spojrzeć na oprogramowanie w różnych konfiguracjach w krótkim czasie.

Niezależnie od tego, kto w jaki sposób lub podczas ręcznego testowania, możesz poczuć, jak faktycznie korzysta się z aplikacji. Testy ręczne mogą sprawdzić, czy przyciski są we właściwej pozycji, jeśli są wystarczająco duże, jeśli nakładają się na siebie, jeśli kolory dobrze do siebie pasują itp. Komputery okazują się szczególnie kiepskie w ocenie, czy obraz na ekranie „wygląda dobrze”.

Istnieją jednak pewne działania, które komputery mogą łatwo przetestować. Na przykład, kiedy wpiszesz nazwę użytkownika i hasło i prześlesz, powinieneś przejść do ekranu, który pokazuje twoje imię i nazwisko oraz to, że zostałeś zalogowany, a pozostawienie błędnego hasła powinno dać konkretny tekst błędu.

Jest mniej prawdopodobne, że wyzwaniem testowania mobilnego będzie to, który z dwóch paradygmatów zaakceptować, ale ile, kiedy i kto.

Dlaczego potrzebuję testów ręcznych?

Testowanie ręczne dostarcza pewnych informacji zwrotnych na temat użyteczności i wyglądu wraz z funkcjonalnością. Tester odgrywa rolę użytkownika wypróbowującego wszystko w tej aplikacji, wykonując typowe czynności, które wykonałby użytkownik, aby sprawdzić, czy lub kiedy aplikacja się zawiesi. Dzięki testom ręcznym często otrzymujesz informacje zwrotne na temat wydajności, rozładowania baterii lub przegrzania na tyle wcześnie, aby naprawić je przed wydaniem. Informacje zwrotne są często „bezpłatne” tylko dlatego, że tester zwracał na to uwagę.

Ile urządzeń potrzebuję do testowania?

Możesz spróbować ręcznie przetestować każde urządzenie obsługiwane przez każdą obsługiwaną wersję systemu operacyjnego. Ostatnim razem, gdy sprawdzaliśmy trzy lata temu, było ponad 24 000 różnych urządzeń z Androidem i przestaliśmy liczyć. Realistycznie rzecz biorąc, większość organizacji przeprowadza testy z najnowszą obsługiwaną wersją, jedną wersją wstecz i najstarszą obsługiwaną wersją. Pomiędzy Androidem i iOS, tabletem i telefonem, większość średnich i większych firm, z którymi współpracujemy, kończy z laboratorium testowym złożonym z 10-20 urządzeń.

Testowanie automatyczne

Co to jest testowanie automatyczne?

Kiedy ludzie używają wyrażenia Zautomatyzowane testowanie, zazwyczaj mają na myśli posiadanie narzędzia, takiego jak Selenium lub Appium, które steruje interfejsem użytkownika aplikacji, sprawdzając po drodze oczekiwane wyniki.

To sprawdzanie pochodzi z serii poleceń i punktów kontrolnych, które mogą być przechowywane w czymś w rodzaju arkusza kalkulacyjnego lub, co bardziej prawdopodobne, w rzeczywistym programie komputerowym.

Dlatego testy są wstępnie napisane; każdy test może być programem komputerowym. Każdy test może klikać lub wpisywać kilkanaście razy i mieć kolejne kilkanaście punktów weryfikacyjnych. Po uruchomieniu testów, jeśli zachowanie aplikacji nie uległo zmianie, automatyczne testy mogą bardzo szybko znaleźć defekty w aplikacji, zwykle w ciągu kilku minut od zatwierdzenia kontroli wersji.

Automatyzacja testów może być używana do uruchamiania testów, które są powtarzalne, które nie wymagają ludzkiego rozeznania, które muszą być uruchamiane okresowo i które mogą pomóc w znalezieniu błędów na wczesnych etapach. Podczas gdy celem testowania ręcznego jest sprawdzenie „doświadczenia użytkownika”, testowanie automatyczne ma na celu przetestowanie wszystkich funkcji charakteryzujących aplikację.

Testowanie automatyczne spowoduje kliknięcie przycisku, który „wygląda niewłaściwie” i znajduje się w niewłaściwym miejscu, i nie zarejestruje problemu (chyba że zaplanowano wcześniejsze sprawdzenie) — istnieje większe prawdopodobieństwo znalezienia błędów, nieprawidłowych wyników wyszukiwania i tak dalej.

Dlaczego potrzebuję testów automatycznych?

Wraz z rozwojem aplikacji rośnie również czas na jej testowanie. Zautomatyzowane testowanie skraca ten czas przy częstym wydawaniu. To sprawia, że ​​automatyczne testowanie jest kluczem do przyspieszenia procesu testowania, obniżenia kosztów i radykalnego skrócenia czasu oczekiwania na informacje zwrotne w przypadku poważnych błędów z dni do minut. Automatyzacja testów umożliwia:

Testuj funkcjonalności, które są powtarzalne i dlatego podatne na błędy, jeśli są wykonywane ręcznie; przypadki testowe, które mają przewidywalny wynik;

Łatwe konfigurowanie i uruchamianie skomplikowanych i żmudnych scenariuszy testowych

Najważniejsze: możesz testować na większej liczbie urządzeń mobilnych jednocześnie, oszczędzając czas. Korzystając z symulatorów lub chmury, możesz to zrobić bez kupowania urządzeń i zarządzania nimi!

Ile przypadków testowych potrzebuję do podstawowego zestawu testów?

Będzie się to znacznie różnić w zależności od aplikacji i wielkości „przypadku testowego”. Jeśli przypadki testowe są prostymi testami dom-do-bazy danych, które sprawdzają jedną operację logiczną, to typowa funkcja może mieć od czterech do dziesięciu testów, a typowa aplikacja może mieć od czterech do dziesięciu funkcji.

Jeśli aplikacja jest kodowana za pomocą dwóch różnych języków programowania, jednego dla systemu iOS i jednego dla systemu Android, może być konieczne podwojenie tego lub napisanie warstwy abstrakcji i posiadanie jednego zestawu scenariuszy biznesowych i dwóch implementacji, które różnią się w zależności od systemu operacyjnego.

Testowanie ręczne aplikacji mobilnych

Korzyści z ręcznego testowania

  • Dokładne i szybkie testowanie interfejsu użytkownika
  • Doświadczanie i testowanie aplikacji jako prawdziwy użytkownik w celu odtworzenia ostatecznego doświadczenia
  • Łatwe identyfikowanie i odtwarzanie zgłoszonych problemów
  • Rozwiązywanie skomplikowanych problemów i przypadków użycia
  • Szybsze i bardziej ekonomiczne testowanie małych zmian i projektów

Wady ręcznego testowania

  • Błąd ludzki wpływa na dokładność
  • Testy należy za każdym razem powtarzać ręcznie
  • Żmudne zadania testowe są znacznie trudniejsze
  • Ogromny zasięg wymaga wielu zasobów, takich jak liczba testerów i dostęp do szerokiej gamy urządzeń

Testowanie ręczne w aplikacjach mobilnych służy do:

  • Testowanie eksploracyjne: W podejściu testowanie eksploracyjne ocenia testera jako integralną część procesu testowego. Potrzebny jest do tego tester manualny, aby czerpać korzyści z ich wnikliwości, kreatywności i wiedzy.
  • Testowanie ad-hoc: Z definicji, ad-hoc jest nieformalnym typem testowania. Ma na celu zerwanie systemu, dlatego nie można go wykonać w zaplanowany sposób. Potrzebuje testera, aby zachowywał się nieregularnie, aby spróbować złamać system.
  • Testowanie użyteczności: Tester ręczny może poznać wrażenia użytkownika końcowego. Korzystanie z aplikacji w taki sposób, w jaki została zaprojektowana, pomoże określić, jak przyjazna dla użytkownika jest aplikacja, a kluczowy jest w tym udział człowieka.

Zautomatyzowane testowanie aplikacji mobilnych

Korzyści z automatycznego testowania

  • Szybsze wykonywanie żmudnych i wymagających testów
  • Testowanie wielu urządzeń
  • Zautomatyzowanych testów można używać wielokrotnie
  • Szybkie, wydajne i dokładne wyniki
  • Wiele testów automatycznych może być wykonywanych w tym samym czasie
  • W przypadku dużych aplikacji mobilnych testy automatyczne są bardziej opłacalne

Wady testów automatycznych

  • Brak wglądu w wrażenia użytkownika z wizualnego punktu widzenia
  • Koszt uruchomienia i uruchomienia testów automatycznych jest wysoki ze względu na potrzebny kod
  • Marnotrawstwo w sytuacjach na mniejszą skalę
  • Wciąż trochę błędu ludzkiego, ponieważ test automatyzacji jest zaprogramowany przez człowieka i wymaga własnego testowania
  • Wymaga określonych konfiguracji i kodu dla każdej aplikacji mobilnej

Zautomatyzowane testowanie w aplikacjach mobilnych służy do:

  • Testowanie regresji: Jedną z największych zalet automatycznego testowania jest możliwość posiadania skryptu testowego gotowego do uruchomienia w dowolnym momencie. Jednym z najlepszych sposobów wykorzystania testów automatycznych jest wprowadzanie niewielkich zmian, gdy chcesz mieć pewność, że nie przyniosą one żadnych negatywnych skutków.
  • Testowanie wydajności: W przeciwieństwie do testowania użyteczności, wydajność jest bardziej grą liczbową. Testowanie, jak szybka, responsywna i stabilna jest aplikacja na różnych urządzeniach lub w różnych warunkach, to coś, co sprawdza się w wykonywaniu automatycznych testów. Skala i dokładność wyników sprawiają, że testy automatyczne są niezbędne do testowania wydajności.
  • Testowanie wielokrotne: Po początkowych kosztach kodowania i konfigurowania skryptu testowego, w dłuższej perspektywie testowanie automatyczne staje się bardzo opłacalne. Możliwość powtarzania testów bez dodatkowych kosztów zasobów testera znacznie ułatwia testowanie i uzyskiwanie wyników.