fbpx

Testowanie przyrostowe w testowaniu oprogramowania to metodologia, która pozwala zespołom na rozbijanie poszczególnych modułów, testowanie ich w izolacji i integrowanie ich etapami. Pomaga to we wczesnym wykrywaniu defektów, zmniejsza złożoność i zwiększa pokrycie testami.

W tym artykule przyjrzymy się bliżej testom przyrostowym, wyjaśnimy, czym one są i zbadamy różne typy, procesy, podejścia, narzędzia i inne elementy związane z tą przydatną metodologią.

 

Czym jest testowanie przyrostowe?

Czym jest testowanie przyrostowe w testowaniu oprogramowania?

Testowanie jest jednym z najważniejszych etapów cyklu życia oprogramowania (SDLC). Podobnie jak w przypadku SDLC, testowanie jest podzielone na różne logiczne etapy. Testowanie przyrostowe jest jednym z tych etapów i zazwyczaj odbywa się podczas
testy integracyjne
i zaraz po
testy jednostkowe
.

Testowanie przyrostowe to pragmatyczne podejście do testowania oprogramowania, które dzieli duże lub złożone programy na łatwe do zarządzania, małe fragmenty. Zamiast integrować i testować cały system oprogramowania naraz, testowanie przyrostowe analizuje moduły i wdraża etapowy proces weryfikacji.

Moduły oprogramowania są zazwyczaj samodzielnymi jednostkami kodu, które wykonują określone zadania lub funkcje. To, jak szczegółowe są te moduły, zależy od różnych czynników, takich jak praktyki kodowania, metodologie rozwoju, a nawet używany język programowania.

Moduły są testowane niezależnie podczas testów jednostkowych. Następnie, podczas testów integracyjnych, każdy moduł jest integrowany kawałek po kawałku – lub w przyrostach. Proces ten zapewnia, że każdy moduł działa dobrze razem. Aby jednak w pełni zweryfikować każdy moduł, testerzy muszą symulować komponenty, które nie zostały jeszcze zaimplementowane lub systemy zewnętrzne. Aby to zrobić, potrzebują pomocy stubów i sterowników.

 

Czym są stuby i sterowniki w testach przyrostowych?

Stuby i sterowniki są krytycznymi narzędziami do testowania oprogramowania. Te tymczasowe fragmenty kodu są wykorzystywane podczas testów integracyjnych, ponieważ oferują zespołom możliwość naśladowania zachowań i interfejsów różnych modułów lub komponentów.

1. Odcinki:

Stuby naśladują moduły, które nie zostały jeszcze opracowane i jako takie są niedostępne do testowania. Umożliwiają one testowanemu modułowi (MUT) wywoływanie niekompletnych modułów. W rezultacie MUT może być testowany w izolacji, nawet jeśli powiązane moduły nie są dostępne.

2. Kierowcy:

Z drugiej strony, sterowniki symulują zachowanie modułów, które wywołują MUT. W środowisku testowym sterowniki te mogą wysyłać dane testowe MUT. Ponownie, ułatwia to testowanie modułów w izolacji bez potrzeby zewnętrznych zależności.

Korzystanie ze stubów lub sterowników skraca czas programowania, poprawia jakość kodu i zwiększa produktywność zespołu. Jednak decyzja, którą z nich zastosować, zależy od tego, która metodologia testowania jest najbardziej odpowiednia. Rozszerzymy to w poniższej sekcji poświęconej różnym typom przyrostowych testów integracyjnych.

 

Różne rodzaje przyrostów

testy integracyjne

Różne rodzaje przyrostowych testów integracyjnych

Typy testów przyrostowych można ogólnie podzielić na trzy kategorie. Przyjrzyjmy się każdemu z nich.

 

1. Odgórna integracja przyrostowa

 

Odgórna integracja przyrostowa rozpoczyna się od testowania modułów najwyższego rzędu w systemie. Następnie stopniowo integruje i testuje moduły niższego rzędu.Istnieją dwa główne scenariusze, w których stosowana jest odgórna integracja przyrostowa. Są to:

  • Gdy system jest bardzo duży lub złożony
  • Gdy zespół programistów pracuje nad wieloma modułami w tym samym czasie.

Kroki dla odgórnej integracji przyrostowej

  • Identyfikacja krytycznych modułów
  • Tworzenie odgałęzień naśladujących moduły niższego rzędu
  • Opracowanie sterowników do interakcji z modułami wyższego rzędu w celu wysyłania do nich danych i interpretowania danych wyjściowych modułu.
  • Testy jednostkowe krytycznych modułów ze sterownikami i odgałęzieniami
  • Integracja modułów niższego rzędu i stopniowe zastępowanie odgałęzień rzeczywistymi implementacjami
  • Refaktoryzacja sterowników w celu dostosowania ich do nowych modułów
  • Powtarzaj, aż wszystkie moduły niższego rzędu zostaną zintegrowane i przetestowane.

 

2. Oddolna integracja przyrostowa

 

Oddolne integracje przyrostowe idą w przeciwnym kierunku. W tym podejściu testowane są moduły niższego rzędu (lub najmniej krytyczne) systemu, a moduły wyższego rzędu są stopniowo dodawane. Podejście to jest odpowiednie dla różnych scenariuszy, takich jak

  • W przypadku mniejszych systemów
  • Gdy system jest zmodularyzowany
  • W przypadku wątpliwości dotyczących dokładności lub kompletności odcinków.

Kroki dla oddolnej integracji przyrostowej

  • Identyfikacja modułów niższego rzędu
  • Testy jednostkowe modułów niższego rzędu w celu weryfikacji ich indywidualnej funkcjonalności
  • Opracowanie sterowników działających jako pośrednicy z modułami niższego rzędu
  • Twórz odgałęzienia, aby symulować zachowanie modułów wyższego rzędu
  • Integruj kolejne moduły, od niższego do wyższego rzędu, i stopniowo zastępuj stuby rzeczywistymi implementacjami.
  • Refaktoryzacja sterowników w celu dostosowania do nowych modułów
  • Powtarzaj, aż wszystkie moduły wyższego rzędu zostaną zintegrowane i przetestowane.

 

3. Funkcjonalna integracja przyrostowa

 

Przyrostowe testy integracyjne funkcji to kolejny powszechny rodzaj testów przyrostowych w testowaniu oprogramowania. Podczas gdy dwa poprzednie rodzaje koncentrowały się na modułach wyższego i niższego rzędu, funkcjonalne testowanie przyrostowe opiera się na funkcjonalności konkretnego modułu.

Funkcjonalna integracja przyrostowa jest stosowana w
metodologiach Agile/DevOps
i jest doskonałym wyborem dla aplikacji o złożonych zależnościach między modułami lub komponentami.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Kroki funkcjonalnej integracji przyrostowej

  • Identyfikacja poszczególnych modułów i komponentów z dobrze zdefiniowanymi interfejsami
  • Weryfikacja funkcjonalności każdego modułu za pomocą testów jednostkowych.
  • Zintegruj najbardziej minimalne podstawowe moduły systemu i zapewnij jego działanie
  • Stopniowe dodawanie pojedynczych modułów, testowanie funkcjonalności na każdym kroku.
  • Refaktoryzacja kodu po dodaniu każdego modułu
  • Po dodaniu wszystkich modułów przetestuj funkcjonalność i wydajność.

 

Plusy i minusy podejścia opartego na testach przyrostowych

wyzwania związane z testowaniem obciążenia i RPA

Do tej pory powinieneś już wiedzieć, dlaczego testowanie przyrostowe jest popularnym podejściem. Jednak, podobnie jak wszystkie metodologie testowania oprogramowania, ma ona swoje zalety i wady. Przyjrzyjmy się niektórym z tych zalet i wad.

 

Zalety podejścia opartego na testach przyrostowych

 

1. Elastyczność

Jak wszyscy programiści i testerzy oprogramowania wiedzą aż za dobrze, wymagania mogą się zmieniać i ewoluować podczas SDLC, czasami dość dramatycznie. Testowanie przyrostowe jest wystarczająco dynamiczne, aby umożliwić zespołom dostosowanie się w trakcie procesu testowania i uwzględnienie nowych planów i kierunków.

 

2. Wczesne wykrywanie błędów

Najlepszym momentem na wykrycie błędu lub usterki jest jak najwcześniejszy czas. Gdy programiści weryfikują poszczególne moduły, identyfikacja i naprawianie problemów jest znacznie łatwiejsze. Co więcej, pomaga to zmniejszyć prawdopodobieństwo wystąpienia poważnych problemów na późnym etapie rozwoju.

 

3. Prostota

Testowanie oprogramowania może być bardzo złożonym procesem. Jednym z najbardziej przekonujących aspektów testów przyrostowych jest sposób, w jaki dzielą one miasto testowe na wykonalne części. Zamiast zajmować się przytłaczającą złożonością, testerzy mogą skupić się na poszczególnych modułach, a nawet nadać im priorytety. Ta zaleta jest darem niebios dla dużych i złożonych aplikacji.

 

4. Niższe ryzyko regresji

Regresja to czasochłonne i złożone zagadnienie związane z tworzeniem oprogramowania. Testowanie przyrostowe może zmniejszyć częstotliwość i ryzyko spowodowane regresją, ponieważ pozwala zespołom testować moduły indywidualnie i radzić sobie z pojawiającymi się problemami. W przypadku użycia ze stałym
testowanie regresji
zespoły mogą zaoszczędzić wiele czasu i bólu serca.

 

5. Możliwości przekazywania informacji zwrotnych

Często pomijaną zaletą testów przyrostowych jest to, że pozwalają one zespołom na tworzenie prototypów i MVP. Stamtąd interesariusze i inwestorzy mogą ocenić podstawową funkcjonalność procesu i przekazać bezcenne informacje zwrotne. Taka sytuacja może zaoszczędzić wiele czasu i pieniędzy oraz doprowadzić do powstania solidniejszych produktów.

 

Wady podejścia opartego na testach przyrostowych

 

1. Kwestie integracji

Oddzielne testowanie modułów jest pożądane, ponieważ dzieli złożoną aplikację na łatwe do zarządzania fragmenty. Integracja tych modułów może jednak skutkować nowymi i nieoczekiwanymi błędami. W związku z tym przyrostowe podejście do testowania musi być starannie i celowo zaplanowane.

 

2. Złożoność zestawu testów

Przy wielu przypadkach testowych dla każdego modułu i ich wzajemnej interakcji, zestawy testów mogą stać się skomplikowane do śledzenia i zarządzania. W przypadku dużych i skomplikowanych aplikacji sprawia to, że dokładna dokumentacja lub narzędzia do zarządzania testami stają się koniecznością.

 

3. Więcej pracy

Testowanie monolityczne, choć bardziej złożone, wymaga mniej testów. Testując wiele modułów oddzielnie, testowanie przyrostowe wymaga więcej pracy. Jednak korzyści płynące z testowania przyrostowego, takie jak wczesne wykrywanie błędów, oznaczają, że dodatkowy wysiłek jest inwestycją oszczędzającą czas. Oczywiście,
automatyzacja testów oprogramowania
może pomóc zmniejszyć te wysiłki.

 

4. Zwiększone wymagania w zakresie zarządzania

Testowanie przyrostowe wymaga współpracy wielu zespołów. Na przykład zespoły programistów, testerów i DevOps będą musiały ze sobą współpracować. Sytuacja ta stwarza dodatkowe wymagania w zakresie zarządzania i wymaga dobrej komunikacji między tymi zespołami, aby upewnić się, że są one skoncentrowane i dążą do tych samych celów.

 

Przykład testowania przyrostowego

Przykład testowania przyrostowego

Być może najłatwiejszym sposobem na zrozumienie podejścia opartego na testach przyrostowych jest zastanowienie się nad przykładem. Oto prosta sytuacja, która pomoże zwizualizować ten proces.

 

1. Przykład testów przyrostowych dla aplikacji bankowości mobilnej

Scenariusz: Zespół tworzy aplikację bankowości mobilnej. Aplikacja składa się z kilku różnych modułów, które umożliwiają:

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

  • 2FA i biometryczna weryfikacja użytkownika
  • Przetwarzanie transakcji
  • Pulpit nawigacyjny do zarządzania danymi finansowymi

 

Cel: Zespół chce przetestować integrację każdego modułu i określić, czy dobrze ze sobą współpracują. W rezultacie stworzyli trzy przypadki testowe.

 

Przypadek testowy 1

W pierwszym przypadku testowym zespół chce upewnić się, że wprowadzając dane biometryczne lub hasło, użytkownik uzyska dostęp zarówno do przetwarzania transakcji, jak i pulpitu zarządzania danymi finansowymi.

Aplikacja przejdzie test, jeśli użytkownik będzie mógł wprowadzić swoje dane i uzyskać dostęp do transakcji.

 

Przypadek testowy 2

Kolejny przypadek testowy ma na celu sprawdzenie, jak aplikacja radzi sobie z nieautoryzowanymi transakcjami.

Aplikacja przejdzie test, jeśli próba dokonania nieautoryzowanej transakcji zostanie zablokowana, a aplikacja wyświetli komunikat o błędzie.

 

Przypadek testowy 3

Ostatni test integracyjny obejmuje sprawdzenie, czy aplikacja może dokonywać transakcji jednocześnie.

Aplikacja przejdzie test, jeśli użytkownik może rozpocząć transakcję i uzyskać dostęp do swoich informacji finansowych w tym samym czasie bez żadnych niespójności danych lub problemów.

 

Czy podejście testowania przyrostowego jest

to samo co testowanie przyrostowe?

Testy alfa vs testy beta

Nie. Testowanie przyrostowe odnosi się do statystycznej metody marketingowej, która jest prawdopodobnie najlepiej znana jako modelowanie atrybucji. Krótko mówiąc, pomaga zespołom marketingowym zrozumieć wpływ kampanii reklamowych, kanałów marketingowych lub konkretnych strategii.

Podczas gdy zainteresowanie tego rodzaju modelowaniem wzrosło w ostatnich latach dzięki „śmierci” plików cookie i danych stron trzecich, jedynym związkiem z testowaniem przyrostowym jest wspólne słowo.

 

3 najlepsze narzędzia do testowania przyrostowego

ZAPTEST RPA + pakiet do automatyzacji testów

#1. ZAPTEST

Oprócz zapewniania najwyższej klasy
RPA
ZAPTEST oferuje szereg narzędzi do automatyzacji testowania oprogramowania, które są idealne do testowania przyrostowego. Niektóre z funkcji obejmują:


  • Zarządzanie danymi testowymi
    : Zmniejszenie ilości czasu i wysiłku związanego z testowaniem przyrostowym poprzez umożliwienie zespołom ponownego wykorzystania danych testowych.
  • Nagrywanie i odtwarzanie skryptów: To niekodowane narzędzie pozwala zespołom nagrywać i wykonywać skrypty, oszczędzając mnóstwo czasu podczas testów przyrostowych.
  • Moduły testowe wielokrotnego użytku: ZAPTEST jest wysoce modułowy i pozwala zespołom na tworzenie i ponowne wykorzystywanie modułów testowych oraz znaczne skrócenie czasu procesu testowania.

Podsumowując, ZAPTEST oferuje potężny i zróżnicowany pakiet automatyzacji testów, który nadaje się do każdego rodzaju testów, w tym testów przyrostowych.

 

#2. Selen

Selenium to platforma automatyzacji testów o otwartym kodzie źródłowym, która została stworzona w celu ułatwienia testowania aplikacji mobilnych. Narzędzia obsługują kilka platform mobilnych (Android, iOS, Windows) i wykorzystują stuby i sterowniki do symulacji modułów.

 

#3. Testsigma

Testsigma to oparta na chmurze platforma do automatyzacji testów. Może być używany do testowania aplikacji internetowych i mobilnych i nadaje się do testowania przyrostowego dzięki bezkodowemu tworzeniu testów i integracji z potokami CI / CD.

 

Końcowe przemyślenia

Testowanie przyrostowe w testowaniu oprogramowania jest ważną częścią testów integracyjnych. Pozwala to zespołom na podzielenie modułów na łatwe do przetestowania części przed ich powolną integracją. Korzyścią jest to, że każdy moduł można zweryfikować pod kątem błędów, a następnie pod kątem tego, jak integruje się z połączonymi częściami.

Wraz z naszymi najlepszymi w swojej klasie
RPA
ZAPTEST oferuje bezkodową automatyzację testów oprogramowania, która jest zarówno wieloplatformowa, jak i międzyaplikacyjna. Co więcej, nasz pakiet testowy jest wyposażony w funkcje takie jak integracja CI/CD, solidne raportowanie i analityka oraz najwyższej klasy wsparcie i obsługa klienta.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo