automatyczne-testy-aplikacji-mobilnych-cz-1

Automatyczne testy aplikacji mobilnych cz.1

Testy są nieodłącznym elementem wytwarzania oprogramowania. Wykonuje się je przede wszystkim w celu znalezienia błędów, sprawdzania kompatybilności i stabilności aplikacji. Dopóki aplikacja jest mała, wszystkie testy jest w stanie wykonywać tester, ale z czasem konieczna jest automatyzacja – w której tematykę chciałbym dziś Was wprowadzić.

A na co to komu?

Zacznę od trochę abstrakcyjnej historii. Wyobraźcie sobie, że pracujecie w fabryce i składacie samochody. Jest dokładnie jeden sposób, który gwarantuje, że samochód zostanie złożony poprawnie, a jego konstrukcja będzie spełniała wszystkie normy bezpieczeństwa i wytrzymałości. Teraz pomyślcie sobie, że cały proces obsługujecie sami… a teraz powtórzcie to sto razy. Nawet jeśli będzie to Wasza pasja i myślicie sobie: „Praca może i monotonna, ale przecież składam Lamborghini”, po pewnym czasie popadnięcie w rutynę, a to może generować niedopatrzenie, a często poważne błędy. I dokładnie to samo dzieje się z testami. Testy automatyczne oprócz ograniczenia kosztów w dłuższej perspektywie – ponieważ nie trzeba zatrudniać tylu testerów – pozwalają na wykonywanie wielokrotnie tych samych testów zawsze z tą samą dokładnością.

Że co, że JA nie przetestuję?

W przypadku programistów z reguły jest wręcz na odwrót (wiem po sobie). W X-Coding nasi programiści piszą testy jednostkowe w kodzie, aby zapewnić jak najwyższą jakość. Takie testy sprawdzają działanie aplikacji na najniższym poziomie (na poziomie metod), a uruchamiane automatycznie umożliwiają znalezienie błędów bardzo szybko. Niestety nie da się nimi sprawdzić wszystkiego, dlatego potrzebni są niezależni sędziowie, tacy jak testerzy oraz „bezduszne” automaty. Testerzy są niezastąpieni w przypadku testów UX, które oprócz mierzenia statystyk (np. ile kliknięć potrzeba, żeby zrealizować zamówienie) wymagają subiektywnej oceny działania aplikacji.

A jakie możliwości i zastosowania mają testy automatyczne?

Spore. Przede wszystkim praktycznie w całości można zautomatyzować:

  • Testy zaufania, które sprawdzają, czy aplikacja umożliwia np. realizację zamówienia w przypadku sklepu internetowego,
  • Stress testy – badające stabilność aplikacji,
  • Testy regresji – ssprawdzające, czy wprowadzenie nowej funkcjonalności nie wpłynęło na stare,
  • Testy kompatybilności – dzięki którym możemy szybko i dokładnie, sprawdzić jak aplikacja uruchamia się w zależności od wersji systemu, rozdzielczości czy geometrii ekranu. I najważniejsze — w celu spełnienia norm jakości, możemy sprawdzić ile czasu uruchamia się aplikacja, oraz jej poszczególne podstrony, w zależności od parametrów smartfona.

Podsumowanie

Wraz z rozwojem algorytmów sztucznej inteligencji uda się zautomatyzować prawie wszystkie rodzaje testów. Nie oznacza to, że zawód testera odejdzie w niepamięć. Ktoś nadal będzie musiał tworzyć testy. No i kto będzie testował testy jak nie testerzy? Mam nadzieję, że trochę zaciekawiłem Was kwestią testów automatycznych. Przy okazji kolejnego wpisu chciałbym zagłębić się w technikalia. Liczę na wasze komentarze i uwagi.