W środowisku IT istnieje przeświadczenie o tym, że testy regresyjne są niepotrzebnym działaniem. W końcu, jeśli coś raz zostało sprawdzone nie musi być sprawdzane ponownie. Dla wielu jest to nie tylko strata czasu, ale przed wszystkim pieniędzy. Czym właściwie są testy regresyjne i dlaczego warto z nich korzystać?

 

Jedna z definicji mówi o tym, że są to:

 

„(…)testy wykonywane w celu znalezienia potencjalnych defektów, które mogą wystąpić z powodu wprowadzanych zmian w oprogramowaniu”.

 

To oznacza, że klient nie otrzyma oprogramowania, które zawierałoby błędy we wcześniej sprawdzonych i dostarczonych obszarach. Jak się okazuje, w projektach realizowanych inkrementalnie jest to najczęściej krytyczny punkt.

 

Wyobraźmy sobie taką sytuację. Naszym zadaniem jest dostarczenie dobrze działającej aplikacji dla jednego z banków. Po jakimś czasie dostarczamy produkt, który działa bez zarzutu. Zarówno klient jak i klienci samego banku są zadowoleni z aplikacji, jej funkcji i przejrzystości. Po pewnym czasie ten sam bank zamawia jednak dodatkową funkcjonalność do tego samego produktu. Oczywiście w firmie panuje euforia, a managerowie są zadowoleni z kolejnego zlecenia. Nie zapominajmy jednak o tym, że właśnie teraz powinniśmy zadbać o testy regresywne.

Na początku powinniśmy skupić się na przeprowadzeniu analizy, która wykaże, czy to co klient zamówił nie będzie w żaden sposób kolidowało z tym, co już otrzymał. Podczas aktualizacji już istniejącego systemu musimy zapewnić go, że istniejąca funkcjonalność nie zostanie uszkodzona przez nową implementację.

 

Oczywiście mówimy tutaj o aktualizacji, która przenika lub styka się z już istniejącą funkcjonalnością. Dlatego, aby zapewnić siebie i jednocześnie samego klienta, że wcześniej napisana funkcjonalność nie została naruszona, musimy przystąpić do zdefiniowania testów regresyjnych.

 

Tester wraz z osobą techniczną powinni wyspecyfikować nowe testy – tworzone na podstawie już istniejących. Dzięki temu znacznie łatwiej jest wybrać oraz sprawdzić obszary, które przenikają się w nowej implementacji. Jeśli jednak z góry wiemy, że będziemy nowe funkcjonalności dostarczać w sposób inkrementalny, wtedy warto wybrać te testy, które powinny lub mogą wchodzić w skład testów regresyjnych. Takie podejście skróci czas ich wyspecyfikowania w późniejszym czasie.

 

Niestety, najczęściej spotykamy się z sytuacją, kiedy to na testy przeznacza się zbyt mało czasu lub kiedy wykonuje się je na ostatnią chwilę. Takie podejście powoduje, że w końcu to właśnie na testerze skupia się cała uwaga, w tym również klienta. Powodem jest czas, który powoduje wydłużanie się projektu. Dodatkowo, zdarza się, że wyspecyfikowanych testów regresyjnych jest zbyt dużo, aby móc przystąpić do pracy od razu po testach pokrywających nową funkcjonalność.

 

W takiej sytuacji należy użyć techniki analizy ryzyka i wyspecyfikować tę grupę testów, która jest krytyczna z punktu widzenia działającej już funkcjonalności. Choć nawet wtedy <strong. Kolejną techniką, jaką można zastosować, jest ustawienie priorytetu na każdym z testów regresyjnych. Technika ta polega ona na określeniu ważności każdego z testów. Tester wykonuje testy zgodnie z ich priorytetem w czasie, który był mu dany na ich wykonanie. Mamy wtedy pewność że najbardziej krytyczne testy zostały wykonane; natomiast te z niższym priorytetem, których nie udało się wykonać w dostępnym czasie, należy umieścić w specjalnym raporcie, zawierającym informacje dotyczące tego, jakie testy nie zostały wykonane.

Oczywiście jeśli w projekcie posiadamy jeszcze pewną sumę budżetu to dla pewności rekomendowałbym wykonanie reszty testów regresyjnych po tym, jak klient otrzymał już nową wersję oprogramowania. Do dałoby nam później pewność, że w dostawie nie było wprowadzonej regresji w już istniejącej funkcji.

 

Niektóre osoby mogą pokusić się o stwierdzenie, że przedstawiam sytuację wyłącznie z pozycji jednostronnej. Nie chciałbym zostać źle zrozumiany, dlatego podkreślam, że presja czasu spoczywa na każdej jednostce, która zaangażowana jest w projekt. Niekiedy, już na samym początku ramy czasowe narzucone z góry są tak wąskie, że nie ma czasu na błędy czy ewentualne poprawki. Zdarza się również, że do, i tak rozdmuchanego planu są dorzucane inne funkcje, równie ważne z punktu widzenia klienta. W takich projektach pracuje się bardzo ciężko, gdyż do presji czasu dochodzi frustracja, jeżeli zespół nie jest zgrany czy odpowiednio zarządzany. Wtedy trudno mówić o ty, aby wszystko zostało zamknięte we wskazanych ramach czasowych. Wkradają się błędy i przerzuca się odpowiedzialność na kolejne osoby.

 

Dlatego tak ważnym jest uwzględnianie czasu na poszczególne zadania realizowane w projektach i nadawanie im realnych ram czasowych lub priorytetów. Podkreślam to, ponieważ testy regresyjne należą do tego typu działań, które z założenia zajmują, po prostu, sporo czasu.

_Wszystkie wpisy z tej kategorii

blogpost
Artykuły

Jak TT PSC zaczęło zarządzać przepływem pracowników i powierzchnią biurową w trzy dni?

W ostatnich miesiącach w zasadzie każda organizacja musiała postawić sobie co najmniej kilka oczywistych wydawałoby się, jednak niezwykle istotnych w nowej sytuacji pytań. Jak zadbać o bezpieczeństwo ludzi? Jak zminimalizować ryzyko zakażeń bez ograniczania swobody pracownika? Jak zapewnić działanie firmy w nowych warunkach?

Czytaj więcej
blogpost
Artykuły

Podpis elektroniczny – w jaki sposób rozwiązuje współczesne problemy firm?

Wzrost popularności podpisów elektronicznych nabrał tempa – prognozuje się, że rynek tego typu rozwiązań będzie rósł średnio o ponad 20% rocznie osiągając wartość blisko 7 mld USD w 2025r. Rynek rynkiem, ale czy faktycznie jest to warte zachodu?

Czytaj więcej
blogpost
Artykuły

Jak skutecznie przeprowadzić transformację cyfrową w swojej firmie?

Transformacja cyfrowa coraz wyraźniej manifestuje swoja obecność w niemal każdym biznesie, co przekłada się na zmiany w stylu zarządzania i organizacji pracy. Oczywiście gdzieś w tle w dalszym ciągu wybrzmiewa echo dyskusji, czy i na ile całe to zamieszanie z digitalizacją jest ważne. Nie mniej coraz częściej rozmawiamy o tym, jak wdrożyć rozwiązania automatyzujące procesy w firmie, niż czy to robić w ogóle.

Czytaj więcej
blogpost
Artykuły

Czy praca testera prowadzi do oszczędności?

Z niewiadomych powodów utarło się, że testowanie w trakcie tworzenia oprogramowania nie jest istotnym elementem projektu. Niestety, takie podejście może narazić firmę na dużo większe koszty niż pierwotnie zakładano. Dlaczego? Ponieważ jest to swego rodzaju bomba z opóźnionym zapłonem. Okazuje się, że na samym końcu oprogramowanie zawiera takie błędy, których naprawa wydłuża cały proces wydania […]

Czytaj więcej
blogpost
Artykuły

Teoria a rzeczywistość – jak to jest z jakością i testowaniem oprogramowania?

Na pewnym poziomie wszyscy znamy teorie, bo to ona definiuje nasze doświadczenie, uczy procesów i pomaga w rozmowach technicznych. Ale czy na pewno teoria opowiadająca o tym jak wszystko pięknie działa sprawdza się w życiu codziennym? Czy firmy, które mają ustalone procesy wpisujące się w teorie książkowe nie mają problemów z prowadzeniem projektów i jakością […]

Czytaj więcej
blogpost
Artykuły

Microserwisy na frontendzie

Jak można rozwiązać problem z organizacją aplikacji webowej, gdy monolityczne podejście jest niemożliwe? Dlaczego warto wrócić do renderowania po stronie serwera? Czy mikroserwisy na frontendzie mają jakiś sens? W tym artykule pokażę, jak można podejść do tematu rozdziału aplikacji webowych na mniejsze fragmenty. Wstęp Architektura mikroserwisów szturmem zdobywa pozycję w projektach związanych ze skalowalnymi rozwiązaniami […]

Czytaj więcej

Zostańmy w kontakcie

Skontaktuj się