W obliczu zwiększającej się roli automatyzacji znaczny odsetek przedsiębiorstw stara się przekształcić dotychczas manualne testowanie na automatyczne, by zwiększyć produktywność i stopień pokrycia testowego. Jednym z kluczowych kroków, jakie podejmują, jest wybranie odpowiednich przypadków testowych i rzetelne określenie zwrotu z inwestycji (ROI; Return On Investment).

Zanim więc przystąpisz Drogi Czytelniku do automatyzacji testów, zastanów się, jakie korzyści będziesz w stanie uzyskać po uwzględnieniu czasu, wysiłku i zasobów zainwestowanych w ten proces. Niemożliwe jest zautomatyzowanie wszystkiego, dlatego ważne jest ustalenie, które przypadki testowe powinny być najpierw zautomatyzowane, ponieważ zautomatyzowanie ich będzie najbardziej skuteczne i efektywne. Tylko dlatego, że można coś zautomatyzować, to wcale nie znaczy, że powinno się to robić, jak napisał w swoim artykule How to Choose Which Tests to Automate? Amir Ghahrai.

Po co automatyzować testy

Automatyzacja nie wyklucza testów manualnych. Co więcej; jest do nich komplementarna. Podobnie, jak w przypadku testów manualnych, automatyczne wymagają strategii poprzedzonej odpowiednim planowaniem, procesem monitorowania i kontroli. Zaimplementowana poprawnie automatyzacja może stać się sporym atutem dla zespołu, projektu i ostatecznie dla całości firmy, jak twierdzi Shillpy Chatterjee Roy.

Jeśli chcecie dowiedzieć się jakie problemy można napotkać w trakcie wdrażania automatyzacji, zajrzyjcie do naszego starszego wpisu podzielonego na część Iczęść II

Automatyzacja testowania oprogramowania ma szereg zalet, o których mógłby powstać (i może powstanie 😉 ) oddzielny wpis. W tym miejscu przedstawimy je jednak w miarę zwięźle, żeby nakreślić tylko ogólny obraz sytuacji. Zalety testów automatycznych:

  • Świetnie sprawdzają się przy wykonywaniu zadań rutynowych, powtarzalnych
  • Są przydatne w przygotowaniu danych testowych
  • Pomagają przeprowadzić przypadki testowe wymagające złożonej logiki biznesowej
  • Dobrze sprawdzają się przy wykonywaniu analiz wieloplatformowych (cross-platform)
  • Są świetne do wykonywania przypadków testowych, które sprawiają trudności w testach manualnych
  • Przydają się, gdy liczba iteracji wykonań przypadków testowych nie jest znana
  • Skracają czas potrzebny na wypuszczenie produktu na rynek
  • Poprawiają jakość testowania
  • Zwalniają z części obowiązków inżynierów QA i testerów, którzy dzięki temu mogą skoncentrować się na zadaniach wymagających podejścia manualnego i unikatowych ludzkich umiejętności

Odpowiednio dobrane automaty powinny działać, jako narzędzia wspierające dla testów manualnych. Automatyzacja to bardzo dobry sposób na zwiększenie skuteczności, wydajności i stopnia pokrycia testowego. Pozwala nie tylko zaoszczędzić czas, ale także poprawić dokładność, ponieważ powtarzające się zadania wykonywane ręcznie są podatne na ludzkie błędy i mogą być czasochłonne.

Kalkulacja kalkulator zwrot z inwestycji kartka długopis

Mity a rzeczywistość

Zanim przejdziemy do omówienia kandydatów do automatyzacji, obalimy pewne mity, które dość często pojawiają się w sieci na blogach i forach związanych z testowaniem, a które zebrało przedsiębiorstwo Oracle:

Mit 1 – Testy automatyczne zawsze skutkują poprawą jakości oprogramowania WRONG! Tylko dobrze zaprojektowane testy, rzetelnie przeprowadzone wywołują takie skutki.

Mit 2 – Każdy projekt dotyczący rozwoju aplikacji i każdy zespół testerski może korzystać z narzędzi do automatyzacji testów WRONG! Może i może, ale czy musi? W każdym wypadku decydowania się na automaty należy rozważyć czas, wysiłek i zasoby, które trzeba będzie zainwestować w ten proces i przekalkulować jak bardzo inwestycja jest opłacalna dla firmy czy projektu.

Mit 3 – Automatyzacja testowania to „być albo nie być”, to „wszystko albo nic” WRONG! Automaty to wsparcie dla testów manualnych. Nie decydują o istnieniu lub upadku firmy na rynku.

Rzeczywistości automatyzacji testów:

  • Zautomatyzowanie procesu testowego wymaga większych początkowych nakładów finansowych, ale może skutkować wyższym ROI
  • Umiejętności i trening są wymagane do tworzenia wydajnych automatów
  • Każde przedsiębiorstwo, który wykonuje testy automatyczne, wciąż wykorzystuje także testy manualne

Według Oracle fakty są takie, że 75% testów wciąż wykonywana jest manualnie.

Wybrać testy automatyczne czy manualne królikJak widać na powyższym gifie, króliki bez dłuższego zastanowienia wybierają testy manualne.

Kiedy zautomatyzowanie procesu testowego będzie lepszym rozwiązaniem?

Jednym z najbardziej podstawowych błędów, jakie popełniają testerzy, jest wybór błędnych przypadków testowych do automatyzacji. Nie wystarczy wybrać jakiegokolwiek zestawu testów. Należy dokładnie przeanalizować przypadki testowe i wybrać najlepszych kandydatów do automatyzacji biorąc pod uwagę najważniejszy dla nas czynnik – ROI. Po pierwsze powinniśmy dowiedzieć się i zrozumieć, w jaki sposób otrzymać wyższy, dodatni zwrot z inwestycji.

Niestety z przykrością musimy was poinformować, że na ten moment nie istnieje jedna standardowa procedura rzetelnie określająca poprawność przypadków testowych poddawanych automatyzacji. Wszystko zależy od kontekstu, czyli od testowanej aplikacji czy oprogramowania, zespołu i jego wiedzy, zasobów technicznych i finansowych, etc.

Można jednak pokusić się o wyróżnienie paru cech czy sytuacji, które powtarzają się w przypadku automatów i wyznaczają kategorie myślowe, które mogą posłużyć, jako wskazówki w wyborze kolejnych obszarów do automatyzacji:

  • Testy powtarzające się, które przeprowadzane są na różnych wersjach/kompilacjach aplikacji
  • Testy, które mają tendencję do powodowania licznych pomyłek w trakcie ich przeprowadzania
  • Testy, które wymagają wielu rozbudowanych baz danych i te obejmujące wprowadzanie dużych ilości danych, na przykład wypełnianie bardzo długich formularzy
  • Testy, które wykonują ten sam przepływ pracy, ale wykorzystują różne dane dla swoich danych wejściowych dla każdego testu
  • Testy, które są niemożliwe lub trudne do przeprowadzenia ręcznego
  • Testy uruchamiane na różnych sprzętach i oprogramowaniach, w różnych konfiguracjach
  • Testy, które wymagają dużo wysiłku i pochłaniają dużo czasu, gdy są wykonywane ręcznie
  • Testy, podczas których należy przechwytywać obrazy, aby udowodnić, że aplikacja zachowała się zgodnie z oczekiwaniami lub sprawdzić, czy wiele stron internetowych wygląda tak samo w wielu przeglądarkach

Świnka morska wybór testów cavia domowaŚwinki morskie pozostają niezdecydowane, pomimo małej zachęty…

Sukces w automatyzacji testów wymaga starannego planowania i projektowania. Warto zacząć od utworzenia planu automatyzacji. Pozwala to zidentyfikować początkowy zestaw testów do automatyzacji i służy jako przewodnik dla przyszłych testów. Najpierw zdefiniuj cel automatyzacji i określ rodzaje testów do zautomatyzowania. Im bardziej powtarzalny jest przebieg procesu testowego, tym lepiej dla automatyzacji. Należy także pamiętać, że testy nie są jedynymi kandydatami do automatyzacji. Zadania takie jak konfigurowanie lub tworzenie danych testowych do ręcznego testowania eksploracyjnego są również świetnymi kandydatami do automatyzacji, jak czytamy na stronie Testing Excellence.

Testy do automatyzacji

W jakich przypadkach testowanie manualne będzie lepszym rozwiązaniem?

Jedną z niezłomnych reguł w ocenianiu opłacalności automatyzacji, jest sprawdzenie, czy funkcjonalność, którą chcesz przetestować, szybko się zmienia. Jeśli tak, skrypty automatyzacji testów będą nietrwałe, ponieważ sposób testowania kodu będzie ciągle ulegał zmianie. Kiedyy stale aktualizujesz niektóre skrypty automatyzacji testów dla określonej części bazy kodów, możesz sprawdzić, ile czasu kosztują te aktualizacje. Gdy zasięg tych aktualizacji nie ma końca, można równie dobrze przetestować te komponenty ręcznie.

Sytuacje nie automatyzować

Powyższe wskazówki mogą pomóc w ustaleniu, które testy należy zautomatyzować, a które byłyby zbyt kosztowne. Jednak każdy projekt jest wyjątkowy w swoich wyzwaniach, dlatego zawsze należy przeprowadzić retrospekcję, aby ocenić ROI wszystkich projektów automatyzacji.

Korzyści płynące z automatyzacji ściśle powiązane są z tym, ile razy dany test można powtórzyć, jak podkreśla autor wpisu Automated Testing Best Practices and Tips. Testy, które przeprowadzane są tylko kilka razy, są lepsze do manualnego testowania. Dobrymi kandydatami są natomiast te testy, które są często uruchamiane i wymagają dużej ilości danych do wykonania samego działania.

10
  •  
    6
    Shares
  • 6
  •  
  •  
  •