{"id":29612,"date":"2022-08-03T13:41:35","date_gmt":"2022-08-03T11:41:35","guid":{"rendered":"https:\/\/nearshore-it.eu\/artykuly\/testy-regresji\/"},"modified":"2024-11-07T12:32:10","modified_gmt":"2024-11-07T11:32:10","slug":"testy-regresji","status":"publish","type":"post","link":"https:\/\/nearshore-it.eu\/pl\/artykuly\/testy-regresji\/","title":{"rendered":"Test regresji \u2013 strata czasu czy must have w projekcie?"},"content":{"rendered":"\n<div class=\"table-of-contents\">\n    <p class=\"title\"><\/p>\n    <ol>\n                    <li><a href=\"#Rozw\u00f3j-oprogramowania-a-testowanie-regresyjne\">1.  Rozw\u00f3j oprogramowania a testowanie regresyjne<\/a><\/li>\n                    <li><a href=\"#Co-to-s\u0105-testy-regresji?\">2.  Co to s\u0105 testy regresji?<\/a><\/li>\n                    <li><a href=\"#Jak-cz\u0119sto-przeprowadza\u0107-testy-regresji?\">3.  Jak cz\u0119sto przeprowadza\u0107 testy regresji?<\/a><\/li>\n                    <li><a href=\"#Na-jakim-poziomie-przeprowadza-si\u0119-testy-regresji?\">4.  Na jakim poziomie przeprowadza si\u0119 testy regresji?<\/a><\/li>\n                    <li><a href=\"#Tworzenie-przypadk\u00f3w-testowych\">5.  Tworzenie przypadk\u00f3w testowych<\/a><\/li>\n                    <li><a href=\"#Wyb\u00f3r-przypadk\u00f3w-testowych-w-regresji\">6.  Wyb\u00f3r przypadk\u00f3w testowych w regresji<\/a><\/li>\n                    <li><a href=\"#Co-robimy-podczas-sprawdzania-regresji?-\">7.  Co robimy podczas sprawdzania regresji? <\/a><\/li>\n                    <li><a href=\"#Regresja-a-retesty-\u2013-jaka-jest-r\u00f3\u017cnica?\">8.  Regresja a retesty \u2013 jaka jest r\u00f3\u017cnica?<\/a><\/li>\n                    <li><a href=\"#W-jaki-spos\u00f3b-wykonujemy-testy?-Czyli-automatyzacja-w-regresji\">9.  W jaki spos\u00f3b wykonujemy testy? Czyli automatyzacja w regresji<\/a><\/li>\n                    <li><a href=\"#Testowanie-regresji-\u2013-korzy\u015bci-\">10.  Testowanie regresji \u2013 korzy\u015bci <\/a><\/li>\n                    <li><a href=\"#Podsumowanie-\">11.  Podsumowanie <\/a><\/li>\n            <\/ol>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"Rozw\u00f3j-oprogramowania-a-testowanie-regresyjne\">Rozw\u00f3j oprogramowania a testowanie regresyjne<\/h2>\n\n\n\n<p>Wyobra\u017amy sobie, \u017ce mamy ju\u017c dzia\u0142aj\u0105c\u0105 w \u015brodowisku produkcyjnym aplikacj\u0119. Klient jest bardzo zadowolony, poniewa\u017c cieszy si\u0119 ona popularno\u015bci\u0105 w\u015br\u00f3d u\u017cytkownik\u00f3w, i chce doda\u0107 now\u0105 funkcjonalno\u015b\u0107, kt\u00f3ra ma zwi\u0119kszy\u0107 ich zadowolenie oraz spowodowa\u0107 nap\u0142yw nowych. Zesp\u00f3\u0142 projektowy ju\u017c pali si\u0119 do pracy: nowa funkcjonalno\u015b\u0107, nowe zadanie, nowe wyzwanie! Po ustaleniu szczeg\u00f3\u0142\u00f3w developerzy ochoczo zabrali si\u0119 do pracy. Nast\u0119pnie testerzy sprawdzili now\u0105 funkcjonalno\u015b\u0107. Po drobnych poprawkach wszystko dzia\u0142a. Czas wrzuci\u0107 now\u0105 funkcjonalno\u015b\u0107 na produkcj\u0119. Gdy nadszed\u0142 dzie\u0144 wypuszczenia nowej wersji aplikacji, wszyscy byli szcz\u0119\u015bliwi, \u017ce projekt uda\u0142o si\u0119 zrealizowa\u0107 w terminie i zgodnie z wymaganiami.<\/p>\n\n\n\n<p>Niestety, szcz\u0119\u015bcie nie trwa\u0142o d\u0142ugo\u2026 Ju\u017c dzie\u0144 p\u00f3\u017aniej serwis zosta\u0142 zasypany zg\u0142oszeniami, \u017ce nie wszystkie dotychczasowe funkcje aplikacji dzia\u0142aj\u0105 prawid\u0142owo. W zespole zdziwienie: przecie\u017c nawet nie ruszali\u015bmy tych funkcjonalno\u015bci, a nowo dodana dzia\u0142a w prawid\u0142owy spos\u00f3b. <strong>Co posz\u0142o nie tak?<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Smutne skutki braku test\u00f3w regresji&#8230;<\/h3>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>Ot\u00f3\u017c zabrak\u0142o jednego, ale jak\u017ce istotnego elementu w procesie testowania. <strong>Nie sprawdzono, czy nowo dodana funkcjonalno\u015b\u0107 nie wp\u0142yn\u0119\u0142a na te, kt\u00f3re ju\u017c w aplikacji istnia\u0142y. <\/strong>Innymi s\u0142owy, nie przeprowadzono test\u00f3w regresji.<\/p>\n\n\n\n<p>Brak test\u00f3w regresji spowodowa\u0142, \u017ce aplikacja nie tylko nie zyska\u0142a nowych u\u017cytkownik\u00f3w, ale straci\u0142a te\u017c znaczn\u0105 cz\u0119\u015b\u0107 dotychczasowych. Utraci\u0142a swoj\u0105 wysok\u0105 pozycj\u0119 w rankingach, spad\u0142y zyski, co spowodowa\u0142o spore niezadowolenie klienta.<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Co-to-s\u0105-testy-regresji?\">Co to s\u0105 testy regresji?<\/h2>\n\n\n\n<p>Definicja wed\u0142ug s\u0142ownika ISTQB m\u00f3wi, \u017ce testowanie regresji to: <em>\u201eRodzaj testowania zwi\u0105zanego ze zmianami maj\u0105cy na celu wykrycie, czy defekty zosta\u0142y wprowadzone lub odkryte w niezmienionych obszarach oprogramowania\u201d.<\/em><\/p>\n\n\n\n<p>Przedstawiaj\u0105c to w bardziej obrazowy spos\u00f3b: w trakcie test\u00f3w sprawdzamy, czy \u201epodczas k\u0142adzenia tapety w jednym pokoju nie odpad\u0142 nam tynk ze \u015bciany w drugim pokoju&#8221;. <strong>Wszelkie zmiany w kodzie w jednym miejscu mog\u0105 spowodowa\u0107 zepsucie funkcji w innym,<\/strong> cho\u0107 na pierwszy rzut oka wydaje si\u0119, \u017ce nie s\u0105 one ze sob\u0105 powi\u0105zane. Dlatego tak wa\u017cne jest ponowne przetestowanie oprogramowania po wprowadzonych zmianach.<\/p>\n\n\n\n<p><strong>Przeczytaj artyku\u0142: <\/strong><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testowanie-oprogramowania\/\">Testowanie oprogramowania \u2013 poznaj \u015bwiat test\u00f3w<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Jak-cz\u0119sto-przeprowadza\u0107-testy-regresji?\">Jak cz\u0119sto przeprowadza\u0107 testy regresji?<\/h2>\n\n\n\n<p>Widzimy ju\u017c, jak istotne jest, \u017ceby upewni\u0107 si\u0119, czy zmiany nie wp\u0142yn\u0119\u0142y negatywnie na dotychczasowe funkcje, i znale\u017a\u0107 b\u0142\u0119dy odpowiednio wcze\u015bnie. Wprowadzane zmiany mog\u0105 wynika\u0107 z modyfikacji wymaga\u0144 i kodu oprogramowania, dodania nowych funkcjonalno\u015bci czy naprawy usterki, dlatego wa\u017cne jest, aby testy regresji by\u0142y przeprowadzane tak cz\u0119sto, jak wydawana jest nowa wersja oprogramowania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Na-jakim-poziomie-przeprowadza-si\u0119-testy-regresji?\">Na jakim poziomie przeprowadza si\u0119 testy regresji?<\/h2>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full\"><img decoding=\"async\" src=\"https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/2021.07.06_jpro_graphic_piramida_testow.png\" alt=\"piramida test\u00f3w \" class=\"wp-image-65578\" style=\"object-fit:cover\" title=\"\"><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Testy regresji s\u0105 niezale\u017cne od <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/piramida-testow-czyli-co-kiedy-i-jak-testowac-zeby-testy-przyniosly-zysk\" data-type=\"jpro\" data-id=\"54090\">poziomu test\u00f3w <\/a>oraz ich rodzaj\u00f3w. Mo\u017cna je przeprowadza\u0107 na poziomie test\u00f3w modu\u0142owych, integracyjnych, systemowych czy te\u017c akceptacyjnych i niezale\u017cnie od tego, czy mamy do czynienia z <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testowanie-funkcjonalne\" data-type=\"jpro\" data-id=\"66532\">testami funkcjonalnymi,<\/a> czy <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testy-niefunkcjonalne\" data-type=\"jpro\" data-id=\"62596\">niefunkcjonalnymi.<\/a><\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Tworzenie-przypadk\u00f3w-testowych\">Tworzenie przypadk\u00f3w testowych<\/h2>\n\n\n\n<p>Podczas sprawdzania oprogramowania tester tworzy przypadki testowe. Nie wszystkie jednak wejd\u0105 do puli przypadk\u00f3w wykonywanych podczas regresji. Od czego to zale\u017cy?&nbsp;<\/p>\n\n\n\n<p><strong>Przede wszystkim od ich ilo\u015bci i czasu, jaki trzeba po\u015bwi\u0119ci\u0107, aby je wykona\u0107. <\/strong>Je\u017celi mamy do czynienia z nierozbudowanym systemem i wykonanie wszystkich przypadk\u00f3w testowych podczas przeprowadzania test\u00f3w regresji nie zajmie zbyt wiele czasu \u2013 to jak najbardziej mo\u017cna je wykona\u0107.<\/p>\n\n\n\n<p>Najcz\u0119\u015bciej jednak systemy czy aplikacje s\u0105 mocno rozbudowane i zale\u017cne od innych system\u00f3w. Nie jeste\u015bmy wtedy w stanie u\u017cy\u0107 wszystkich utworzonych przypadk\u00f3w testowych. Czym w takim razie si\u0119 kierowa\u0107 podczas wyboru przypadk\u00f3w, kt\u00f3re powinny si\u0119 znale\u017a\u0107 na li\u015bcie podczas wykonywania test\u00f3w regresji?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Wyb\u00f3r-przypadk\u00f3w-testowych-w-regresji\">Wyb\u00f3r przypadk\u00f3w testowych w regresji<\/h2>\n\n\n\n<p>Je\u017celi musimy si\u0119 ograniczy\u0107, warto odpowiednio dobra\u0107 zestaw przypadk\u00f3w testowych. Ujmijmy koniecznie te przypadki, kt\u00f3re:<\/p>\n\n\n\n<ol style=\"list-style-type:1\" class=\"wp-block-list\">\n<li><strong>Sprawdzaj\u0105 najbardziej krytyczne funkcje <\/strong>\u2013 przede wszystkim nale\u017cy uwzgl\u0119dni\u0107 przypadki testowe, kt\u00f3re weryfikuj\u0105 dzia\u0142anie g\u0142\u00f3wnych funkcji aplikacji albo sprawdzaj\u0105 cz\u0119sto u\u017cywane funkcjonalno\u015bci.<\/li>\n\n\n\n<li><strong>Powsta\u0142y na bazie defekt\u00f3w <\/strong>\u2013 przypadki testowe, kt\u00f3re powsta\u0142y na bazie zg\u0142oszonych defekt\u00f3w, s\u0105 wa\u017cne.<\/li>\n\n\n\n<li><strong>Weryfikuj\u0105 podatno\u015b\u0107 na b\u0142\u0119dy <\/strong>\u2013 warto si\u0119 zastanowi\u0107, kt\u00f3ry obszar aplikacji jest najbardziej nara\u017cony na b\u0142\u0119dy po wprowadzonej zmianie, i podczas test\u00f3w regresji wykona\u0107 tak\u017ce przypadki testowe z danego obszaru.&nbsp;<\/li>\n\n\n\n<li><strong>Sprawdzaj\u0105 now\u0105 funkcjonalno\u015b\u0107 <\/strong>\u2013 nie mo\u017cemy r\u00f3wnie\u017c zapomnie\u0107 o przypadkach testowych, kt\u00f3re sprawdzaj\u0105 nowo dodan\u0105 funkcjonalno\u015b\u0107.&nbsp;<\/li>\n\n\n\n<li><strong>Wymagaj\u0105 wielu krok\u00f3w <\/strong>\u2013 pami\u0119tajmy te\u017c o z\u0142o\u017conych przypadkach testowych wymagaj\u0105cych wykonania d\u0142u\u017cszej sekwencji czynno\u015bci.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Odpowiedni priorytet<\/h3>\n\n\n\n<p>Wa\u017cne jest r\u00f3wnie\u017c odpowiednie nadanie priorytetu przypadkom testowym. Pomaga to w ich doborze, szczeg\u00f3lnie wtedy, kiedy zakres obszaru test\u00f3w jest du\u017cy, a czasu na ich wykonanie \u2013 ma\u0142o.<\/p>\n\n\n\n<p>W takiej sytuacji tester, uwzgl\u0119dniaj\u0105c czas, jaki ma na wykonanie test\u00f3w, wybiera przypadki testowe o najwy\u017cszym priorytecie. Daje nam to pewno\u015b\u0107, \u017ce sprawdzone b\u0119d\u0105 najbardziej krytyczne obszary aplikacji. Pozosta\u0142e przypadki z ni\u017cszym priorytetem, kt\u00f3re nie by\u0142y wykonane w czasie regresji, nale\u017cy umie\u015bci\u0107 w raporcie ko\u0144cowym, odpowiednio je oznaczaj\u0105c jako niewykonane. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Jak nadawa\u0107 priorytety przypadkom testowym?<\/h3>\n\n\n\n<p>Podczas nadawania priorytet\u00f3w przypadkom testowym nale\u017cy wzi\u0105\u0107 pod&nbsp;uwag\u0119 kilka czynnik\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wa\u017cno\u015b\u0107 danej funkcjonalno\u015bci z\u00a0punktu widzenia biznesowego<\/li>\n\n\n\n<li>Jej dost\u0119pno\u015b\u0107 \/ widoczno\u015b\u0107 dla u\u017cytkownika ko\u0144cowego<\/li>\n\n\n\n<li>Z\u0142o\u017cono\u015b\u0107 danej funkcjonalno\u015bci<\/li>\n\n\n\n<li>Jej wp\u0142yw na\u00a0szeroko poj\u0119te finanse<\/li>\n\n\n\n<li>Czy by\u0142a tworzona pod\u00a0presj\u0105 czasu<\/li>\n\n\n\n<li>Czy w\u00a0podobnych funkcjonalno\u015bciach wyst\u0119powa\u0142y problemy<\/li>\n<\/ul>\n\n\n\n<p>Uwzgl\u0119dniaj\u0105c powy\u017csze aspekty i odpowiadaj\u0105c sobie na zadane pytania, przypisanie priorytetu przypadkom nie powinno stwarza\u0107 wi\u0119kszego problemu. A praca w\u0142o\u017cona w ten proces zaowocuje w sytuacji, gdy czas na testy b\u0119dzie mocno ograniczony.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Przypadki testowe wielokrotnego u\u017cytku w regresji<\/h3>\n\n\n\n<p>List\u0119 przypadk\u00f3w testowych wytypowanych do test\u00f3w regresji nale\u017cy weryfikowa\u0107 cyklicznie. Cz\u0119\u015b\u0107 z nich b\u0119dzie mo\u017cna wykorzysta\u0107 w kolejnych testach regresji, s\u0105 to tzw. <strong>przypadki wielokrotnego u\u017cytku.<\/strong> Inne za\u015b mog\u0105 okaza\u0107 si\u0119 ju\u017c nieaktualne, a co za tym idzie \u2013 nieprzydatne w nast\u0119pnych cyklach regresji i taki \u201eprzestarza\u0142y przypadek&#8221; nale\u017cy usun\u0105\u0107 z listy test\u00f3w regresji.&nbsp;<\/p>\n\n\n\n<p>Weryfikacja przydatno\u015bci polega g\u0142\u00f3wnie na pr\u00f3bie wykonania danego przypadku testowego. Je\u017celi nie da si\u0119 odtworzy\u0107 opisanych krok\u00f3w lub dana funkcjonalno\u015b\u0107 ju\u017c nie istnieje, to taki przypadek testowy nale\u017cy usun\u0105\u0107. Cz\u0119sto zdarza si\u0119, \u017ce \u015bcie\u017cka wykonania lub oczekiwany rezultat uleg\u0142y niewielkiej modyfikacji i wystarczy tylko zaktualizowa\u0107 dany przypadek testowy. Weryfikacja zbioru przypadk\u00f3w testowych wytypowanych do test\u00f3w regresji jest konieczna, gdy\u017c pozostawienie nieaktualnych przypadk\u00f3w testowych daje nam w raportach ko\u0144cowych<strong> zafa\u0142szowany obraz stanu aplikacji,<\/strong> <strong>a ca\u0142y proces regresji nie przynosi \u017cadnej warto\u015bci.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Co-robimy-podczas-sprawdzania-regresji?-\">Co robimy podczas sprawdzania regresji?&nbsp;<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Sprawdzamy oczekiwany rezultat<\/h3>\n\n\n\n<p>Podczas przeprowadzania test\u00f3w regresji sprawdzamy, czy system zachowuje si\u0119 w oczekiwany spos\u00f3b. Je\u017celi testy regresji s\u0105 przygotowane w formie przypadk\u00f3w testowych, to po wykonaniu opisanych w przypadku krok\u00f3w sprawdzamy, czy otrzymujemy to, co jest przedstawione jako oczekiwany rezultat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Weryfikujemy z checklist\u0105&nbsp;<\/h3>\n\n\n\n<p>Innym sposobem na testowanie regresji jest przygotowanie listy kontrolnej, czyli tzw. checklisty. Lista kontrolna to zbi\u00f3r operacji w aplikacji, kt\u00f3re b\u0119d\u0105 testowane, zapisany w formie kr\u00f3tkich hase\u0142. <strong>Checklista jest stosunkowo \u0142atwa w przygotowaniu i utrzymaniu i idealnie sprawdza si\u0119, kiedy osoby testuj\u0105ce bardzo dobrze znaj\u0105 aplikacj\u0119 i nie potrzebuj\u0105 szczeg\u00f3\u0142owo rozpisanych krok\u00f3w.<\/strong> Osoby te wiedz\u0105, jakie operacje nale\u017cy sprawdzi\u0107 w danym obszarze i jaki jest oczekiwany rezultat. <\/p>\n\n\n\n<p>Niestety, w przypadku checklisty istnieje ryzyko, \u017ce nie wszystkie operacje, kt\u00f3re powinny zosta\u0107 sprawdzone, b\u0119d\u0105 przetestowane. W celu unikni\u0119cia takiej sytuacji dobrze jest aktualizowa\u0107 checklist\u0119 w czasie omawiania przez zesp\u00f3\u0142 zmian, jakie maj\u0105 zosta\u0107 wprowadzone. R\u00f3wnie\u017c podczas procesu testowania danej funkcjonalno\u015bci nale\u017cy na bie\u017c\u0105co uzupe\u0142nia\u0107 brakuj\u0105ce elementy, tak by podczas regresji lista by\u0142a kompletna.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Idealna checklista, czyli jaka?&nbsp;<\/h3>\n\n\n\n<p><strong>Dobrze przygotowana checklista powinna by\u0107 zwi\u0119z\u0142a, ale jednocze\u015bnie powinna obejmowa\u0107 wszystkie istotne funkcjonalno\u015bci. <\/strong>Je\u017celi system jest obszerny i checklista jest d\u0142uga, to powinna by\u0107 ona podzielona na odpowiednie kategorie, kt\u00f3re jasno definiuj\u0105 obszar podlegaj\u0105cy testowaniu. Warto te\u017c zadba\u0107, by testowane operacje by\u0142y ustawione w odpowiedniej kolejno\u015bci, co przyspieszy testy i nie b\u0119dzie trzeba wraca\u0107 do ju\u017c sprawdzonych rzeczy. Nie mo\u017cna zapomnie\u0107, \u017ce ka\u017cda checklista musi by\u0107 rozbudowywana wraz z rozwojem oprogramowania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Regresja-a-retesty-\u2013-jaka-jest-r\u00f3\u017cnica?\">Regresja a retesty \u2013 jaka jest r\u00f3\u017cnica?<\/h2>\n\n\n\n<p>Wiele os\u00f3b, zw\u0142aszcza stawiaj\u0105cych pierwsze kroki w IT, zastanawia si\u0119, czy retesty i testy regresji to to samo.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Retest <\/strong>to pojedynczy test, kt\u00f3ry sprawdza, czy defekt zosta\u0142 usuni\u0119ty. To ponowne testowanie przypadku, kt\u00f3rego rezultat ko\u0144cowy by\u0142 inny od oczekiwanego i zosta\u0142o to zg\u0142oszone jako b\u0142\u0105d oraz naprawione przez programist\u0119. Je\u017celi po wprowadzonej poprawce system dzia\u0142a tak, jak tego oczekiwano, mo\u017cemy zamkn\u0105\u0107 zg\u0142oszenie. Natomiast je\u017celi nadal nie otrzymujemy oczekiwanych rezultat\u00f3w, zg\u0142oszenie powinno pozosta\u0107 nadal otwarte, gdy\u017c wymaga dalszej analizy i naprawy.<\/li>\n\n\n\n<li><strong>Regresja <\/strong>to zbi\u00f3r test\u00f3w, kt\u00f3rych wykonanie daje nam odpowied\u017a, czy ca\u0142y modu\u0142 lub system nie zawiera b\u0142\u0119d\u00f3w po wprowadzeniu zmian do kodu oprogramowania. Testy regresji s\u0105 znacznie bardziej czasoch\u0142onne od retest\u00f3w, ale pami\u0119tajmy te\u017c, \u017ce s\u0105 przeprowadzane w innym celu.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"W-jaki-spos\u00f3b-wykonujemy-testy?-Czyli-automatyzacja-w-regresji\">W jaki spos\u00f3b wykonujemy testy? Czyli automatyzacja w regresji<del><\/del><\/h2>\n\n\n\n<p>To, w jaki spos\u00f3b zostan\u0105 przeprowadzone testy regresyjne, zale\u017cy g\u0142\u00f3wnie od tego, z jak du\u017cym systemem mamy do czynienia oraz cz\u0119sto od dost\u0119pnego bud\u017cetu.<\/p>\n\n\n\n<p>W ma\u0142ych projektach, gdy testy regresyjne nie zawieraj\u0105 du\u017cej liczby przypadk\u00f3w testowych, <strong>cz\u0119sto wystarczy wykona\u0107 test manualnie. <\/strong>Co jednak, je\u015bli do wykonania mamy ich tysi\u0105ce i r\u0119czne wykonywanie trwa\u0142oby miesi\u0105cami? Albo podczas wykonywania regresji wyst\u0105pi\u0142by b\u0142\u0105d blokuj\u0105cy dalsz\u0105 prac\u0119 i po jego usuni\u0119ciu trzeba by sprawdzi\u0107 wszystko od nowa? <strong>Wtedy najlepszym rozwi\u0105zaniem jest zastosowanie test\u00f3w automatycznych. <\/strong>Testy regresji s\u0105 idealnym kandydatem do tego, by je zautomatyzowa\u0107. G\u0142\u00f3wnie dlatego, \u017ce wykonujemy je cyklicznie oraz dlatego, \u017ce testy automatyczne zdecydowanie skracaj\u0105 czas wykonania przypadk\u00f3w testowych. Je\u015bli jest ich kilka tysi\u0119cy, automatyzacja pozwala na spor\u0105 oszcz\u0119dno\u015b\u0107 czasu i nak\u0142adu pracy.<\/p>\n\n\n\n<p>Oczywi\u015bcie wprowadzenie <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/automatyzacja-testow-obalamy-mity\" data-type=\"jpro\" data-id=\"53599\">test\u00f3w automatycznych<\/a> niesie za sob\u0105 koszty zwi\u0105zane np. z zakupem licencji dla narz\u0119dzi oraz zatrudnienia osoby z odpowiednimi kompetencjami. Nadal jednak koszty te w przypadku du\u017cych projekt\u00f3w s\u0105 znacznie ni\u017csze ni\u017c te ponoszone za ka\u017cdym razem przy przeprowadzaniu regresji w spos\u00f3b manualny.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A je\u015bli nie mo\u017cemy skorzysta\u0107 z automatyzacji test\u00f3w?<\/h2>\n\n\n\n<p>Bardzo cz\u0119sto w projektach stosuje si\u0119 <strong>podej\u015bcie mieszane,<\/strong> gdy\u017c nie ka\u017cdy przypadek testowy pozwala na automatyzacj\u0119. Cz\u0119sto problemem s\u0105 z\u0142o\u017cone przypadki testowe, kt\u00f3re trudno zautomatyzowa\u0107, dlatego najcz\u0119\u015bciej wykonuje si\u0119 je manualnie. Oczywi\u015bcie najlepiej, je\u015bli przypadk\u00f3w do wykonania manualnego jest najmniej, a pozosta\u0142e s\u0105 zautomatyzowane \u2013 wtedy proces regresji przebiega sprawnie i nie zajmuje tak du\u017co czasu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Testowanie-regresji-\u2013-korzy\u015bci-\">Testowanie regresji \u2013 korzy\u015bci&nbsp;<\/h2>\n\n\n\n<p><strong>Proces testowania regresji wymaga pracy i odpowiedniego przygotowania.<\/strong> Niew\u0105tpliwie poci\u0105ga za sob\u0105 te\u017c koszty zwi\u0105zane z czasem, nak\u0142adem pracy czy narz\u0119dziami. Jednak m\u0105drze zaplanowany i odpowiednio przeprowadzony, przynosi korzy\u015bci znacznie przewy\u017cszaj\u0105ce poczynion\u0105 inwestycj\u0119. Testowanie regresji zapobiega wprowadzeniu na produkcj\u0119 defekt\u00f3w, przez kt\u00f3re klient mo\u017ce ponie\u015b\u0107 wielotysi\u0119czne straty. Je\u015bli dojdzie do takiej sytuacji, to zesp\u00f3\u0142 musi zaj\u0105\u0107 si\u0119 naprawianiem defekt\u00f3w, przez co dalszy rozw\u00f3j oprogramowania schodzi na dalszy plan i najcz\u0119\u015bciej jest od\u0142o\u017cony w czasie.<\/p>\n\n\n\n<p>Raport z test\u00f3w regresji daje nam odpowied\u017a, czy dane oprogramowanie posiada oczekiwan\u0105 jako\u015b\u0107 i czy mo\u017ce zosta\u0107 wdro\u017cone w \u015brodowisku produkcyjnym. Cz\u0119sto te\u017c wskazuje modu\u0142y czy obszary oprogramowania szczeg\u00f3lnie podatne na defekty, co daje zespo\u0142owi mo\u017cliwo\u015b\u0107 zbadania problemu i obj\u0119cia tego obszaru szczeg\u00f3ln\u0105 uwag\u0105.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Podsumowanie-\">Podsumowanie&nbsp;<\/h2>\n\n\n\n<p>Testy regresji s\u0105 bardzo wa\u017cnym etapem w procesie wytwarzania oprogramowania niezale\u017cnie od tego, w jakiej metodologii jest prowadzony projekt: czy w podej\u015bciu kaskadowym, czy zwinnym. Odpowiadaj\u0105 one na pytanie, w jakiej kondycji jest nasza aplikacja po wprowadzeniu zmian, oraz pozwalaj\u0105 na unikni\u0119cie koszt\u00f3w naprawy defekt\u00f3w, kt\u00f3re mog\u0142yby wydosta\u0107 si\u0119 na produkcj\u0119. A jak ju\u017c wiadomo, <strong>koszty poniesione podczas naprawy takich b\u0142\u0119d\u00f3w znacznie przewy\u017cszaj\u0105 te poniesione podczas procesu testowania regresji.<\/strong><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f3wi si\u0119, \u017ce lepsze jest wrogiem dobrego, ale te\u017c \u2013 \u017ce jedyn\u0105 sta\u0142\u0105 jest zmiana. W czasie rozwoju oprogramowania nie spos\u00f3b unikn\u0105\u0107 wprowadzania nowych funkcji, zmian w oprogramowaniu. Cz\u0119sto aktualizacja wersji oprogramowania jest konieczna, \u017ceby dzia\u0142a\u0142o ono poprawnie. Weryfikacja zmian to wa\u017cny element tego procesu \u2013 i chodzi tu nie tylko o testowanie istniej\u0105cej funkcjonalno\u015bci. Testowanie regresji pozwala upewni\u0107 si\u0119, czy zmiana nie narobi\u0142a ba\u0142aganu w innej, zdawa\u0142oby si\u0119, niepowi\u0105zanej cz\u0119\u015bci oprogramowania.<\/p>\n","protected":false},"author":144,"featured_media":29617,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"iawp_total_views":471,"footnotes":""},"categories":[1,582],"tags":[562],"offering":[522],"class_list":["post-29612","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artykuly","category-technologie","tag-qa","offering-tech-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/29612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/users\/144"}],"replies":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/comments?post=29612"}],"version-history":[{"count":3,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/29612\/revisions"}],"predecessor-version":[{"id":33803,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/29612\/revisions\/33803"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media\/29617"}],"wp:attachment":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media?parent=29612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/categories?post=29612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/tags?post=29612"},{"taxonomy":"offering","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/offering?post=29612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}