Zaznacz stronę
Powrót do newsów

User stories i rodzaje testów, czyli jak dostarczamy niezawodne oprogramowanie

3 lipca 2025

Współczesne podejście do wytwarzania oprogramowania opiera się na iteracyjnym i zwinnym modelu pracy, w którym kluczową rolę odgrywają tzw. user stories – opisy funkcjonalności z perspektywy użytkownika końcowego przygotowywane przez analityków biznesowo-systemowych. To właśnie one wyznaczają kierunek działań programistów i testerów w ramach poszczególnych sprintów.

Po zakończeniu prac programistycznych nad daną grupą user stories wystawiana jest nowa wersja systemu (build), która trafia na środowisko testowe. Do pracy przystępuje zespół testerów, którego zadaniem jest zweryfikowanie jakości dostarczonego rozwiązania. Testerzy dokładnie sprawdzają czy przygotowane funkcjonalności działają zgodnie z założeniami, są spójne, pozbawione błędów i odpowiadają oczekiwaniom użytkowników. Aby tak się stało, przeprowadzane są różne rodzaje testów.

Testy jednostkowe

Testy wewnętrzne systemu weryfikujące poprawność działania pojedynczych elementów (jednostek) systemu. Ich celem jest jak najszybsze wychwycenie błędu i jego poprawa. Testy te wykonywane są przez zespół programistów, który pracuje nad implementacją systemu.

Wraz z każdą implementowaną user story przygotowywane są testy jednostkowe, które pokrywają kluczowe funkcjonalności. Następnie podczas tworzenia nowego builda testy są uruchamiane dzięki czemu błędy są wychwytywane bardzo szybko, jeszcze przed wystawieniem wersji testowej. Po wykryciu błędu – funkcjonalność wraca do poprawy do programisty odpowiedzialnego za jej implementację.

Testy funkcjonalne

Testy wewnętrzne systemu sprawdzające wymagania funkcjonalne, niefunkcjonalne oraz jakość danych. Ich celem jest przetestowanie pojedynczych funkcji oraz ścieżek wiodących przez kilka funkcji.

Testy te wykonywane są przez niezależny zespół testerów, w skład którego nie wchodzą osoby, które implementowały funkcjonalności systemu. Testy funkcjonalne są realizowane na wszystkich etapach wytwarzania systemu. W każdym sprincie po ustaleniu jakie user stories są w ramach niego realizowane cały zespół przystępuje do pracy. Programiści po wykonaniu danego zadania informują o tym poprzez ustawienie odpowiedniego statusu. Dla zadań, które zostaną oznaczone jako gotowe do testów przeprowadzane są testy funkcjonalne.

Testy funkcjonalne w pierwszej fazie cyklu przeprowadzane są w sposób manualny. Następnie jeśli w oprogramowaniu nie zostały stwierdzone żadne błędy blokujące, w kolejnym sprincie testerzy przystępują do pisania skryptów testowych.

Raz napisane skrypty utrzymywane są wraz z rozwijającym się oprogramowaniem tak, by w kolejnych sprintach można było przeprowadzać testy regresji w sposób automatyczny.

Testy integracyjne

Testy integracyjne sprawdzają interfejsy pomiędzy modułami, interakcje z innymi częściami systemu oraz interfejsy pomiędzy systemami. Na tym etapie testów, niezależny zespół testerów koncentruje się na samej integracji. Na przykład, gdy weryfikowana jest integracja pomiędzy tworzonymi aplikacjami – testerzy skupiają się na testowaniu komunikacji pomiędzy tymi systemami, a nie ich funkcjonalnością.

Im większy jest zakres integracji, tym trudniejsze bywa określenie, który moduł lub system zawiera defekt. Zwiększa to ryzyko w projekcie, wydłużając czas rozwiązywania problemów. Dlatego też, aby usprawnić pracę w obszarze testów integracji, tam gdzie to możliwe testerzy w 3Soft korzystają z narzędzi SOAP UI lub Postman, dzięki którym mogą wprost wywoływać poszczególne metody lub przesłać komunikaty, nie robiąc tego z poziomu aplikacji. Mając pewność, że w wyniku przesłanych zapytań otrzymują prawidłowe dane testerzy mogą sprawdzić, czy dane te są w sposób poprawny wyświetlane w implementowanym systemie (czyli powrócić do testów funkcjonalnych aplikacji).

Testy wydajnościowe

Testy wewnętrzne systemu przeprowadzane w celu oceny stopnia spełnienia wymagań wydajnościowych przez system.

Na dedykowanym środowisku testowym wykonywane są testy wydajności. Następnie, po otrzymaniu pozytywnych wyników ponownie przeprowadzone są testy wydajności – tym razem w środowisku produkcyjnym. Po zakończeniu tych testów baza danych jest czyszczona i możliwe jest wrodzenie produkcyjne aplikacji.

Testy bezpieczeństwa

Testy wewnętrzne systemu przeprowadzane w celu określenia bezpieczeństwa oprogramowania. W 3Soft testy przeprowadzane są przy użyciu narzędzia Zed Attack Proxy. Dzięki współpracy wszystkich członków zespołu możliwe jest szerokie przetestowanie aplikacji pod względem bezpieczeństwa.

Testy regresji

Testy wewnętrzne systemu przeprowadzane po wykonanych modyfikacjach oraz po zmianach środowiska. Zakres testów regresji dobierany jest w zależności od zakresu realizowanych zmian.Testy regresji, podobnie jak testy funkcjonalne, wykonywane są przez niezależny zespół testerów. Testy regresji wykonywane są w trakcie trwania procesu testowego, wraz z każdą nową wersją, wystawioną do testów wewnętrznych. Aby testerzy mogli skupić się głównie na testach nowych funkcjonalności – testy regresji są automatyzowane. O testach manualnych i automatycznych więcej dowiesz się z naszego artykułu na ten temat.

Testowanie to dostarczanie dopracowanego rozwiązania

Proces testowania oprogramowania to znacznie więcej niż tylko poszukiwanie błędów. To systematyczna weryfikacja, czy każda funkcjonalność – opisana wcześniej w formie user story – faktycznie odpowiada potrzebom użytkowników i została poprawnie zaimplementowana. Dzięki zaangażowaniu zespołu testerskiego na każdym etapie wytwarzania oprogramowania możliwe jest szybkie wychwycenie niezgodności, a tym samym – dostarczanie stabilnego, dopracowanego produktu, który spełnia założone wymagania i oczekiwania odbiorców końcowych.

Zainteresował Cię temat testów oprogramowania? Z naszego artykułu dowiedz się więcej o tym, jak obecnie Sztuczna Inteligencja wspiera testerów w ich pracy.