Od testowania do monitoringu jakości – wyzwania Continuous Testing

Prelegent: Michał Błaszak

Podejścia zwinne oparte są o zmiany – metamorfozę w wytwarzaniu i zarządzaniu operacyjnym (ludzie, procesy i technologie), umożliwiającą dostarczanie innowacyjnego oprogramowania tak szybko, jak to możliwe. Pomimo tych wszystkich przekształceń, jeden element wydaje się niezachwiany. To proces testowania oprogramowania. Według różnych badań, 70%-88% organizacji przyjęło zwinne podejście do wytwarzania oprogramowania, podczas gdy zaledwie 26%-30% z nich zaimplementowało na szeroką skalę automatyzację testów.

Innymi słowy, proces testowania zazwyczaj pozostaje w niezmienionej formie, mimo że organizacje inwestują mnóstwo czasu i pracy w transformację swojego procesu wytwórczego, by sprostał dzisiejszym i przyszłym potrzebom biznesowym. Większość narzędzi i procesów związanych z testowaniem, będących spuścizną po okresie przed przekształceniem, nie jest w stanie spełnić wymagań ciągłego testowania narzucanych przez podejście DevOps z kilku powodów:

  • Niezdolność do przesunięcia testowania „w lewo” – testy zwykle są wykonywane na koniec cyklu, gdy zakończona jest implementacja interfejsu użytkownika; poza tym brak wcześniejszych automatycznych testów API.
  • Testy są czasochłonne, więc rzadko są wykonywane w całości. Oznacza to brak pełnej informacji o wpływie zmian na wszystkie obszary systemu i na sposób, w jaki użytkownicy dotychczas postrzegali system.
  • Wysokie nakłady na utrzymanie, bowiem testy UI często wymagają znacznych przeróbek, aby odzwierciedlać nieustanne zmiany ze względu na dynamiczny proces wytwarzania. Automatyzacja w takim przypadku jest wyjątkowo pracochłonna i nierzadko zostaje porzucona.
  • Niestabilność środowisk testowych (spowodowana problemami z danymi testowymi, niedostępnością innych systemów itp.) zwykle powoduje opóźnienia, niekompletną realizację testów, fałszywe alarmy lub przeoczenia błędów, czy nieadekwatne wyniki, co uniemożliwia szybkie dostarczenie informacji o jakości systemu, tak we współczesnych podejściach niezbędne.

Aby umożliwić ciągłe testowanie, poziom automatyzacji powinien sięgać, a nawet przekraczać 85% wszystkich testów. Aby to osiągnąć, niezbędnych jest kilka zmian w podejściu do kontroli jakości:

  • Ograniczenie do minimum testów manualnych i zarządzanie pozostałymi z nich w formie odpowiednio dokumentowanych sesji testów eksploracyjnych, które można wykorzystać do jeszcze dalej idącej automatyzacji.
  • Oparcie testów o ryzyko biznesowe, aby zoptymalizować ilość testów i wdrożyć zautomatyzowane punkty decyzyjne.
  • Przesunięcie testów do warstwy API, gdzie to tylko możliwe.
  • Zintegrowanie testów funkcjonalnych w procesie Continuous Delivery.
  • Odpowiednie zarządzanie danymi testowymi oraz wykorzystanie wirtualizacji serwisów, umożliwiające powtarzalne i częste przeprowadzanie testów end-to-end.

Tagged under:

Program konferencji

TwitterFacebookLinkedInGoogle+