Tydzień temu mieliście okazję przeczytać pierwszą część tekstu o problemach z automatyzacją testów. W tym tygodniu kontynuujemy ten wątek. Opisaliśmy trzy kolejne trudności, które mogą pojawić się przy wdrażaniu automatów do projektu.

Współpraca komunikacja tablica osoby karteczki ściana
Współpraca i komunikacja

Dobra współpraca i komunikacja w zespole to wyzwanie nie tylko w przypadku zespołów wdrażających testy automatyczne, ale i tych zajmujących się testami manualnymi. Jednak w przypadku tych pierwszych sprawa się komplikuje, ponieważ sytuacja wymaga większej współpracy i częstszej komunikacji. Faktycznie, automatyzacja testów to inwestycja nierzadko długoterminowa. Dlatego aby zaangażować wszystkich członków zespołu w automatyzację, trzeba poświęcić dużo czasu i wysiłku na komunikację, dostarczenie wiedzy i danych.

Ponadto, by mieć jasno sprecyzowane cele i zamiary, musimy zwracać uwagę na to, by każdy z członków zespołu posiadał aktualne informacje o projekcie, by każdy był dostatecznie dobrze poinformowany. W przeciwieństwie do testerów manualnych automatyczni nie tylko rozmawiają z programistami, biznesami analitycznymi, menedżerami projektu o planach, możliwościach i ramach czasowych, ale też dyskutują, co powinno, a co nie powinno zostać zautomatyzowane z testerami manualnymi, programistami i architektami technicznymi. Co więcej, trzeba przedstawić analizę kosztów i zwrotu inwestycji (ROI) wyższej kadrze zarządzającej. Bez wsparcia zespołu zarządzającego cała próba automatyzacji będzie zagrożona. W związku z tym to, jak współpracujemy i dogadujemy się z innymi zespołami, jest dużym wyzwaniem. Nieskuteczna komunikacja i nieefektywna współpraca mogą z łatwością przekształcić doświadczenie automatyzacji testów w nieprzyjemne doświadczenie.

By sprawnie i skutecznie przeprowadzić proces automatyzacji potrzebny jest zaangażowany zespół. Automatyzacja opiera się na danych i doświadczeniach z przeszłości, a nawet na sprawdzeniu koncepcji, które tylko twój zespół może dostarczyć. Dlatego komunikacja jest tak ważna.

Przed rozpoczęciem procesu automatyzacji niezbędne jest także solidne wsparcie kadry zarządzającej projektem. Należy stworzyć takie środowisko pracy, w którym członkowie projektu mogą się łatwo ze sobą komunikować, by dostarczyć wyniki testów na czas i przy jak najmniejszym ryzyku.

Odpowiednie podejście

Automaty nie tylko wymagają odpowiedniego narzędzia do tworzenia skryptów, ale również odpowiedniego nastawienia do testowania. Jest to jednym z największych wyzwań dla inżynierów automatów. Ze strony technicznej istotne jest, by testerzy znaleźli odpowiednie podejście do wykonania zadania. By to osiągnąć, powinni odpowiedzieć sobie na parę kluczowych pytań:

  • Jak zmniejszyć nakłady zarówno na implementację automatów, jak i ich utrzymanie?
  • Jak długą żywotność będą miały zestawy testów automatycznych?
  • W jaki sposób generowane są przydatne raporty z testów oraz dane?

Ponadto, należy wziąć pod uwagę, iż popularność metodyk zwinnych w ostatnich latach wpływa na to, w jaki sposób zmienia się np. aplikacja. W przypadku Agile testowana aplikacja zmienia się wraz z kolejnymi iteracjami. Dlatego ważne jest, by wiedzieć, jak zaprojektować i zaimplementować automaty, aby w późniejszym czasie być na bieżąco z odpowiednimi działaniami konserwacyjnymi. W idealnej sytuacji mamy automatyczne rozwiązanie, które potrafi wykryć te problemy, automatycznie aktualizować i przejść przez retesty bez naszej interwencji.

Projektowanie testów automatycznych to zadanie informatyczne. Według Radosława Smilgina nie uda się zbudować dobrego produktu informatycznego, a zatem automatów, bez:

  • Podejścia projektowego i zarządzania zakresem, czasem oraz budżetem
  • Wsparcia ekspertów oraz pomocy junior programistów ds. automatyzacji
  • Definiowania dobrej specyfikacji albo przynajmniej komentarzy w kodzie i instrukcji posługiwania się frameworkiem
  • Przestrzegania dobrych praktyk kodowania i zalecanych wzorców projektowych
Start meta rozpoczęcie zakończenie ściana
Rozpoczęcie i zakończenie

Wiedza o tym, w którym miejscu projektu rozpocząć testy i po jakim czasie je zakończyć, to spora umiejętność.  Jednocześnie wszyscy menadżerowie testów powinni ją posiadać, by testy wypadły jak najbardziej efektywnie i rzetelnie. Testów automatycznych nie można rozpocząć zbyt wcześnie. Z zasady testy automatyczne wykonuje się tylko dla obszarów ustabilizowanych i nienarażonym na duże modyfikacje. Przeprowadzenie testów automatycznych zbyt wcześnie sprawi, że wartość durability testu (próba trwałości) spadnie do zera.

By prawidłowo zaimplementować automaty, należy cały czas mieć świadomość ich celu. Rzadko która firma wie, dlaczego automatyzuje. Zdarza się, że trafi się ktoś, znający odpowiedź na pytanie o cel automatów, ale zwykle cel taki jest określony w sposób, który uniemożliwia jego osiągnięcie. Wśród popularniejszych odpowiedzi na pytanie o cel automatyzacji, jakie w przywołanym już artykule wymienia Radosław Smilgin, pojawiają się:

  • Zwolnienie testerów manualnych
  • Znalezienie większej liczby awarii
  • Osiągnięcie lepszej jakości

Czy wyczerpaliśmy temat problemów z testami automatycznymi? Oczywiście nie! Wymieniliśmy i opisaliśmy tylko te, które naszym zdaniem pojawiają się najczęściej. Każdy zespół jest inny, więc w każdym zespole pojawią się różne trudności. Niektóre z nich mogą pokryć się z tymi, które przedstawiliśmy, ale niektóre z pewnością pozostaną charakterystyczne dla tego konkretnego środowiska. Jeśli nasze wpisy ułatwią wam pokonanie przynajmniej niektórych trudności związanych ze wdrażaniem automatów, to nasz cel zostanie osiągnięty 😉 .

5
  •  
    2
    Shares
  • 2
  •  
  •  
  •