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.

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:
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.
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
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
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 | 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
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.





