Co to jest testowanie regresji?

๐Ÿš€ Inteligentne podsumowanie

Testowanie regresyjne to rodzaj testowania oprogramowania przeprowadzanego w celu potwierdzenia, ลผe โ€‹โ€‹ostatnie zmiany lub aktualizacje nie wpล‚ynฤ™ล‚y negatywnie na istniejฤ…ce funkcje. Proces tentracWczeล›niej wykonano przypadki testowe, aby upewniฤ‡ siฤ™, ลผe podstawowe funkcje oprogramowania nadal dziaล‚ajฤ… zgodnie z oczekiwaniami po wszelkich modyfikacjach kodu, poprawkach bล‚ฤ™dรณw lub dodaniu nowych funkcjonalnoล›ci.

  • Zasada kluczowa: Sprawdลบ, czy nowe zmiany nie spowodujฤ… bล‚ฤ™dรณw lub regresji w funkcjach, ktรณre zostaล‚y juลผ przetestowane.
  • Cel wdroลผenia: Wykonaj wybrane przypadki testowe z istniejฤ…cego pakietu, skupiajฤ…c siฤ™ na obszarach zmodyfikowanych przez ostatnie zmiany lub nowe funkcje.
  • Strategia ustalania priorytetรณw: Nadaj priorytet przypadkom testowym na podstawie wpล‚ywu na dziaล‚alnoล›ฤ‡ biznesowฤ…, krytycznoล›ci i historycznej czฤ™stotliwoล›ci wystฤ™powania usterek, aby zoptymalizowaฤ‡ wykorzystanie zasobรณw.
  • Wartoล›ฤ‡ automatyzacji: Zautomatyzuj testy regresyjne czฤ™sto zmienianych lub krytycznych moduล‚รณw, aby zaoszczฤ™dziฤ‡ czas i zwiฤ™kszyฤ‡ dokล‚adnoล›ฤ‡.
  • Rodzaje i zakres: Dostosuj zakres testรณw (regresja jednostkowa, czฤ™ล›ciowa, regionalna lub peล‚na) na podstawie wielkoล›ci i wpล‚ywu testowanych zmian.
  • Ciฤ…gล‚a integracja: Zintegruj testy regresyjne z procesami tworzenia kodu, aby wykrywaฤ‡ problemy na wczesnym etapie po kaลผdej zmianie kodu.
  • Spรณjnoล›ฤ‡ danych: Stosuj spรณjne, odizolowane dane testowe, aby zapobiegaฤ‡ niepowiฤ…zanym awariom i zapewniฤ‡ wiarygodne wyniki podczas cykli regresji.
  • Zarzฤ…dzanie konfiguracjฤ…: Utrzymuj ล›cisล‚ฤ… kontrolฤ™ kodu i ล›rodowiska podczas faz regresji, aby zapobiec niepoลผฤ…danym efektom ubocznym.

Co to jest testowanie regresyjne

Co to jest testowanie regresji?

Testy regresji definiuje siฤ™ jako rodzaj testowania oprogramowania majฤ…cego na celu potwierdzenie, ลผe niedawna zmiana programu lub kodu nie wpล‚ynฤ™ล‚a negatywnie na istniejฤ…ce funkcje. Moลผna rรณwnieลผ powiedzieฤ‡, ลผe jest to nic innego jak peล‚na lub czฤ™ล›ciowa selekcja juลผ wykonanych przypadkรณw testowych, ktรณre sฤ… ponownie wykonywane, aby zapewniฤ‡ prawidล‚owe dziaล‚anie istniejฤ…cych funkcjonalnoล›ci.

Tego typu testy przeprowadza siฤ™, aby upewniฤ‡ siฤ™, ลผe nowe zmiany w kodzie nie bฤ™dฤ… miaล‚y ลผadnych skutkรณw ubocznych na istniejฤ…ce funkcjonalnoล›ci. Zapewnia to, ลผe stary kod nadal bฤ™dzie dziaล‚aล‚ po wprowadzeniu najnowszych zmian w kodzie.

๐Ÿ‘‰ Zapisz siฤ™ na bezpล‚atny projekt testรณw regresyjnych na ลผywo

Dlaczego testy regresyjne?

Proces testowania regresyjnego jest niezbฤ™dny w zakresie testowania. Poniewaลผ moลผe zidentyfikowaฤ‡, czy zmiany w kodzie lub ulepszenia wprowadzajฤ… nowe defekty lub zakล‚รณcajฤ… istniejฤ…ce testy funkcjonalne.

Bez procesu testรณw regresyjnych nawet drobne zmiany w kodzie mogฤ… prowadziฤ‡ do kosztownych bล‚ฤ™dรณw. Dlatego teลผ pomaganie w utrzymaniu jakoล›ci oprogramowania jest systematycznฤ… praktykฤ…. Ta metoda pomaga zapobiegaฤ‡ powtarzaniu siฤ™ znanych problemรณw i zwiฤ™ksza zaufanie do oprogramowania.

Kiedy moลผemy przeprowadziฤ‡ testy regresyjne?

Oto scenariusze, w ktรณrych moลผna zastosowaฤ‡ proces testowania regresyjnego.

Do aplikacji dodano nowฤ… funkcjonalnoล›ฤ‡: Dzieje siฤ™ tak, gdy w aplikacji lub witrynie internetowej tworzone sฤ… nowe funkcje lub moduล‚y. Regresjฤ™ przeprowadza siฤ™ w celu sprawdzenia, czy istniejฤ…ce funkcje dziaล‚ajฤ… normalnie po wprowadzeniu nowej funkcji.

W przypadku koniecznoล›ci zmiany: Gdy w systemie nastฤ™puje jakaล› istotna zmiana, stosuje siฤ™ testowanie regresji. Test ten wykonuje siฤ™ w celu sprawdzenia, czy te zmiany wpล‚ynฤ™ล‚y na funkcje, ktรณre tam byล‚y.

Po usuniฤ™ciu usterki: Programiล›ci przeprowadzajฤ… testy regresyjne po naprawieniu bล‚ฤ™du w dowolnej funkcjonalnoล›ci. Ma to na celu ustalenie, czy zmiany wprowadzone podczas naprawiania bล‚ฤ™du wpล‚ynฤ™ล‚y na inne powiฤ…zane istniejฤ…ce funkcje.

Po rozwiฤ…zaniu problemu z wydajnoล›ciฤ…: Po naprawieniu wszelkich problemรณw z wydajnoล›ciฤ… uruchamiany jest proces testรณw regresyjnych w celu sprawdzenia, czy ma to wpล‚yw na inne istniejฤ…ce testy funkcjonalne.

Podczas integracji z nowym systemem zewnฤ™trznym: Zawsze, gdy produkt integruje siฤ™ z nowym systemem zewnฤ™trznym, wymagany jest kompleksowy proces testรณw regresyjnych.

Jak przeprowadziฤ‡ testy regresyjne w testowaniu oprogramowania

Jak juลผ wczeล›niej omawialiล›my, testowanie regresji jest uruchamiane na podstawie kaลผdej zmiany wprowadzonej do oprogramowania. Moลผe to byฤ‡ poprawka bล‚ฤ™du, integracja nowych funkcji itd. Zawsze, gdy taka praca ma miejsce, zespรณล‚ ds. zapewnienia jakoล›ci wykonuje nastฤ™pujฤ…ce czynnoล›ci podane poniลผej. Zadania te sฤ… wykonywane przed rozpoczฤ™ciem cyklu wykonywania testรณw regresji.

  • Porozmawiaj z zespoล‚em programistรณw o konkretnych moduล‚ach i bibliotekach, ktรณre zostaล‚y poruszone podczas zmiany
  • Porozmawiaj z wล‚aล›cicielem produktu o zmianie nowej funkcji i dowiedz siฤ™, jak wpล‚ywa ona na inne funkcje.
  • Zidentyfikuj testy z istniejฤ…cego zestawu testรณw, ktรณre testerzy muszฤ… wykonaฤ‡, aby uzyskaฤ‡ regresjฤ™ istniejฤ…cych funkcji.

W celu skutecznego zapewnienia jakoล›ci oprogramowania moลผna zastosowaฤ‡ rรณลผne techniki testowania regresyjnego:

Testowanie regresyjne w testowaniu oprogramowania

Przetestuj wszystko ponownie

Jest to jedna z metod testowania regresyjnego, w szczegรณlnoล›ci wykorzystujฤ…ca zestaw testรณw regresyjnych. W takim przypadku wszystkie testy w istniejฤ…cym zasobniku lub zestawie testรณw powinny zostaฤ‡ wykonane ponownie. Jest to metoda kosztowna, poniewaลผ wymaga duลผo czasu i zasobรณw.

Wybรณr testu regresji

Wybรณr testรณw regresyjnych to technika polegajฤ…ca na wykonaniu wybranych przypadkรณw testowych z zestawu testรณw. Pomaga sprawdziฤ‡, czy zmodyfikowany kod wpล‚ywa na aplikacjฤ™, czy nie. Tutaj przypadki testowe sฤ… podzielone na dwie czฤ™ล›ci. Przypadki testowe wielokrotnego uลผytku moลผna wykorzystaฤ‡ w kolejnych cyklach regresji, natomiast przestarzaล‚e przypadki testowe nie mogฤ… byฤ‡ wykorzystywane w kolejnych cyklach.

Priorytetyzowanie przypadkรณw testowych

Priorytetyzacja przypadkรณw testowych zaleลผy od wpล‚ywu biznesowego, krytycznoล›ci i czฤ™sto uลผywanych testรณw funkcjonalnych. Ponadto nadawanie priorytetรณw przypadkom testowym w oparciu o priorytet znacznie zmniejsza wysiล‚ek zwiฤ…zany z wykonywaniem testรณw regresyjnych.

Wybieranie przypadkรณw testowych do testรณw regresyjnych

Z danych branลผowych wynika, ลผe โ€‹โ€‹duลผa liczba usterek zgล‚aszanych przez klientรณw wynikaล‚a z poprawek bล‚ฤ™dรณw w ostatniej chwili. Spowodowaล‚o to skutki uboczne, dlatego wybranie Przypadki testowe w przypadku testรณw regresyjnych nie jest to ล‚atwe zadanie.

Efektywny zestaw testรณw regresyjnych moลผna zbudowaฤ‡, wybierajฤ…c nastฤ™pujฤ…ce typy przypadkรณw testowych โ€“

  • Przypadki testowe z funkcjonalnoล›ci/moduล‚รณw, ktรณre majฤ… czฤ™ste defekty.
  • Funkcjonalnoล›ci bardziej widoczne dla uลผytkownikรณw
  • Przypadki testowe weryfikujฤ…ce podstawowe cechy produktu
  • Przypadki testowe funkcjonalnoล›ci, ktรณre przeszล‚y nowsze zmiany.
  • Wszystkie przypadki testรณw integracyjnych
  • Wszystkie zล‚oลผone przypadki testowe
  • Przypadki testowe wartoล›ci brzegowych
  • Wybrane szczฤ™ล›liwe ล›cieลผki i negatywne przypadki testowe

Narzฤ™dzia do testowania regresji

Jeล›li Twoje oprogramowanie podlega czฤ™stym zmianom, koszty testรณw regresyjnych wzrosnฤ…. Rฤ™czne wykonywanie przypadkรณw testowych wydล‚uลผa czas i koszty wykonywania testรณw. Automatyzacja przypadkรณw testรณw regresyjnych jest w takich przypadkach mฤ…drym wyborem. Stopieล„ automatyzacji zaleลผy od liczby przypadkรณw testowych, ktรณre moลผna ponownie wykorzystaฤ‡ w kolejnych cyklach regresji.

Poniลผej przedstawiono najwaลผniejsze narzฤ™dzia wykorzystywane do automatyzacji testรณw funkcjonalnych i regresyjnych w inลผynierii oprogramowania:

1) testRigor

testRigor pomaga Ci bezpoล›rednio wyraลผaฤ‡ testy jako wykonywalne specyfikacje w prostym jฤ™zyku angielskim. Uลผytkownicy o wszelkich umiejฤ™tnoล›ciach technicznych mogฤ… tworzyฤ‡ testy end-to-end o dowolnej zล‚oลผonoล›ci, obejmujฤ…ce kroki mobilne, internetowe i API. Kroki testowe sฤ… wyraลผane na poziomie uลผytkownika koล„cowego, zamiast polegaฤ‡ na szczegรณล‚ach implementacji, takich jak XPathy lub selektory CSS.

testRigor

Cechy:

  • Bezpล‚atna, zawsze publiczna wersja
  • Przypadki testowe sฤ… w jฤ™zyku angielskim
  • Nieograniczona liczba uลผytkownikรณw i nieograniczone testy
  • Najprostszy sposรณb na naukฤ™ automatyzacji
  • Rejestrator krokรณw internetowych
  • Integracje z CI/CD i zarzฤ…dzaniem przypadkami testowymi
  • Testowanie poczty e-mail i SMS-รณw
  • Kroki Web + Mobile + API w jednym teล›cie

Odwiedลบ testRigor >>

Selenium: Selenium to najczฤ™ล›ciej uลผywane narzฤ™dzie typu open source sล‚uลผฤ…ce do automatyzacji aplikacji internetowych. Selenium moลผna wykorzystaฤ‡ do testรณw regresyjnych w przeglฤ…darce. Obsล‚uguje jฤ™zyki programowania takie jak Java, Rubin, Python, itp.

Szybki test profesjonalny (QTP): HP Quick Test Professional to zautomatyzowane oprogramowanie przeznaczone do automatyzacji testรณw funkcjonalnych i regresyjnych. Do automatyzacji wykorzystuje jฤ™zyk VB Script. Jest to narzฤ™dzie oparte na danych i sล‚owach kluczowych.

Racjonalny tester funkcjonalny (RFT): IBMRacjonalnym testerem funkcjonalnym jest: a Java narzฤ™dzie sล‚uลผฤ…ce do automatyzacji przypadkรณw testowych aplikacji oprogramowania. Jest ono uลผywane gล‚รณwnie do automatyzacji przypadkรณw testรณw regresji, a takลผe integruje siฤ™ z Rational Test Manager.

Rodzaje testรณw regresji

Rodzaje testรณw regresji

Oto rรณลผne rodzaje testรณw regresyjnych:

1) Testowanie regresji jednostkowej (URT)

Jest to bardzo ukierunkowane podejล›cie, w ktรณrym testowi regresji poddaje siฤ™ tylko zmodyfikowanฤ… sekcjฤ™, a nie obszar wpล‚ywu. W ten sposรณb pozostaล‚e czฤ™ล›ci moduล‚u pozostajฤ… nienaruszone.

Przykล‚ad

Jak na przykล‚ad w kompilacji 1 znaleziono problem i zgล‚oszono go programiล›cie.

Powiedzmy, ลผe byล‚ to bล‚ฤ…d w funkcjonalnoล›ci logowania. Dlatego programista naprawia to, dodaje poprawkฤ™ do kompilacji 2 i przesyล‚a jฤ…. Zespรณล‚ testujฤ…cy sprawdza tylko, czy funkcja logowania dziaล‚a zgodnie z oczekiwaniami, zamiast sprawdzaฤ‡ inne funkcje.

2) Regionalne testy regresyjne (RRT)

W regionalnych testach regresji testowane sฤ… obszary modyfikacji i wpล‚ywu. Obszar ten jest sprawdzany w celu sprawdzenia, czy zmiany mogฤ… mieฤ‡ wpล‚yw na jakiekolwiek niezawodne moduล‚y.

Przykล‚ad: W tym przykล‚adzie w pierwszej kompilacji moduล‚y A, B, C i D sฤ… wysyล‚ane do testowania przez programistฤ™. Tester znajduje bล‚ฤ™dy w module B, wiฤ™c aplikacja wraca do programisty w celu usuniฤ™cia bล‚ฤ™dรณw.

Gdy programista naprawi bล‚ฤ™dy w drugiej kompilacji moduล‚u B, jest on ponownie wysyล‚any do inลผyniera testowego. Inลผynier testowy dowiaduje siฤ™, ลผe naprawianie moduล‚u B wpล‚ynฤ™ล‚o na A i C.

Tester sprawdza zatem modyfikacje moduล‚u B w drugiej wersji. Nastฤ™pnie testuje rรณwnieลผ obszary wpล‚ywu w A i C, aby okreล›liฤ‡, w jaki sposรณb zostaล‚y one dotkniฤ™te.

Uwaga: Podczas testรณw regresyjnych moลผe wystฤ…piฤ‡ problem opisany poniลผej.

Problem:

  • W wersji 1 klienci zwykle proszฤ… o zmiany, modyfikacje i dodatkowe funkcje.
  • To ลผฤ…danie jest nastฤ™pnie wysyล‚ane do zespoล‚รณw programistycznych i testujฤ…cych.
  • Nastฤ™pnie zespรณล‚ programistรณw wprowadza modyfikacje. Nastฤ™pnie inลผynier testรณw wysyล‚a e-mail do klienta, informujฤ…c go o obszarach, na ktรณre modyfikacja bฤ™dzie miaล‚a wpล‚yw.
  • Nastฤ™pnie kierownik testรณw zbiera listฤ™ dotkniฤ™tych obszarรณw od klienta, programistรณw i dziaล‚u testowego.
  • Lista wpล‚ywรณw jest nastฤ™pnie wysyล‚ana do inลผynierรณw testujฤ…cych, ktรณrzy rozpoczynajฤ… testy regresyjne.

Ten typ metody testowania tworzy luki komunikacyjne. Deweloperzy i klienci nie zawsze mogฤ… powrรณciฤ‡ do wiadomoล›ci e-mail; stฤ…d nie ma wล‚aล›ciwego przeglฤ…du obszaru oddziaล‚ywania.

Rozwiฤ…zanie: Aby usunฤ…ฤ‡ tego rodzaju problem, zespรณล‚ testowy moลผe umรณwiฤ‡ siฤ™ na spotkanie po otrzymaniu nowej kompilacji po poprawieniu bล‚ฤ™dรณw, nowych funkcjach i modyfikacjach. Spotkanie to odbฤ™dzie siฤ™ w celu omรณwienia, czy modyfikacje bฤ™dฤ… miaล‚y wpล‚yw na moduล‚y.

Odbฤ™dzie siฤ™ runda testowa w celu ustalenia skutkรณw, aby umoลผliwiฤ‡ utworzenie listy skutkรณw. Lider testowy dodaje do tej listy maksymalnฤ… liczbฤ™ obszarรณw w obszarze oddziaล‚ywania.

Poniลผej przedstawiono, jak bฤ™dzie wyglฤ…daล‚ proces:

  • โ€žTest weryfikacyjny kompilacjiโ€ pozwalajฤ…cy sprawdziฤ‡ gล‚รณwne moลผliwoล›ci aplikacji.
  • Testowanie wszystkich nowych funkcji.
  • Sprawdzanie zmienionych lub zmodyfikowanych funkcji.
  • Ponowne testowanie bล‚ฤ™dรณw.
  • Nastฤ™pnie, na koniec, analiza obszaru oddziaล‚ywania z wykorzystaniem testรณw regresji regionalnej.

3) Peล‚ne testy regresyjne (FRT):

Testowanie obejmuje wszystkie funkcjonalnoล›ci aplikacji. Peล‚ne testowanie regresji jest zwykle wykonywane w pรณลบniejszych wersjach. W zwiฤ…zku z tym moลผesz uลผywaฤ‡ FRT po kilku pierwszych wersjach i jako ostateczny test przed uruchomieniem.

W drugiej lub trzeciej kompilacji klient lub wล‚aล›ciciel firmy moลผe poprosiฤ‡ o modyfikacje. Mogฤ… takลผe ลผฤ…daฤ‡ nowych funkcjonalnoล›ci i/lub zgล‚aszaฤ‡ wady. Nastฤ™pnie zespรณล‚ testowy przeprowadza analizฤ™ wpล‚ywu, wprowadza wszystkie modyfikacje i przeprowadza koล„cowy, kompletny test produktu.

Na przykล‚ad czwarta wersja jest ostatecznฤ… wersjฤ… przed premierฤ…. Dlatego w tej wersji zespรณล‚ testujฤ…cy przeprowadza peล‚ny test lub ponowny test produktu, a nie tylko obszar uderzenia lub funkcjฤ™. Odbywa siฤ™ to po modyfikacjach i testach w kompilacjach 4, 1 i 2.

Aby przeprowadziฤ‡ peล‚ne testy regresyjne, naleลผy wziฤ…ฤ‡ pod uwagฤ™ nastฤ™pujฤ…ce okolicznoล›ci:

  • Zmiany dokonywane sฤ… w podstawowych komponentach aplikacji. Na przykล‚ad, jeล›li nastฤ…pi modyfikacja w pliku gล‚รณwnym aplikacji lub podstawowych moduล‚รณw, wรณwczas naleลผy dokonaฤ‡ regresji caล‚ej aplikacji. Jeล›li wprowadzono liczne zmiany.

4) Korygujฤ…ce testy regresyjne:

Testowanie to przeprowadza siฤ™, gdy w funkcjach nie wprowadzono ลผadnych modyfikacji. Takie testy moลผna przeprowadziฤ‡ na istniejฤ…cych przypadkach.

5) Przetestuj ponownie wszystkie testy regresyjne:

W tej formie testowania wszystkie mniejsze lub wiฤ™ksze zmiany wprowadzone w aplikacji od ลบrรณdล‚a lub wersji 1 sฤ… ponownie testowane.

Testowanie to przeprowadza siฤ™, gdy inne testy regresyjne nie pozwalajฤ… na zidentyfikowanie pierwotnej przyczyny problemรณw.

6) Selektywne testy regresyjne:

Ma to na celu sprawdzenie reakcji kodu po dodaniu do programu nowego kodu. Aby przeprowadziฤ‡ ten test, wykorzystuje siฤ™ podzbiรณr istniejฤ…cych przypadkรณw, aby byล‚ on wydajny i opล‚acalny. Kryteria wyboru podzbioru opierajฤ… siฤ™ na zmodyfikowanych moduล‚ach kodu, zaleลผnoล›ciach, krytycznoล›ci funkcjonalnoล›ci, ktรณrych dotyczy problem, oraz historycznych danych o defektach.

7) Testowanie regresji progresywnej:

Ten typ testรณw regresyjnych generuje waลผne wyniki, gdy w programie wprowadzane sฤ… okreล›lone zmiany i tworzone sฤ… nowe przypadki testowe.

Pomaga to zapewniฤ‡, ลผe najnowsza wersja nie wpล‚ynie na ลผadne komponenty starszych wersji.

8) Testowanie regresji czฤ™ล›ciowej:

Testowanie regresji czฤ™ล›ciowej sล‚uลผy do sprawdzenia, czy nowe zmiany lub ulepszenia kodu nie wpล‚ywajฤ… negatywnie na istniejฤ…cฤ… funkcjonalnoล›ฤ‡. Jednak w odrรณลผnieniu od peล‚nego testu regresji, ktรณry polega na ponownym przetestowaniu caล‚ej aplikacji, w przypadku czฤ™ล›ciowego testu regresji skupiamy siฤ™ tylko na okreล›lonych czฤ™ล›ciach oprogramowania, na ktรณre wpล‚ywajฤ… ostatnie zmiany.

Dlatego gล‚รณwnym celem testรณw regresji czฤ™ล›ciowej jest oszczฤ™dnoล›ฤ‡ czasu i zasobรณw poprzez unikniฤ™cie ponownego testowania niezmienionych czฤ™ล›ci aplikacji. Przypadki testowe do testรณw regresji czฤ™ล›ciowej sฤ… starannie wybierane na podstawie analizy wpล‚ywu zmian w kodzie. Kluczowe znaczenie ma zidentyfikowanie wล‚aล›ciwych przypadkรณw testowych, ktรณre naleลผy uwzglฤ™dniฤ‡ w zestawie testรณw regresji czฤ™ล›ciowej. Pominiฤ™cie krytycznych przypadkรณw testowych moลผe prowadziฤ‡ do przeoczenia problemรณw.

Automatyczne testy regresji

Jak wspomniano wczeล›niej, automatyzacja testรณw regresyjnych jest konieczna, gdy dostฤ™pnych jest wiele wydaล„. Jest to rรณwnieลผ wymagane w przypadku wielokrotnych cykli regresji i wielu powtarzalnych czynnoล›ci. Poniewaลผ wykonywanie wielu cykli testowych w rรณลผnych wersjach jest bardzo czasochล‚onne.

Jednak dziฤ™ki automatyzacji moลผesz testowaฤ‡ kilka razy. Wymaga to napisania skryptรณw testรณw automatycznych do wykonania, co wymaga odpowiedniego planowania i projektowania. Podczas takich testรณw zespรณล‚ nie moลผe bezpoล›rednio rozpoczฤ…ฤ‡ od automatyzacji. Dlatego w celu uwzglฤ™dnienia tego zakresu musimy zaangaลผowaฤ‡ zarรณwno zespoล‚y zajmujฤ…ce siฤ™ testami rฤ™cznymi, jak i testami automatycznymi. Oto jak przeprowadzane sฤ… automatyczne testy regresyjne:

Krok 1) Zespรณล‚ testรณw rฤ™cznych sprawdza wszystkie wymagania i identyfikuje obszar oddziaล‚ywania. Po tym procesie przekazujฤ… pakiet testรณw wymagaล„ zespoล‚owi automatyzujฤ…cemu lub inลผynierowi automatykowi.

Krok 2) Zespรณล‚ testรณw rฤ™cznych rozpoczyna testowanie nowych moduล‚รณw, podczas gdy zespรณล‚ testรณw automatycznych pisze skrypt i automatyzuje przypadek testowy.

Krok 3) Przed zastosowaniem tej metody testu regresyjnego zespรณล‚ ds. automatyzacji identyfikuje przypadki, ktรณre bฤ™dฤ… wspieraฤ‡ automatyzacjฤ™.

Krok 4) Konwertujฤ… te testy regresyjne na skrypty, w zaleลผnoล›ci od tego, ktรณre przypadki moลผna zautomatyzowaฤ‡.

Krok 5) Podczas procesu pisania skryptรณw zespรณล‚ automatyzujฤ…cy odwoล‚uje siฤ™ do przypadkรณw testowych regresji. Robiฤ… to, poniewaลผ mogฤ… nie posiadaฤ‡ produktu ani wiedzy o narzฤ™dziach i aplikacjach.

Krok 6) Po ukoล„czeniu skryptรณw testowych zespรณล‚ ds. automatyzacji wykona je w nowej aplikacji.

Krok 7) Po wykonaniu wynik informuje, czy test zakoล„czyล‚ siฤ™ sukcesem, czy niepowodzeniem.

Krok 8) Jeล›li test siฤ™ nie powiedzie, jest on ponownie sprawdzany przy uลผyciu metody rฤ™cznej, a jeล›li problem istnieje, zgล‚aszany jest odpowiedniemu programiล›cie.

Uwaga: Po naprawieniu bล‚ฤ™du problem i obszar wpล‚ywu sฤ… wysyล‚ane do testera rฤ™cznego w celu ponownego przetestowania, a zespรณล‚ ds. automatyzacji ponownie wykonuje skrypt.

Krok 9) Proces ten trwa, dopรณki wszystkie nowo dodane funkcje regresji nie uzyskajฤ… statusu Pass.

Oto zalety automatycznych testรณw regresyjnych:

  • Wielokrotnego uลผytku: Jego skrypty testowe moลผna ponownie wykorzystaฤ‡ w wielu wersjach.
  • Dokล‚adnoล›ฤ‡: Narzฤ™dzia do automatyzacji wykonujฤ… zadanie redundantnie, zmniejszajฤ…c ryzyko bล‚ฤ™du.
  • Oszczฤ™dza czas: Jest szybszy niลผ rฤ™czny proces testowania funkcjonalnego i oszczฤ™dza czas.
  • Wykonanie wsadowe: Podczas testรณw automatycznych moลผliwe jest jednoczesne i rรณwnolegล‚e wykonywanie wszystkich skryptรณw.
  • Nie jest wymagane zwiฤ™kszenie zasobรณw: Test regresji z pewnoล›ciฤ… bฤ™dzie siฤ™ zwiฤ™kszaล‚ z kaลผdฤ… nowฤ… wersjฤ…. Nie trzeba jednak dodawaฤ‡ nowych zasobรณw w celu automatyzacji.

Jak wybieraฤ‡ przypadki testowe do testรณw regresyjnych?

Oto, jak wybraฤ‡ odpowiedni przypadek do testรณw regresyjnych.

  • Zrozum zakres zmian i okreล›l czฤ™ล›ci aplikacji, ktรณre zostaล‚y zmodyfikowane, dodane lub naprawione. Nastฤ™pnie moลผesz skupiฤ‡ siฤ™ na tych obszarach w celu przeprowadzenia testรณw regresyjnych.
  • Posiadaj pakiet obejmujฤ…cy krytycznฤ… funkcjonalnoล›ฤ‡ i utrzymujฤ…cy jฤ… jako podstawฤ™ testรณw regresyjnych. Jak wspomniano wczeล›niej, zdecydowanie zaleca siฤ™ zautomatyzowanie tych testรณw.
  • Nadaj priorytet testom w oparciu o krytycznoล›ฤ‡ funkcjonalnoล›ci, wpล‚yw na uลผytkownika koล„cowego i historyczne dane dotyczฤ…ce defektรณw.

Najlepsze praktyki w testowaniu regresji

Poniลผej znajduje siฤ™ kilka kluczowych praktyk, ktรณrymi naleลผy siฤ™ kierowaฤ‡ utrzymujฤ…c testy regresyjne.

Automatyzuj tam, gdzie to moลผliwe

Zautomatyzowane testy regresyjne zmniejszajฤ… wysiล‚ek zwiฤ…zany z testowaniem i pozwalajฤ… na szybkie wykonanie duลผej liczby przypadkรณw testowych.

Ciฤ…gล‚a integracja

Wล‚ฤ…czenie testรณw regresyjnych do potokรณw CI/CD gwarantuje, ลผe testy bฤ™dฤ… uruchamiane automatycznie za kaลผdym razem, gdy zmiany zostanฤ… wprowadzone do bazy kodu.

Wybรณr przypadku testowego

Zidentyfikuj i utrzymuj podzbiรณr przypadkรณw testowych, ktรณre reprezentujฤ… podstawowฤ… funkcjonalnoล›ฤ‡ i obszary wysokiego ryzyka. Moลผna takลผe wybraฤ‡ te bezpoล›rednio zwiฤ…zane z wprowadzanymi zmianami, gdyลผ uruchomienie wszystkich poprzednich przypadkรณw testowych moลผe byฤ‡ niepraktyczne.

Regularna egzekucja

Regularnie wykonuj testy regresyjne, zwล‚aszcza po kaลผdej zmianie kodu. Pomaga to w identyfikowaniu problemรณw na wczesnym etapie procesu tworzenia oprogramowania.

Zarzฤ…dzanie danymi testowymi

Upewnij siฤ™, ลผe dane testowe uลผywane do testรณw regresyjnych sฤ… spรณjne i ล‚atwe do zarzฤ…dzania, poniewaลผ problemy zwiฤ…zane z danymi mogฤ… mieฤ‡ wpล‚yw na wyniki testรณw.

Zarzฤ…dzanie ล›rodowiskiem

Utrzymuj spรณjne i powtarzalne ล›rodowiska testowe. Obejmuje to uลผywanie tych samych systemรณw operacyjnych, przeglฤ…darek i konfiguracji urzฤ…dzeล„, ktรณre sฤ… uลผywane w produkcji.

Nagraj i Track Defekty

Wszelkie defekty wykryte podczas testรณw regresyjnych powinny zostaฤ‡ zarejestrowane, traci zarzฤ…dzane. Ustalaj priorytety ich rozwiฤ…zania na podstawie stopnia waลผnoล›ci.

Wielokrotny uลผytek

Twรณrz skrypty testowe wielokrotnego uลผytku i dane testowe, aby ograniczyฤ‡ powielanie i poprawiฤ‡ ล‚atwoล›ฤ‡ konserwacji.

Testowanie regresyjne i zarzฤ…dzanie konfiguracjฤ…

Zarzฤ…dzanie konfiguracjฤ… podczas testรณw regresyjnych staje siฤ™ koniecznoล›ciฤ… w ล›rodowiskach Agile, w ktรณrych kod jest stale modyfikowany. Aby zapewniฤ‡ skuteczne testy regresyjne, naleลผy przestrzegaฤ‡ nastฤ™pujฤ…cych zasad:

  • Code poddawane testom regresyjnym powinny byฤ‡ przeprowadzane za pomocฤ… narzฤ™dzia do zarzฤ…dzania konfiguracjฤ….
  • Nie moลผna zezwalaฤ‡ na ลผadne zmiany w kodzie podczas fazy testรณw regresyjnych. Kod testu regresyjnego musi byฤ‡ odporny na zmiany programistรณw.
  • Baza danych uลผywana do testรณw regresyjnych musi byฤ‡ izolowana. Nie moลผna zezwalaฤ‡ na ลผadne zmiany w bazie danych

Rรณลผnica miฤ™dzy ponownym testowaniem a testowaniem regresyjnym

Ponowne testowanie oznacza ponowne testowanie funkcjonalne defektu lub bล‚ฤ™du w celu upewnienia siฤ™, ลผe kod zostaล‚ naprawiony. Jeล›li nie zostanie naprawiony, defekt naleลผy ponownie otworzyฤ‡. Jeล›li zostanie naprawiony, wada jest zamkniฤ™ta.

Testowanie regresyjne oznacza testowanie aplikacji po zmianie kodu. Ma to na celu zapewnienie, ลผe nowy kod nie wpล‚ynie na inne czฤ™ล›ci oprogramowania.

Poniลผej przedstawiono gล‚รณwne rรณลผnice miฤ™dzy tymi dwoma testami:

Ponowne testowanie a testowanie regresyjne

Ponowne testowanie Testy regresji
Zostaล‚ zbudowany specjalnie do usuwania usterek. Testy regresyjne przeprowadza siฤ™ gล‚รณwnie w celu sprawdzenia, czy zmiany w kodzie wpล‚ynฤ™ล‚y na inne funkcjonalnoล›ci.
Ponowne testowanie nie sprawdza innych wersji, a jedynie sprawdza, czy uszkodzone funkcjonalnoล›ci zostaล‚y przywrรณcone. Koncentruje siฤ™ na poprzednich wersjach i sprawdza, czy poprzednie funkcje nadal dziaล‚ajฤ… zgodnie z oczekiwaniami.
Kaลผdy test jest specyficzny Regresja jest testem ogรณlnym.
To testowanie dotyczy nieudanych przypadkรณw testowych. Dotyczy przypadkรณw, ktรณre zdaล‚y egzamin.
Sprawdza konkretne defekty, wiฤ™c nie da siฤ™ tego zautomatyzowaฤ‡. Moลผna zautomatyzowaฤ‡. Zdecydowanie zaleca siฤ™ rรณwnieลผ automatyzacjฤ™, jak omรณwiliล›my wczeล›niej.
Ponowne testowanie nie zawsze jest czฤ™ล›ciฤ… cyklu testowania, poniewaลผ jest wymagane tylko w przypadku znalezienia bล‚ฤ™dรณw. Regresja jest zawsze czฤ™ล›ciฤ… testowania, poniewaลผ za kaลผdym razem, gdy zmieniany jest kod, naleลผy przeprowadziฤ‡ ten test, aby sprawdziฤ‡, czy funkcjonalnoล›ฤ‡ produktu jest stabilna.
Jest to testowanie o wysokim priorytecie, poniewaลผ koncentruje siฤ™ na znanych problemach. Jest to testowanie o niskim priorytecie, poniewaลผ jest to ogรณlne testowanie moลผliwych defektรณw.
Testowanie to nie jest czasochล‚onne, poniewaลผ dziaล‚a na konkretnฤ… wadฤ™. Poniewaลผ zajmuje duลผy obszar oprogramowania, jest wiฤ™c czasochล‚onne.
Wykrywa defekty z tymi samymi danymi i ล›rodowiskiem, z innym wejล›ciem i nowฤ… wersjฤ…. Podczas tych testรณw moลผna pozyskaฤ‡ przypadki z instrukcji obsล‚ugi, raportรณw o defektach i specyfikacji funkcjonalnych.
Bez pierwszego badania nie moลผna przeprowadziฤ‡ ponownego badania. Dokonuje siฤ™ tego wtedy, gdy w istniejฤ…cym projekcie konieczne sฤ… zmiany i modyfikacje.

Sprawdลบ takลผe peล‚nฤ… listฤ™ rรณลผnic w tym miejscu.

Zalety i wady testรณw regresyjnych

Zalety

  • Testy regresyjne poprawiajฤ… jakoล›ฤ‡ produktรณw.
  • Dziฤ™ki tym testom masz pewnoล›ฤ‡, ลผe modyfikacje i poprawki bล‚ฤ™dรณw nie zmieniล‚y istniejฤ…cych funkcjonalnoล›ci i funkcji.
  • Poniewaลผ ล‚รณลผka regresyjne dziaล‚ajฤ… na istniejฤ…cych funkcjach, moลผemy zagwarantowaฤ‡, ลผe starsze defekty zostanฤ… uwzglฤ™dnione rรณwnieลผ.
  • Uล‚atwia efektywny rozwรณj produktu.
  • Dziฤ™ki takim testom moลผesz osiฤ…gnฤ…ฤ‡ wysoki poziom zadowolenia uลผytkownikรณw.
  • Ogรณlnie rzecz biorฤ…c, utrzymuje stabilnoล›ฤ‡ oprogramowania.

Wady

  • Naleลผy jฤ… przeprowadzaฤ‡ za kaลผdym razem, gdy wprowadzana jest niewielka zmiana, gdyลผ najmniejsza zmiana moลผe spowodowaฤ‡ problemy w istniejฤ…cych moduล‚ach.
  • Test ten moลผe byฤ‡ czasochล‚onny, jeล›li jest przeprowadzany rฤ™cznie i wymaga powtarzania testรณw.

Wyzwania w testowaniu regresyjnym

Wyzwania w testowaniu regresyjnym

Poniลผej przedstawiono gล‚รณwne problemy testowe przy przeprowadzaniu testรณw regresyjnych:

  • W miarฤ™ kolejnych przebiegรณw regresji zestawy testรณw stajฤ… siฤ™ doล›ฤ‡ duลผe. Ze wzglฤ™du na ograniczenia czasowe i budลผetowe nie moลผna wykonaฤ‡ caล‚ego zestawu testรณw regresyjnych
  • Minimalizacja zestawu testรณw przy jednoczesnym osiฤ…gniฤ™ciu maksimum pozostaje wyzwaniem
  • Okreล›lenie czฤ™stotliwoล›ci testรณw regresyjnych, czyli po kaลผdej modyfikacji, kaลผdej aktualizacji kompilacji lub po szeregu poprawek bล‚ฤ™dรณw, jest wyzwaniem.

Praktyczne zastosowanie przykล‚adu testu regresyjnego z filmem

Kliknij w tym miejscu jeล›li film nie jest dostฤ™pny

Przykล‚ad testu regresyjnego โ€“ Amazon

Weลบmy pod uwagฤ™ giganta handlu elektronicznego Amazon, ktรณry jest wielomiliardowym biznesem, ktรณry opiera siฤ™ na swojej stronie internetowej w celu generowania przychodรณw. Aby utrzymaฤ‡ jej funkcjonalnoล›ฤ‡, niezawodnoล›ฤ‡ i wydajnoล›ฤ‡, testy regresyjne odgrywajฤ… kluczowฤ… rolฤ™.

Rozwaลผmy scenariusz dodania nowej kategorii produktรณw.

Wyobraลบ sobie, ลผe Amazon postanawia rozszerzyฤ‡ swojฤ… ofertฤ™ produktรณw, wprowadzajฤ…c nowฤ… kategoriฤ™ o nazwie โ€žInteligentne urzฤ…dzenia domoweโ€ obok istniejฤ…cych kategorii, takich jak โ€žElektronikaโ€ i โ€žOdzieลผโ€.

Moลผliwe przypadki regresji to:

Funkcjonalnoล›ฤ‡ strony gล‚รณwnej: Sprawdลบ, czy na stronie gล‚รณwnej wyล›wietlana jest nowa kategoria โ€žInteligentne urzฤ…dzenia domoweโ€ obok istniejฤ…cych bez ลผadnych problemรณw z wyล›wietlaniem.

Nawigacja kategorii: Upewnij siฤ™, ลผe uลผytkownicy mogฤ… pล‚ynnie przejล›ฤ‡ do strony kategorii โ€žInteligentne urzฤ…dzenia domoweโ€ i powrรณciฤ‡ do strony gล‚รณwnej bez ลผadnych zakล‚รณceล„.

Funkcja wyszukiwania: Upewnij siฤ™, ลผe pasek wyszukiwania zwraca dokล‚adne wyniki dotyczฤ…ce inteligentnych urzฤ…dzeล„ domowych, gdy uลผytkownicy ich szukajฤ…, i nie miesza ich z wynikami dotyczฤ…cymi innych produktรณw.

Konta uลผytkownikรณw: Sprawdลบ, czy konta uลผytkownikรณw moลผna tworzyฤ‡, aktualizowaฤ‡ i wykorzystywaฤ‡ do zakupu inteligentnych urzฤ…dzeล„ domowych i innych produktรณw.

Przetwarzanie pล‚atnoล›ci: Przetestuj bramki pล‚atnicze przeznaczone specjalnie do zakupรณw i zagwarantuj bezpieczne i wolne od bล‚ฤ™dรณw transakcje.

Mobilna responsywnoล›ฤ‡: Sprawdลบ, czy witryna jest dostosowana do urzฤ…dzeล„ mobilnych, umoลผliwiajฤ…c uลผytkownikom dostฤ™p do inteligentnych urzฤ…dzeล„ domowych i dokonywanie zakupรณw przy uลผyciu rรณลผnych urzฤ…dzeล„.

Jeล›li ktรณrykolwiek z tych przypadkรณw testu regresyjnego zakoล„czy siฤ™ niepowodzeniem, oznacza to problem z istniejฤ…cฤ… funkcjonalnoล›ciฤ… witryny w zwiฤ…zku z dodaniem nowej kategorii produktรณw. Problem ten naleลผy udokumentowaฤ‡ i natychmiast rozwiฤ…zaฤ‡. Dodatkowo jako Amazon nadal rozszerza swojฤ… ofertฤ™ i wprowadza zmiany na swojej stronie internetowej, dlatego testy regresyjne naleลผy wykonaฤ‡ w celu utrzymania niezawodnoล›ci sklepu internetowegoping doล›wiadczenie. Zautomatyzowane narzฤ™dzia testowe mogฤ… usprawniฤ‡ ten proces.

FAQ

Nazywa siฤ™ to testowaniem regresyjnym, poniewaลผ zapewnia, ลผe โ€‹โ€‹nowe zmiany w kodzie nie spowodujฤ… โ€žregresuโ€ oprogramowania โ€“ czyli nie zepsujฤ… lub nie cofnฤ… wczeล›niej dziaล‚ajฤ…cej funkcjonalnoล›ci. Pomaga to potwierdziฤ‡, ลผe aktualizacje nie spowodowaล‚y przypadkowego przywrรณcenia starych bล‚ฤ™dรณw lub problemรณw.

Test regresji moลผe ponownie uruchomiฤ‡ funkcjonalnoล›ฤ‡ logowania po aktualizacji funkcji hasล‚a. Jeล›li logowanie nadal dziaล‚a poprawnie po zmianie, test koล„czy siฤ™ powodzeniem. Zasadniczo weryfikuje on stabilnoล›ฤ‡ istniejฤ…cych funkcji po wprowadzeniu nowych modyfikacji.

Gล‚รณwnym celem jest wykrywanie niezamierzonych efektรณw ubocznych w istniejฤ…cych funkcjach po zmianach, aktualizacjach lub poprawkach bล‚ฤ™dรณw. Zapewnia to stabilnoล›ฤ‡ oprogramowania, niezawodnoล›ฤ‡ i spรณjnฤ… wydajnoล›ฤ‡ we wszystkich dotychczas dziaล‚ajฤ…cych czฤ™ล›ciach aplikacji.

Testy regresyjne sprawdzajฤ…, czy ostatnie zmiany wpล‚ynฤ™ล‚y negatywnie na istniejฤ…ce funkcje, koncentrujฤ…c siฤ™ na stabilnoล›ci technicznej. Testy akceptacji uลผytkownika (UAT) weryfikujฤ…, czy oprogramowanie speล‚nia rzeczywiste wymagania uลผytkownikรณw, koncentrujฤ…c siฤ™ na potrzebach biznesowych i ogรณlnej uลผytecznoล›ci przed wydaniem.

Inลผynierowie ds. zapewnienia jakoล›ci (QA) zazwyczaj przeprowadzajฤ… testy regresyjne, czฤ™sto wspierani przez inลผynierรณw automatyzacji. W zespoล‚ach Agile programiล›ci mogฤ… rรณwnieลผ uczestniczyฤ‡ w testach, aby szybko sprawdziฤ‡, czy nowe zatwierdzenia lub kompilacje nie uszkodziล‚y istniejฤ…cych funkcji.

Podsumuj ten post nastฤ™pujฤ…co: