{"id":29718,"date":"2022-05-04T10:06:33","date_gmt":"2022-05-04T08:06:33","guid":{"rendered":"https:\/\/nearshore-it.eu\/artykuly\/testowanie-oprogramowania\/"},"modified":"2024-11-07T14:31:09","modified_gmt":"2024-11-07T13:31:09","slug":"testowanie-oprogramowania","status":"publish","type":"post","link":"https:\/\/nearshore-it.eu\/pl\/artykuly\/testowanie-oprogramowania\/","title":{"rendered":"Testowanie oprogramowania \u2013 poznaj \u015bwiat test\u00f3w&nbsp;"},"content":{"rendered":"\n<div class=\"table-of-contents\">\n    <p class=\"title\">Przejd\u017a do:<\/p>\n    <ol>\n                    <li><a href=\"#Co-to-jest-testowanie-oprogramowania?\">1.  Co to jest testowanie oprogramowania? <\/a><\/li>\n                    <li><a href=\"#Jakie-s\u0105-poziomy-test\u00f3w-oprogramowania?\">2.  Jakie s\u0105 poziomy test\u00f3w oprogramowania?\u00a0<\/a><\/li>\n                    <li><a href=\"#Jakie-s\u0105-typy-test\u00f3w-oprogramowania?\">3.  Jakie s\u0105 typy test\u00f3w oprogramowania?\u00a0 <\/a><\/li>\n                    <li><a href=\"#Metody-testowania-oprogramowania\">4.  Metody testowania oprogramowania\u00a0<\/a><\/li>\n                    <li><a href=\"#Kto-mo\u017ce-zosta\u0107-testerem-oprogramowania?\">5.  Kto mo\u017ce zosta\u0107 testerem oprogramowania?\u00a0<\/a><\/li>\n                    <li><a href=\"#Testowanie-oprogramowania-\u2013-od-czego-zacz\u0105\u0107?\">6.  Testowanie oprogramowania \u2013 od czego zacz\u0105\u0107?\u00a0<\/a><\/li>\n                    <li><a href=\"#Podsumowanie\">7.  Podsumowanie\u00a0<\/a><\/li>\n            <\/ol>\n<\/div>\n\n\n<p>Systemy informatyczne i aplikacje stanowi\u0105 dzi\u015b nieod\u0142\u0105czn\u0105 cz\u0119\u015b\u0107 naszego \u017cycia w ka\u017cdym jego obszarze \u2013 od system\u00f3w medycznych, bankowych, po produkty u\u017cytkowe jak smartfon czy samoch\u00f3d. Dla ka\u017cdego u\u017cytkownika istotne jest, by oprogramowanie, z kt\u00f3rego korzysta, dzia\u0142a\u0142o prawid\u0142owo, szybko i mo\u017cna by\u0142o z niego korzysta\u0107 w spos\u00f3b intuicyjny.&nbsp;<\/p>\n\n\n\n<p>Nieprawid\u0142owe funkcjonowanie oprogramowania nie tylko przysparza u\u017cytkownikowi stresu i nerw\u00f3w, ale generuje r\u00f3wnie\u017c wiele problem\u00f3w dla producenta, tj. jak <strong>dodatkowe koszty czy straty wizerunkowe.<\/strong> By zapobiec takiemu scenariuszowi, wydawcy oprogramowania coraz cz\u0119\u015bciej decyduj\u0105 si\u0119 na wdro\u017cenie testowania w procesie jego tworzenia. Niekt\u00f3re bran\u017ce nawet wymagaj\u0105 przeprowadzania test\u00f3w, gdy na przyk\u0142ad od poprawnego dzia\u0142ania programu zale\u017cy \u017cycie ludzkie. &nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Co-to-jest-testowanie-oprogramowania?\">Co to jest testowanie oprogramowania?&nbsp;<\/h2>\n\n\n\n<p><strong>Testowanie to<\/strong> <strong>poddawanie czego\u015b pr\u00f3bie z oczekiwaniem na konkretny wynik. <\/strong>Test w szkole sprawdza, czy ucze\u0144 posiada okre\u015blon\u0105 wiedz\u0119 z danego przedmiotu. Testy samochodu mog\u0105 sprawdza\u0107 np. wytrzyma\u0142o\u015b\u0107 czy poziom bezpiecze\u0144stwa kierowcy i pasa\u017cer\u00f3w podczas zderzenia z przeszkod\u0105. Przeprowadzanie test\u00f3w oprogramowania b\u0119dzie sprawdza\u0107 poprawno\u015b\u0107 i zgodno\u015b\u0107 implementacji oprogramowania z za\u0142o\u017ceniami. B\u0119d\u0105 te\u017c okre\u015bla\u0107, w jakim stopniu dana aplikacja jest zrozumia\u0142a i przydatna dla przysz\u0142ego odbiorcy.&nbsp;<\/p>\n\n\n\n<p>Ile razy zdarzy\u0142o ci si\u0119, \u017ce wchodz\u0105c na jak\u0105\u015b stron\u0119, zauwa\u017cy\u0142e\u015b jakie\u015b niedoci\u0105gni\u0119cie? Co\u015b si\u0119 nie od\u015bwie\u017cy\u0142o, a mo\u017ce nie uda\u0142o si\u0119 zarezerwowa\u0107 terminu u lekarza, bo na ko\u0144cu rezerwacji wyskoczy\u0142 b\u0142\u0105d? A mo\u017ce zdenerwowa\u0142e\u015b si\u0119, bo strona wy\u015bwietlana na ekranie smartfonu nie pokaza\u0142a si\u0119 w ca\u0142o\u015bci, co utrudni\u0142o lub nawet uniemo\u017cliwi\u0142o wy\u015bwietlenie ca\u0142ej jej tre\u015bci?<strong>&nbsp;Testowanie oprogramowania ma za zadanie zapewni\u0107 najwy\u017csz\u0105 jako\u015b\u0107 produktu.<\/strong> Umo\u017cliwia ocen\u0119 jego jako\u015bci, ale przede wszystkim <strong>zmniejsza ryzyko awarii podczas u\u017cytkowania.&nbsp;<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201eProces sk\u0142adaj\u0105cy si\u0119 ze wszystkich czynno\u015bci cyklu \u017cycia, zar\u00f3wno statycznych, jak i dynamicznych, skoncentrowany na planowaniu, przygotowaniu i ewaluacji oprogramowania oraz powi\u0105zanych produkt\u00f3w w celu okre\u015blenia, czy spe\u0142niaj\u0105 one wyspecyfikowane wymagania, na wykazaniu, \u017ce s\u0105 one dopasowane do swoich cel\u00f3w oraz na wykrywaniu usterek\u201d.&nbsp;<\/p>\n<cite><em>Definicja testowania oprogramowania zaczerpni\u0119ta z syllabusa ISTQB<\/em><\/cite><\/blockquote>\n\n\n\n<p>Rozmiar i z\u0142o\u017cono\u015b\u0107 oprogramowania szybko rosn\u0105. Jak wynika z definicji sylabusa ISTQB, <strong>testowanie oprogramowania to do\u015b\u0107 z\u0142o\u017cony proces towarzysz\u0105cy tworzeniu produktu, jak i jego rozwojowi.<\/strong> Tester poza szukaniem defekt\u00f3w pomaga zapobiega\u0107 ich powstawaniu, raportuje wyniki swojej pracy oraz dokonuje oceny jako\u015bci przedmiotu test\u00f3w.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testowanie dynamiczne&nbsp;<\/h3>\n\n\n\n<p>Szukanie defekt\u00f3w, o jakich wspomnia\u0142am wy\u017cej, obejmuje <strong>testowanie dynamiczne<\/strong> \u2013 czyli takie, kt\u00f3re wymaga uruchomienia testowanego systemu lub jego cz\u0119\u015bci&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testowanie statyczne&nbsp;<\/h3>\n\n\n\n<p>Istnieje jeszcze technika <strong>testowania statycznego<\/strong> pomagaj\u0105ca wykry\u0107 defekty, zwi\u0119kszy\u0107 sp\u00f3jno\u015b\u0107 i wewn\u0119trzn\u0105 jako\u015b\u0107 oprogramowania \u2013 b\u0119dzie to na przyk\u0142ad przegl\u0105d dokumentacji lub kodu systemu bez uruchamiania go.&nbsp;<\/p>\n\n\n\n<p>Przeczytaj tak\u017ce: <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/quality-assurance-czyli-jak-zagwarantowac-jakosc-i-bezpieczenstwo-w-projektach-it\" target=\"_blank\" rel=\"noreferrer noopener\">Quality Assurance (QA) \u2013 zapewnij jako\u015b\u0107 w&nbsp;twoich&nbsp;projektach IT<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Jakie-s\u0105-poziomy-test\u00f3w-oprogramowania?\">Jakie s\u0105 poziomy test\u00f3w oprogramowania?&nbsp;<\/h2>\n\n\n\n<p>Na poszczeg\u00f3lnych etapach wytwarzania oprogramowania zakres i ilo\u015b\u0107 test\u00f3w okre\u015bla model zwany <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\">piramid\u0105 test\u00f3w.<\/a> U jej podstawy b\u0119d\u0105 testy szybkie do wykonania niewielkim kosztem, pozwalaj\u0105ce wykry\u0107 defekty w pocz\u0105tkowej fazie projektu. <\/p>\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=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"610\" height=\"303\" src=\"https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/2021.07.06_jpro_graphic_piramida_testow-e1727163439932.png\" alt=\"Piramida test\u00f3w, bez poziomu test\u00f3w akceptacyjnych\" class=\"wp-image-29613\" title=\"\" srcset=\"https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/2021.07.06_jpro_graphic_piramida_testow-e1727163439932.png 610w, https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/2021.07.06_jpro_graphic_piramida_testow-e1727163439932-300x149.png 300w, https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/2021.07.06_jpro_graphic_piramida_testow-e1727163439932-495x246.png 495w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Na szczycie piramidy s\u0105 z kolei testy sprawdzaj\u0105ce ca\u0142\u0105 funkcjonalno\u015b\u0107 oprogramowania, czasoch\u0142onne, a zatem kosztowne, wykonywane w ko\u0144cowej fazie projektu.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Testy jednostkowe (unit testy)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Wykonywane przez programist\u00f3w \/ developer\u00f3w, polegaj\u0105 na testowaniu pojedynczych fragment\u00f3w oprogramowania. Mo\u017ce to by\u0107 pojedyncza klasa, metoda czy funkcja w kodzie. Skupiaj\u0105 si\u0119 na weryfikacji, czy wymagania dla testowanej jednostki s\u0105 spe\u0142nione, a tak\u017ce na sprawdzeniu wszystkich \u015bcie\u017cek w kodzie oraz warto\u015bci brzegowych. Wy\u0142apuj\u0105 b\u0142\u0119dy logiczne w implementacji. Wykonuje si\u0119 je szybko i nie wymagaj\u0105 uruchomienia ca\u0142ego systemu, a tylko jego odizolowanego ma\u0142ego fragmentu. Dzi\u0119ki temu testy jednostkowe s\u0105 bardzo skuteczne, a wykrycie i naprawa defektu zajmuj\u0105 ma\u0142o czasu.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Testy integracyjne <\/strong><\/li>\n<\/ul>\n\n\n\n<p>Testy integracyjne r\u00f3wnie\u017c s\u0105 domen\u0105 programist\u00f3w. Wykonuje si\u0119 je po testach jednostkowych i maj\u0105 na celu sprawdzi\u0107 poprawno\u015b\u0107 integracji pomi\u0119dzy danymi komponentami. Testy integracji wykrywaj\u0105 b\u0142\u0119dy w komunikacji pomi\u0119dzy wsp\u00f3\u0142pracuj\u0105cymi elementami systemu (zak\u0142adaj\u0105c, \u017ce poszczeg\u00f3lne elementy samodzielnie dzia\u0142aj\u0105 poprawnie). Testy integracji pomi\u0119dzy poszczeg\u00f3lnymi modu\u0142ami s\u0105 bardziej zaawansowane ni\u017c testy jednostkowe, s\u0105 te\u017c bardziej czasoch\u0142onne, a znalezione usterki mog\u0105 obejmowa\u0107 wi\u0119kszy obszar systemu. Przyk\u0142adem takich test\u00f3w mo\u017ce by\u0107 wsp\u00f3\u0142praca mi\u0119dzy aplikacj\u0105 webow\u0105 a baz\u0105 danych, jak r\u00f3wnie\u017c komunikacja pomi\u0119dzy dwiema klasami wewn\u0105trz kodu.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Testy End-to-End<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Testy systemowe, przeprowadzane w finalnej fazie projektu na zintegrowanym systemie, wykonywane przez tester\u00f3w, maj\u0105 za zadanie sprawdzi\u0107 dzia\u0142anie aplikacji jako ca\u0142o\u015bci. Wykonuje si\u0119 je powoli, trudno je w pe\u0142ni zautomatyzowa\u0107, wymagaj\u0105 cz\u0119stych modyfikacji, przez co s\u0105 drogie i trudne w utrzymaniu. Testy systemu s\u0105 jednak niezb\u0119dne, jako \u017ce badaj\u0105 zachowanie kompletnej aplikacji.&nbsp;&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Testy akceptacyjne<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Poza piramid\u0105 jest jeszcze poziom test\u00f3w akceptacyjnych, kt\u00f3re s\u0105 wykonywane w celu upewnienia si\u0119, \u017ce aplikacja spe\u0142nia oczekiwania klienta i u\u017cytkownik\u00f3w \u2013 i to w\u0142a\u015bnie oni s\u0105 odpowiedzialni za ich wykonanie. Przyk\u0142adem mog\u0105 by\u0107 <strong>testy akceptacyjne (UAT<\/strong> \u2013 <strong>User Acceptance Tests),<\/strong> kt\u00f3re wykrywaj\u0105 wszelkie niezgodno\u015bci ze specyfikacj\u0105 biznesow\u0105, oraz testy akceptacji operacyjnej <strong>OAT (Operational Acceptance Tests) <\/strong>sprawdzaj\u0105ce na przyk\u0142ad zachowanie systemu podczas awarii.&nbsp;<\/p>\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=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"687\" height=\"310\" src=\"https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/jpro_2022.05.04_graphic2-e1727163522680.png\" alt=\"Testy czarnoskrzynkowe zajmuj\u0105 si\u0119 zewn\u0119trznym zachowaniem oprogramowania\" class=\"wp-image-29722\" title=\"\" srcset=\"https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/jpro_2022.05.04_graphic2-e1727163522680.png 687w, https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/jpro_2022.05.04_graphic2-e1727163522680-300x135.png 300w, https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/jpro_2022.05.04_graphic2-e1727163522680-495x223.png 495w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/figure>\n<\/div>\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=\"Jakie-s\u0105-typy-test\u00f3w-oprogramowania?\">Jakie s\u0105 typy test\u00f3w oprogramowania?&nbsp;<\/h2>\n\n\n\n<p>Testowa\u0107 aplikacje mo\u017cemy na wiele sposob\u00f3w, a wykonywane testy mog\u0105 mie\u0107 r\u00f3\u017cne cele. To w\u0142a\u015bnie wspomniane cele definiuj\u0105 typy test\u00f3w \u2013 b\u0119dziemy sprawdza\u0107 funkcjonalno\u015b\u0107, wydajno\u015b\u0107 systemu lub upewnia\u0107 si\u0119, \u017ce po implementacji poprawek wszystko dzia\u0142a, jak nale\u017cy.&nbsp;<\/p>\n\n\n\n<p>Wyr\u00f3\u017cniamy cztery podstawowe typy test\u00f3w, kt\u00f3re z kolei dziel\u0105 si\u0119 na wiele rodzaj\u00f3w.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testy funkcjonalne&nbsp;&nbsp;<\/h3>\n\n\n\n<p><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testowanie-funkcjonalne\">Testowanie funkcjonalne<\/a> jest nazywane r\u00f3wnie\u017c <strong>testami czarnej skrzynki<\/strong> (lub te\u017c czarnoskrzynkowymi). Definiuj\u0105 one czynno\u015bci wykonywane przez oprogramowanie. Testy funkcjonalne s\u0105 zwykle opisane w specyfikacji wymaga\u0144 jako przypadki u\u017cycia, a do ich wykonania nie jest konieczna znajomo\u015b\u0107 wn\u0119trza systemu. Definiuje si\u0119 je jako zewn\u0119trzne zachowanie systemu, traktuj\u0105c je jak czarn\u0105 skrzynk\u0119. Osoba przeprowadzaj\u0105ca testy jest w stanie przetestowa\u0107 aplikacj\u0119 wzgl\u0119dem wymaga\u0144 funkcjonalnych zwykle bez posiadania skomplikowanej wiedzy teoretycznej.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testy niefunkcjonalne <\/h3>\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=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/nearshore-it.eu\/wp-content\/uploads\/2024\/09\/jpro_2022.02.04_testy_niefunkjonalne_2.png\" alt=\"Typy test\u00f3w  - testy funkcjonalne i testy niefunkcjonalne\" class=\"wp-image-65602\" title=\"\"><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Okre\u015blane te\u017c jako testy jako\u015bciowe, definiowane cz\u0119sto kr\u00f3tkim zdaniem: <strong>\u201ejak dzia\u0142a system\u201d.&nbsp;&nbsp;<\/strong><\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Testowanie niefunkcjonalne pozwala m.in. sprawdzi\u0107:&nbsp;<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>u\u017cyteczno\u015b\u0107<\/strong> \u2013 czyli jak przydatna i intuicyjna jest aplikacja \u2013 najpro\u015bciej: czy \u201eb\u0119dzie pan zadowolony\u201d. Pod uwag\u0119 bierze si\u0119 r\u00f3wnie\u017c takie aspekty jak estetyka oraz to, czy do\u015bwiadczenia u\u017cytkownika w trakcie korzystania z aplikacji s\u0105 pozytywne, a cz\u0119sto tak\u017ce \u2013 czy aplikacja jest dostosowana do potrzeb os\u00f3b z niepe\u0142nosprawno\u015bciami,&nbsp; <\/li>\n\n\n\n<li><strong>bezpiecze\u0144stwo<\/strong> \u2013 czy nikt nie wykradnie naszych danych z systemu oraz na ile jest on zabezpieczony przed atakami os\u00f3b trzecich. Do tego typu test\u00f3w zalicza si\u0119 na przyk\u0142ad testy penetracyjne, kt\u00f3re symuluj\u0105 rzeczywisty atak, a tak\u017ce pozwalaj\u0105 dokona\u0107 oceny ryzyka \u2013 analizuje si\u0119 w\u00f3wczas i identyfikuje najwi\u0119ksze zagro\u017cenia bezpiecze\u0144stwa,&nbsp;<\/li>\n\n\n\n<li><strong>niezawodno\u015b\u0107<\/strong> \u2013 czy system jest w stanie dzia\u0142a\u0107 poprawnie przez okre\u015blony czas i w okre\u015blonych warunkach. W tym przypadku nast\u0119puje r\u00f3wnie\u017c weryfikacja tolerowania usterek przez oprogramowanie. Sprawdzamy zdolno\u015b\u0107 systemu do kontynuowania dzia\u0142ania podczas wyst\u0105pienia awarii oraz zdolno\u015b\u0107 odtworzenia \u2013 odzyskania danych po awarii mierzone w czasie i stratach,&nbsp;<\/li>\n\n\n\n<li><strong>wydajno\u015b\u0107<\/strong> \u2013 jak du\u017co system wytrzyma. Czy b\u0119dzie dzia\u0142a\u0142 stabilnie w warunkach r\u00f3\u017cnego obci\u0105\u017cenia, jak szybko b\u0119dzie reagowa\u0107 na polecenia oraz w jakim czasie b\u0119d\u0105 wykonywa\u0142y si\u0119 obliczenia i jak szybka b\u0119dzie komunikacja z innymi systemami. Testy wydajno\u015bci opieraj\u0105 si\u0119 zwykle na okre\u015bleniu profili produkcyjnych na podstawie przewidywa\u0144 lub do\u015bwiadcze\u0144 z podobnymi systemami,&nbsp;<\/li>\n\n\n\n<li><strong>utrzymywalno\u015b\u0107 <\/strong>\u2013 mierzy stopie\u0144 mo\u017cliwych modyfikacji systemu w przysz\u0142o\u015bci, celem minimalizacji przestoj\u00f3w w dzia\u0142aniu aplikacji niezb\u0119dnych do jej utrzymania oraz minimalizacji koszt\u00f3w utrzymania. Istotne b\u0119dzie tutaj utrzymanie przejrzysto\u015bci kodu oraz prowadzenie dokumentacji,&nbsp;<\/li>\n\n\n\n<li><strong>przenaszalno\u015b\u0107 <\/strong>\u2013 okre\u015bla poziom skomplikowania przenoszenia aplikacji pomi\u0119dzy r\u00f3\u017cnymi \u015brodowiskami. Bada zdolno\u015bci adaptacyjne systemu \u2013 na przyk\u0142ad czy istnieje mo\u017cliwo\u015b\u0107 zainstalowania go na wszystkich systemach docelowych,&nbsp; <\/li>\n\n\n\n<li><strong>kompatybilno\u015b\u0107 <\/strong>\u2013 sprawdza mo\u017cliwo\u015b\u0107 wsp\u00f3\u0142istnienia r\u00f3\u017cnych program\u00f3w na tym samym \u015brodowisku oraz mo\u017cliwo\u015b\u0107 dzia\u0142ania przy r\u00f3\u017cnych parametrach. Przyk\u0142adowo, czy oprogramowanie dzia\u0142a na r\u00f3\u017cnych urz\u0105dzeniach, systemach czy przegl\u0105darkach internetowych tak samo.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>\u015awiadomo\u015b\u0107 test\u00f3w niefunkcjonalnych mocno ro\u015bnie, sprawdzaj\u0105 one bardzo wa\u017cne funkcje systemu. Rzeczywisto\u015b\u0107 niejednokrotnie zweryfikowa\u0142a ju\u017c ich znaczenie. Zagro\u017cenia, jakie niesie za sob\u0105 ich brak w procesie testowym, to <strong>wycieki poufnych danych klient\u00f3w, zablokowane strony dla okupu, niedzia\u0142aj\u0105ce p\u0142atno\u015bci w sklepach internetowych<\/strong> czy zwyczajnie brak intuicyjno\u015bci aplikacji lub <strong>zniech\u0119caj\u0105cy design.<\/strong><\/p>\n\n\n\n<p><strong>Przeczytaj tak\u017ce:<\/strong> <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testy-niefunkcjonalne\">Testy niefunkcjonalne \u2013 wszystko, co warto wiedzie\u0107<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testy strukturalne <\/h3>\n\n\n\n<p>Inaczej nazywane testami bia\u0142oskrzynkowymi. Mog\u0105 by\u0107 wykonane na wszystkich poziomach testowych. <strong>Najpro\u015bciej rzecz ujmuj\u0105c \u2013 to testowanie kodu.<\/strong> Wykonuje si\u0119 je jako wsparcie pomiar\u00f3w dok\u0142adno\u015bci poprzez ocen\u0119 pokrycia kodu, kt\u00f3ra jest mierzona wykonaniem kodu przy pomocy szeregu test\u00f3w, wyra\u017cone procentowo dla pokrytych element\u00f3w.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testy zwi\u0105zane ze zmianami<\/h3>\n\n\n\n<p>Dzielimy je na testy regresji oraz testy potwierdzaj\u0105ce. Oba typy mog\u0105 zosta\u0107 wykonane na wszystkich poziomach testowych.&nbsp;&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Testy potwierdzaj\u0105ce \u2013 to ponowne testy po naprawie defektu, wykonywane celem upewnienia si\u0119, \u017ce defekt zosta\u0142 usuni\u0119ty.&nbsp;&nbsp;<\/li>\n\n\n\n<li>Testowanie regresywne \u2013 ma na celu sprawdzenie, czy podczas naprawy lub zmian w aplikacji nie powsta\u0142y inne defekty w danym module lub w niezmienionej cz\u0119\u015bci oprogramowania.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Poza wyszczeg\u00f3lnionymi typami test\u00f3w wspomn\u0119 jeszcze o takich, kt\u00f3re przy zmianach czy naprawie oprogramowania pozwalaj\u0105 unikn\u0105\u0107 marnowania czasu \u2013 mianowicie <strong>smoke <\/strong>i <strong>sanity<\/strong>. Testy dymne (smoke) sprawdzaj\u0105, czy aplikacj\u0119 da si\u0119 uruchomi\u0107 i czy jej podstawowe funkcje dzia\u0142aj\u0105, natomiast testy kondycji (sanity) weryfikuj\u0105 now\u0105 funkcjonalno\u015b\u0107 bez sprawdzania, czy reszta dzia\u0142a. &nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Metody-testowania-oprogramowania\">Metody testowania oprogramowania&nbsp;<\/h2>\n\n\n\n<p>Zaw\u00f3d testera kryje r\u00f3\u017cne specjalizacje. Mo\u017cemy testowa\u0107 manualnie lub pisa\u0107 testy automatyczne. Ta pierwsza \u015bcie\u017cka nie wymaga zaawansowanej wiedzy technicznej, dlatego wiele os\u00f3b wybiera j\u0105 na pocz\u0105tku kariery w testach. Tester automatyzuj\u0105cy z kolei powinien spe\u0142nia\u0107 ju\u017c wy\u017csze wymagania, o czym poni\u017cej.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testowanie manualne&nbsp;<\/h3>\n\n\n\n<p>Tester r\u0119cznie sprawdza wszystkie istotne w kontek\u015bcie jako\u015bci i specyfikacji cechy oprogramowania, wykonuje przypadki testowe oraz opracowuje raporty testowe. Przyk\u0142adem test\u00f3w r\u0119cznych s\u0105 <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testerze-eksploruj\">testy eksploracyjne<\/a> (nie znaj\u0105c wcze\u015bniej aplikacji, tester uczy si\u0119 jej, jednocze\u015bnie weryfikuj\u0105c jej funkcjonowanie) lub testy oparte o specyfikacj\u0119, gdzie przypadki testowe tworzy si\u0119 na podstawie wymaga\u0144 funkcjonalnych. &nbsp;<\/p>\n\n\n\n<p>Do testowania manualnego nie s\u0105 wymagane zdolno\u015bci programistyczne, ale intuicja, dociekliwo\u015b\u0107 i ch\u0119ci do uczenia si\u0119. Warto jednak pami\u0119ta\u0107, \u017ce praca w IT to potrzeba ci\u0105g\u0142ego rozwoju ze wzgl\u0119du na szybki post\u0119p technologii.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Testowanie automatyczne&nbsp;<\/h3>\n\n\n\n<p><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/automatyzacja-testow-obalamy-mity\">Testowanie automatyczne <\/a>pozwala na wykonanie powtarzalnych zada\u0144 i test\u00f3w regresji w kr\u00f3tkim czasie, z mo\u017cliwo\u015bci\u0105 wielokrotnego odtworzenia. Oczywi\u015bcie najpierw trzeba takie testy przygotowa\u0107.&nbsp;<\/p>\n\n\n\n<p>Przed testerem automatyzuj\u0105cym stoj\u0105 ju\u017c nieco wy\u017csze wymagania. W tym przypadku nale\u017cy zna\u0107 j\u0119zyk programowania, w kt\u00f3rym b\u0119dziemy tworzy\u0107 testy. W testowaniu automatycznym przypadki testowe wykonuje si\u0119 z u\u017cyciem odpowiednich narz\u0119dzi \/ bibliotek i przygotowanych przez testera skrypt\u00f3w na potrzeby danego scenariusza, co pozwala zautomatyzowa\u0107 cz\u0119\u015b\u0107 scenariuszy testowych. Skrypt zwraca por\u00f3wnanie rzeczywistego wyniku z oczekiwanym, dzi\u0119ki czemu szybko i jednoznacznie jeste\u015bmy w stanie stwierdzi\u0107, czy oprogramowanie dzia\u0142a zgodnie z za\u0142o\u017ceniami. &nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Kto-mo\u017ce-zosta\u0107-testerem-oprogramowania?\">Kto mo\u017ce zosta\u0107 testerem oprogramowania?&nbsp;<\/h2>\n\n\n\n<p>Zaw\u00f3d testera na starcie wymaga podstawowych kompetencji mi\u0119kkich i zdolno\u015bci technicznych. Niezale\u017cnie od tego, czy m\u00f3wimy o testach manualnych, czy automatycznych tester powinien by\u0107 osob\u0105 skrupulatn\u0105, dociekliw\u0105, komunikatywn\u0105, asertywn\u0105, mie\u0107 du\u017co cierpliwo\u015bci, potrafi\u0107 pracowa\u0107 w zespole oraz nie ba\u0107 si\u0119 zg\u0142asza\u0107 b\u0142\u0119dy.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Testowanie-oprogramowania-\u2013-od-czego-zacz\u0105\u0107?\">Testowanie oprogramowania \u2013 od czego zacz\u0105\u0107?&nbsp;<\/h2>\n\n\n\n<p>Zaw\u00f3d testera oprogramowania aktualnie znajduje si\u0119 w czo\u0142\u00f3wce najpopularniejszych w bran\u017cy i dzi\u0119ki temu ch\u0119tni maj\u0105 du\u017co wi\u0119kszy, ni\u017c jeszcze kilka-kilkana\u015bcie lat temu, dost\u0119p do r\u00f3\u017cnego rodzaju szkole\u0144, kurs\u00f3w czy nawet bezp\u0142atnych webinar\u00f3w. Przeczytanie ksi\u0105\u017cki o testowaniu czy zainteresowanie si\u0119 sylabusem ISTQB r\u00f3wnie\u017c b\u0119d\u0105 dobre na pocz\u0105tku testerskiej drogi. Niekt\u00f3re firmy oferuj\u0105 r\u00f3wnie\u017c szkolenia z mo\u017cliwo\u015bci\u0105 p\u0142atnych sta\u017cy. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tester oprogramowania ci\u0105gle si\u0119 rozwija&nbsp;<\/h3>\n\n\n\n<p>Samo przyswojenie wiedzy o testach to nie wszystko. W zawodzie testera trzeba by\u0107 mocno nastawionym na ci\u0105g\u0142\u0105 nauk\u0119 \u2013 dotyczy to nie tylko pocz\u0105tkuj\u0105cych tester\u00f3w oprogramowania, ale nawet tych, kt\u00f3rzy maj\u0105 do\u015bwiadczenie w bran\u017cy. Dzieje si\u0119 tak dlatego, \u017ce technologie i oprogramowanie, z kt\u00f3rymi pracuje tester oprogramowania, ci\u0105gle ewoluuj\u0105. Osoba zajmuj\u0105ca si\u0119 testami oprogramowania jest wi\u0119c odpowiedzialna za ci\u0105g\u0142e zdobywanie wiedzy, m.in. jak i z czego zbudowana jest aplikacja i jakie problemy mog\u0105 z tego wynika\u0107, oraz jakie technologie i narz\u0119dzia mog\u0105 pos\u0142u\u017cy\u0107 ich namierzeniu i wyeliminowaniu. &nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">IT to nie tylko j\u0119zyki programowania\u2026&nbsp;<\/h3>\n\n\n\n<p>Bardzo istotn\u0105 spraw\u0105 w bran\u017cy IT jest te\u017c znajomo\u015b\u0107 j\u0119zyk\u00f3w obcych (angielskiego, niemieckiego, francuskiego). Wielu tester\u00f3w daje sobie rad\u0119 bez tej umiej\u0119tno\u015bci, jednak pr\u0119dzej czy p\u00f3\u017aniej, zw\u0142aszcza w miar\u0119 rozwoju umiej\u0119tno\u015bci, rynek weryfikuje kompetencje j\u0119zykowe. Testerzy znaj\u0105cy j\u0119zyk angielski na poziomie B2-C1 z powodzeniem odnajduj\u0105 si\u0119 w projektach mi\u0119dzynarodowych i maj\u0105 wi\u0119ksze mo\u017cliwo\u015bci znalezienia rozwi\u0105za\u0144 problem\u00f3w np. w angloj\u0119zycznych bazach wiedzy, czy na forach spo\u0142eczno\u015bci testerskiej. Znajomo\u015b\u0107 tego j\u0119zyka daje te\u017c wi\u0119ksze perspektywy na rynku pracy.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Podsumowanie\"><strong>Podsumowanie<\/strong>&nbsp;<\/h2>\n\n\n\n<p>Testowanie oprogramowania jest z\u0142o\u017conym procesem i nie polega \u2013 jak powszechnie si\u0119 uwa\u017ca \u2013 wy\u0142\u0105cznie na sprawdzeniu, czy program dzia\u0142a, jak nale\u017cy. Testowanie to r\u00f3wnie\u017c zapobieganie powstawaniu defekt\u00f3w w przysz\u0142o\u015bci, szukanie niepo\u017c\u0105danych skutk\u00f3w zmian, raportowanie wynik\u00f3w swojej pracy oraz ocenie jako\u015bci przedmiotu test\u00f3w.&nbsp;<\/p>\n\n\n\n<p>Testy zwi\u0119kszaj\u0105 sp\u00f3jno\u015b\u0107, wewn\u0119trzn\u0105 jako\u015b\u0107 i intuicyjno\u015b\u0107 oprogramowania. Pomagaj\u0105 te\u017c zachowa\u0107 estetyczny wygl\u0105d aplikacji. R\u00f3\u017cne poziomy i typy test\u00f3w wykonywanych na poszczeg\u00f3lnych, a czasem na wszystkich etapach tworzenia systemu, pomagaj\u0105 zapewni\u0107 najwy\u017csz\u0105 jako\u015b\u0107 aplikacji. A poniewa\u017c tych powstaje coraz wi\u0119cej, nie dziwi zainteresowanie testami. Dociekliwy, cierpliwy, komunikatywny, asertywny i skrupulatny tester oprogramowania, kt\u00f3ry lubi szuka\u0107 dziury w ca\u0142ym, to coraz cz\u0119\u015bciej osoba, bez kt\u00f3rej trudno obecnie wyobrazi\u0107 sobie cykl rozwoju oprogramowania.&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czym jest testowanie oprogramowania? W jaki spos\u00f3b testowanie pomaga zapobiec niepoprawnemu funkcjonowaniu aplikacji? Jakie predyspozycje nale\u017cy posiada\u0107, \u017ceby zosta\u0107 testerem oprogramowania i jak zacz\u0105\u0107? Odpowiedzi na te pytania znajdziecie w poni\u017cszym artykule.<\/p>\n","protected":false},"author":185,"featured_media":29729,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"iawp_total_views":336,"footnotes":""},"categories":[1,582],"tags":[562],"offering":[513],"class_list":["post-29718","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artykuly","category-technologie","tag-qa","offering-application-development"],"acf":[],"_links":{"self":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/29718","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\/185"}],"replies":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/comments?post=29718"}],"version-history":[{"count":6,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/29718\/revisions"}],"predecessor-version":[{"id":33889,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/29718\/revisions\/33889"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media\/29729"}],"wp:attachment":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media?parent=29718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/categories?post=29718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/tags?post=29718"},{"taxonomy":"offering","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/offering?post=29718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}