{"id":30489,"date":"2020-04-23T07:49:47","date_gmt":"2020-04-23T05:49:47","guid":{"rendered":"https:\/\/nearshore-it.eu\/artykuly\/automatyzacja-testow-obalamy-mity\/"},"modified":"2024-11-07T15:34:22","modified_gmt":"2024-11-07T14:34:22","slug":"automatyzacja-testow-obalamy-mity","status":"publish","type":"post","link":"https:\/\/nearshore-it.eu\/pl\/artykuly\/automatyzacja-testow-obalamy-mity\/","title":{"rendered":"Automatyzacja test\u00f3w \u2013 obalamy mity"},"content":{"rendered":"\n<p class=\"lead\"><\/p>\n\n\n\n<div class=\"table-of-contents\">\n    <p class=\"title\"><\/p>\n    <ol>\n                    <li><a href=\"#Jak-dzia\u0142a-automatyzacja-test\u00f3w\">1.  Jak dzia\u0142a automatyzacja test\u00f3w?<\/a><\/li>\n                    <li><a href=\"#Automatyzacja-testowania-mity\">2.  Automatyzacja testowania \u2013 mity<\/a><\/li>\n                    <li><a href=\"#Podsumowanie\">3.  Podsumowanie<\/a><\/li>\n            <\/ol>\n<\/div>\n\n\n<h2 class=\"wp-block-heading ql-align-justify\" id=\"Jak-dzia\u0142a-automatyzacja-test\u00f3w\">Jak dzia\u0142a automatyzacja test\u00f3w?<\/h2>\n\n\n\n<p class=\"ql-align-justify\">Zanim napisz\u0119 szerzej o mitach dotycz\u0105cych procesu automatyzacji testowania oprogramowania, przyjrzyjmy si\u0119 bli\u017cej, jak tworzymy testy automatyczne. <strong>Na pocz\u0105tek okre\u015blamy obszary, kt\u00f3re potrzebujemy przetestowa\u0107 automatycznie, i zastanawiamy si\u0119, jak\u0105 warto\u015b\u0107 biznesow\u0105 chcemy z ich pomoc\u0105 uzyska\u0107&nbsp;oraz <\/strong>definiujemy przypadki testowe. Czy ma to by\u0107 sprawdzenie wydajno\u015bci systemu? A mo\u017ce potrzebujemy szybkiej informacji o jako\u015bci tworzonego produktu? Gdy ju\u017c ustalimy cel test\u00f3w automatycznych, zajmujemy si\u0119 aspektem technicznym, to znaczy dokonujemy wyboru narz\u0119dzia do testowania aplikacji, tworzymy \u015brodowisko testowe oraz skrypty niezb\u0119dne do wykonania test\u00f3w. Po uruchomieniu test\u00f3w jeste\u015bmy w stanie dokona\u0107 analizy rezultat\u00f3w i zweryfikowa\u0107, czy uda\u0142o si\u0119 uzyska\u0107 za\u0142o\u017con\u0105 na pocz\u0105tku test\u00f3w warto\u015b\u0107 biznesow\u0105.<\/p>\n\n\n\n<p class=\"ql-align-justify\">Co do&nbsp;samej zasady dzia\u0142ania deterministycznych test\u00f3w zautomatyzowanych, jest ona stosunkowo prosta. Najpierw aplikacj\u0119 wprowadzamy w&nbsp;pewien stan pocz\u0105tkowy umo\u017cliwiaj\u0105cy wykonanie akcji, kt\u00f3r\u0105 chcemy przetestowa\u0107, na&nbsp;przyk\u0142ad sprawdzamy, jak dana funkcjonalno\u015b\u0107 b\u0119dzie si\u0119 zachowywa\u0107, gdy&nbsp;jednocze\u015bnie b\u0119dzie z&nbsp;niej korzysta\u0107 1000&nbsp;u\u017cytkownik\u00f3w.&nbsp;<strong>Weryfikacja opiera si\u0119 na&nbsp;por\u00f3wnaniu oczekiwanych za\u0142o\u017ce\u0144 z&nbsp;aktualnym stanem aplikacji.<\/strong><\/p>\n\n\n\n<p class=\"ql-align-justify\"><strong>Przeczytaj r\u00f3wnie\u017c: <\/strong><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/test-driven-development-na-co-dzien\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Test-Driven Development<\/strong><\/a><strong> na co dzie\u0144<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading ql-align-justify\" id=\"Automatyzacja-testowania-mity\">Automatyzacja testowania \u2013 mity<\/h2>\n\n\n\n<h3 class=\"wp-block-heading ql-align-justify\">1. Testy automatyczne pozwalaj\u0105 przeprowadzi\u0107 dowolny test<\/h3>\n\n\n\n<p class=\"ql-align-justify\">Jednym z&nbsp;najbardziej powszechnych mit\u00f3w dotycz\u0105cych automatyzacji test\u00f3w jest przekonanie, \u017ce&nbsp;mo\u017cna zautomatyzowa\u0107 ka\u017cdy test. Zastan\u00f3wmy si\u0119 jednak: czy&nbsp;w&nbsp;praktyce jest to&nbsp;mo\u017cliwe? Jak zaznacza ISTQB (International Software Testing Qualifications Board), organizacja certyfikacyjna w&nbsp;dziedzinie testowania jako\u015bci oprogramowania, testowanie to&nbsp;proces niesko\u0144czony, a&nbsp;zatem nie&nbsp;jeste\u015bmy w&nbsp;stanie przewidzie\u0107 i&nbsp;przetestowa\u0107 wszystkiego.<\/p>\n\n\n\n<p class=\"ql-align-justify\"><strong>Automatyzacja test\u00f3w pozostaje niezast\u0105piona przy wykonywaniu test\u00f3w wydajno\u015bci, obci\u0105\u017cenia i&nbsp;test\u00f3w przeci\u0105\u017caj\u0105cych. S\u0105 jednak aspekty, kt\u00f3re trudno podda\u0107 automatyzacji.<\/strong>&nbsp;Cz\u0119\u015b\u0107 test\u00f3w niefunkcjonalnych, czyli zwi\u0105zanych z&nbsp;estetyk\u0105, przejrzysto\u015bci\u0105 interfejsu u\u017cytkownika czy&nbsp;czytelno\u015bci\u0105, oparta jest na&nbsp;osobistych odczuciach. Nie&nbsp;jeste\u015bmy w&nbsp;stanie ustali\u0107 dla nich warunk\u00f3w wyj\u015bciowych i&nbsp;oczekiwanego rezultatu. Kwestia wygl\u0105du czy&nbsp;przejrzysto\u015bci mo\u017ce wi\u0119c&nbsp;podlega\u0107 jedynie ocenie ludzkiego oka. Podobnie nie&nbsp;mo\u017cna zautomatyzowa\u0107 test\u00f3w dost\u0119pno\u015bci, kt\u00f3re polegaj\u0105 na&nbsp;ocenie oprogramowania pod&nbsp;k\u0105tem przystosowania dla os\u00f3b niepe\u0142nosprawnych.<\/p>\n\n\n\n<p class=\"ql-align-justify\">Podsumowuj\u0105c, skoro s\u0105 testy, kt\u00f3rych&nbsp;nie&nbsp;jeste\u015bmy w&nbsp;stanie zrealizowa\u0107 automatyzacj\u0105 test\u00f3w, nie&nbsp;mo\u017cemy zast\u0105pi\u0107 test\u00f3w manualnych testami automatycznymi, jak g\u0142osi kolejny powszechny mit. B\u0119d\u0105 obszary, kt\u00f3re wymagaj\u0105 manualnego sprawdzenia, o&nbsp;czym pisz\u0119 ni\u017cej.<\/p>\n\n\n\n<p><strong>Przeczytaj r\u00f3wnie\u017c:<\/strong> <a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testy-bdd-czy-naprawde-sa-potrzebne\"><strong>Testy BDD<\/strong><\/a> &#8211;&nbsp; <strong>na czym polegaj\u0105 i czy na prawd\u0119 s\u0105 potrzebne?<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading ql-align-justify\">2. Dzi\u0119ki automatyzacji test\u00f3w mo\u017cna zrezygnowa\u0107 z testowania manualnego<\/h3>\n\n\n\n<p class=\"ql-align-justify\">Stwierdzenie to&nbsp;jest podobne do&nbsp;powszechnego kiedy\u015b przekonania, \u017ce&nbsp;telewizja ca\u0142kowicie zast\u0105pi radio. Dzi\u015b widzimy, \u017ce&nbsp;media takie jak radio, telewizja i&nbsp;Internet wsp\u00f3\u0142istniej\u0105&nbsp;i uzupe\u0142niaj\u0105 si\u0119. Podobnie jest z&nbsp;testami automatycznymi i&nbsp;manualnymi.<strong>&nbsp;Ogromn\u0105 zalet\u0105 automatyzacji jest jej powtarzalno\u015b\u0107 \u2013 zak\u0142adaj\u0105c poprawn\u0105 implementacj\u0119 test\u00f3w, mo\u017cemy mie\u0107 pewno\u015b\u0107, \u017ce&nbsp;testy automatyczne b\u0119d\u0105 wykonane zawsze w&nbsp;ten sam, odtwarzalny spos\u00f3b.<\/strong>&nbsp;Dodatkowo, w&nbsp;przeciwie\u0144stwie do&nbsp;cz\u0142owieka, s\u0105 w&nbsp;stanie pracowa\u0107 nieustannie&nbsp;\u2013 bez&nbsp;przerwy na&nbsp;kaw\u0119, sen czy&nbsp;weekendowy odpoczynek. Brakuje im jednak pewnego pierwiastka, kt\u00f3ry&nbsp;pozwala na&nbsp;efektywne przetestowanie aplikacji: inteligencji, intuicji oraz&nbsp;wyobra\u017ani.<\/p>\n\n\n\n<p class=\"ql-align-justify\">W&nbsp;spos\u00f3b manualny jeste\u015bmy w&nbsp;stanie wykona\u0107 znaczn\u0105 cz\u0119\u015b\u0107 test\u00f3w, kt\u00f3re oceni\u0105, w&nbsp;jakim stopniu aplikacja spe\u0142nia zar\u00f3wno wymagania funkcjonalne, jak i&nbsp;niefunkcjonalne. Testy manualne b\u0119d\u0105 wi\u0119c&nbsp;potrzebne, bo zawsze b\u0119d\u0105 obszary wymagaj\u0105ce wiedzy&nbsp;i bezpo\u015bredniego zaanga\u017cowania testera oprogramowania. B\u0119d\u0105 to&nbsp;takie obszary test\u00f3w jak testy u\u017cyteczno\u015bci, dost\u0119pno\u015bci i&nbsp;bezpiecze\u0144stwa.&nbsp;<strong>Automatyzacja stanowi uzupe\u0142nienie test\u00f3w manualnych,<\/strong>&nbsp;ale&nbsp;nie&nbsp;jest w&nbsp;stanie zast\u0105pi\u0107 np.&nbsp;<a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/testerze-eksploruj\" target=\"_blank\" rel=\"noopener noreferrer\">test\u00f3w eksploracyjnych<\/a> oraz&nbsp;techniki opartej na&nbsp;zgadywaniu b\u0142\u0119d\u00f3w, bazuj\u0105cej na&nbsp;do\u015bwiadczeniu testera zar\u00f3wno w&nbsp;kontek\u015bcie testowanego produktu, jak i&nbsp;narz\u0119dzi, kt\u00f3re zosta\u0142y wykorzystane do&nbsp;jego stworzenia.<\/p>\n\n\n\n<p class=\"ql-align-justify\"><strong>Przeczytaj r\u00f3wnie\u017c: minimalistyczny<\/strong><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/minimalistyczny-przypadek-testowy\" target=\"_blank\" rel=\"noopener noreferrer\"><strong> przypadek testowy<\/strong><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading ql-align-justify\">3. Rola test\u00f3w automatycznych to znajdowanie wielu defekt\u00f3w<\/h3>\n\n\n\n<p class=\"ql-align-justify\">Wbrew powszechnej opinii testy automatyczne nie&nbsp;wykazuj\u0105 wielu b\u0142\u0119d\u00f3w. Kto\u015b mo\u017ce zapyta\u0107: \u201eAle jak to? Czy&nbsp;nie&nbsp;to&nbsp;w\u0142a\u015bnie chcemy uzyska\u0107 poprzez automatyzacj\u0119 test\u00f3w?\u201d Oczywi\u015bcie jest to&nbsp;jeden z&nbsp;aspekt\u00f3w, do&nbsp;kt\u00f3rych&nbsp;d\u0105\u017cymy.&nbsp;<strong>W&nbsp;przypadku test\u00f3w automatycznych wa\u017cniejsza jest jednak nie&nbsp;ilo\u015b\u0107, lecz&nbsp;jako\u015b\u0107.<\/strong>&nbsp;Przytaczaj\u0105c konkretny przyk\u0142ad, testy automatyczne przynios\u0105 nam informacj\u0119 o&nbsp;defektach, kt\u00f3re pojawi\u0142y si\u0119 w&nbsp;istniej\u0105cych funkcjonalno\u015bciach po&nbsp;zmianie kodu. S\u0105 to&nbsp;tak&nbsp;zwane testy regresji, kt\u00f3rych&nbsp;zadaniem jest sprawdzenie tego, czy&nbsp;najnowsze zmiany oprogramowania, \u015brodowiska i&nbsp;konfiguracji nie&nbsp;wp\u0142yn\u0119\u0142y negatywnie na&nbsp;rozwijany produkt.&nbsp;<strong>Zautomatyzowane testy regresji pozwalaj\u0105 zast\u0105pi\u0107 manualn\u0105 prac\u0119 zespo\u0142\u00f3w developerskich, kt\u00f3ra w zale\u017cno\u015bci od z\u0142o\u017cono\u015bci oprogramowania zaj\u0119\u0142aby wiele godzin, dni, a nawet tygodni<\/strong>. Wraz z&nbsp;ka\u017cdym testem automatycznym zwi\u0119ksza si\u0119 zaufanie do&nbsp;tworzonego oprogramowania i&nbsp;chocia\u017c nie&nbsp;wyka\u017c\u0105 one wielu b\u0142\u0119d\u00f3w, pozwol\u0105 oszcz\u0119dzi\u0107 czas i&nbsp;pracowa\u0107 nad&nbsp;jako\u015bci\u0105 produktu \u2013 a&nbsp;przecie\u017c to&nbsp;ona jest w&nbsp;og\u00f3lnym rozrachunku najwa\u017cniejsza.<\/p>\n\n\n\n<h3 class=\"wp-block-heading ql-align-justify\">4. Ka\u017cdy przypadek testowy nale\u017cy zautomatyzowa\u0107, je\u015bli to&nbsp;mo\u017cliwe<\/h3>\n\n\n\n<p class=\"ql-align-justify\">Jeste\u015bmy ju\u017c \u015bwiadomi, \u017ce&nbsp;nie&nbsp;wszystko mo\u017cna zautomatyzowa\u0107 i&nbsp;\u017ce&nbsp;testy automatyczne w&nbsp;pewnych obszarach nie&nbsp;zast\u0105pi\u0105 test\u00f3w manualnych.&nbsp;<strong>Skoro jednak identyfikujemy wiele przypadk\u00f3w testowych, kt\u00f3re mo\u017cna zautomatyzowa\u0107, to&nbsp;czy&nbsp;w&nbsp;ka\u017cdym przypadku warto?<\/strong><\/p>\n\n\n\n<p class=\"ql-align-justify\">S\u0105 sytuacje, gdy&nbsp;trzeba dzia\u0142a\u0107 szybko i&nbsp;przetestowa\u0107 dan\u0105 funkcjonalno\u015b\u0107 bez&nbsp;anga\u017cowania dodatkowych \u015brodk\u00f3w czy&nbsp;narz\u0119dzi \u2013 z&nbsp;czym wi\u0105\u017ce si\u0119 niejednokrotnie wdra\u017canie test\u00f3w automatycznych. Aby odpowiedzie\u0107 na&nbsp;pytanie o&nbsp;zasadno\u015b\u0107 stosowania test\u00f3w automatycznych dla wszystkich przypadk\u00f3w testowych, pos\u0142u\u017c\u0119 si\u0119 cytatem Rogera Needhama, dyrektora Centrum Bada\u0144 Microsoft:<\/p>\n\n\n\n<p class=\"ql-align-justify\">\u201eAutomatyzacja to&nbsp;zast\u0119powanie tego, co dzia\u0142a, czym\u015b, co prawie dzia\u0142a, ale&nbsp;jest szybsze i&nbsp;ta\u0144sze\u201d.<\/p>\n\n\n\n<p class=\"ql-align-justify\">To&nbsp;zdanie przypomina o&nbsp;dw\u00f3ch podstawowych warunkach, kt\u00f3re wskazuj\u0105 na&nbsp;zasadno\u015b\u0107 automatyzacji test\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wykonanie automatycznych test\u00f3w powinno by\u0107 szybsze ni\u017c manualna weryfikacja zachowania systemu<\/li>\n\n\n\n<li>koszt zaprogramowania testu nie&nbsp;powinien przekracza\u0107 zysku, jaki uzyskamy z&nbsp;jego automatyzacji<\/li>\n<\/ul>\n\n\n\n<p class=\"ql-align-justify\">Przed&nbsp;podj\u0119ciem decyzji o&nbsp;automatyzacji test\u00f3w warto wi\u0119c&nbsp;wzi\u0105\u0107 pod&nbsp;uwag\u0119 liczne aspekty, takie jak koszt narz\u0119dzi i&nbsp;czas ich implementacji oraz&nbsp;to, ile czasu potrzebowaliby\u015bmy na&nbsp;testy manualne. To&nbsp;powinno da\u0107 odpowied\u017a na&nbsp;pytanie o&nbsp;zasadno\u015b\u0107 wprowadzenia test\u00f3w automatycznych pod&nbsp;k\u0105tem biznesowym.<\/p>\n\n\n\n<h2 class=\"wp-block-heading ql-align-justify\" id=\"Podsumowanie\">Podsumowanie<\/h2>\n\n\n\n<p class=\"ql-align-justify\">Pomimo wielu kr\u0105\u017c\u0105cych mit\u00f3w automatyzacja test\u00f3w stopniowo zyskuje na&nbsp;popularno\u015bci, a&nbsp;cel jej stosowania jest coraz lepiej rozumiany. Wci\u0105\u017c jednak konieczne jest rozwiewanie wielu w\u0105tpliwo\u015bci z&nbsp;ni\u0105 zwi\u0105zanych, a&nbsp;<strong>powracaj\u0105cy temat mit\u00f3w dotycz\u0105cych test\u00f3w automatycznych jest dowodem na&nbsp;to, jak wiele jeszcze jest do&nbsp;zrobienia w&nbsp;kwestii odczarowania powszechnych, b\u0142\u0119dnych przekona\u0144.<\/strong>&nbsp;Mam nadziej\u0119, \u017ce&nbsp;uda\u0142o mi si\u0119 rozwia\u0107 kilka z&nbsp;nich, a&nbsp;artyku\u0142 ten przyczyni si\u0119 do&nbsp;dyskusji na&nbsp;temat test\u00f3w automatycznych, kt\u00f3re \u2013 jakkolwiek by&nbsp;na&nbsp;to&nbsp;nie&nbsp;spojrze\u0107 \u2013 stanowi\u0105 przecie\u017c znaczn\u0105 pomoc dla tester\u00f3w oprogramowania w&nbsp;dostarczaniu wysokiej jako\u015bci produktu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wok\u00f3\u0142 automatyzacji test\u00f3w naros\u0142o wiele mit\u00f3w dotycz\u0105cych koszt\u00f3w wdro\u017cenia i ich utrzymania, s\u0142uszno\u015bci oraz rodzaj\u00f3w test\u00f3w, kt\u00f3re mog\u0105 podlega\u0107 automatyzacji. To gor\u0105cy temat, kt\u00f3ry powraca podczas wielu testerskich konferencji oraz meet-up\u00f3w. Niejasno\u015bci wok\u00f3\u0142 test\u00f3w automatycznych nie sprzyjaj\u0105 dostarczaniu produkt\u00f3w o najwy\u017cszej jako\u015bci i nie zach\u0119caj\u0105 do ich stosowania, mimo \u017ce liczba narz\u0119dzi pozwalaj\u0105cych na automatyzacj\u0119 proces\u00f3w testowych nieustannie wzrasta, a tym samym rosn\u0105 mo\u017cliwo\u015bci ich wykorzystania. W dzisiejszym artykule bior\u0119 pod lup\u0119 powszechne mity zwi\u0105zane z automatyzacj\u0105 test\u00f3w i rozwiewam w\u0105tpliwo\u015bci z nimi zwi\u0105zane.<\/p>\n","protected":false},"author":33,"featured_media":30490,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"iawp_total_views":84,"footnotes":""},"categories":[1,582],"tags":[562],"offering":[513],"class_list":["post-30489","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\/30489","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\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/comments?post=30489"}],"version-history":[{"count":3,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/30489\/revisions"}],"predecessor-version":[{"id":33961,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/30489\/revisions\/33961"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media\/30490"}],"wp:attachment":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media?parent=30489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/categories?post=30489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/tags?post=30489"},{"taxonomy":"offering","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/offering?post=30489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}