{"id":30771,"date":"2020-03-31T09:05:43","date_gmt":"2020-03-31T07:05:43","guid":{"rendered":"https:\/\/nearshore-it.eu\/artykuly\/minimalistyczny-przypadek-testowy\/"},"modified":"2024-11-07T14:53:43","modified_gmt":"2024-11-07T13:53:43","slug":"minimalistyczny-przypadek-testowy","status":"publish","type":"post","link":"https:\/\/nearshore-it.eu\/pl\/artykuly\/minimalistyczny-przypadek-testowy\/","title":{"rendered":"Minimalistyczny przypadek testowy"},"content":{"rendered":"\n<div class=\"table-of-contents\">\n    <p class=\"title\">Przejd\u017a do:<\/p>\n    <ol>\n                    <li><a href=\"#Przypadki-testowe\">1.  Przypadki testowe<\/a><\/li>\n                    <li><a href=\"#Z-czego-sklada-sie-przypadek-testowy\">2.  Z czego sk\u0142ada si\u0119 przypadek testowy?<\/a><\/li>\n                    <li><a href=\"#Testy-mniej-znaczy-wiecej\">3.  Testy: mniej znaczy wi\u0119cej?<\/a><\/li>\n                    <li><a href=\"#Jak-szybko-tworzyc-przypadki-wysokiego-poziomu\">4.  Jak szybko tworzy\u0107 przypadki wysokiego poziomu?<\/a><\/li>\n                    <li><a href=\"#Podsumowanie\">5.  Podsumowanie<\/a><\/li>\n            <\/ol>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"Przypadki-testowe\">Przypadki testowe<\/h2>\n\n\n\n<p>Jedn\u0105 z podstawowych czynno\u015bci testerskich jest tworzenie przypadk\u00f3w testowych w oparciu o zdefiniowane wymagania, co do wytwarzanego oprogramowania. Wed\u0142ug definicji ISTQB has\u0142o przypadek testowy (ang. test case) to:&nbsp;<\/p>\n\n\n\n<p><strong>\u201eZbi\u00f3r danych wej\u015bciowych, wst\u0119pnych warunk\u00f3w wykonania, oczekiwanych rezultat\u00f3w i&nbsp;ko\u0144cowych warunk\u00f3w wykonania, opracowany w&nbsp;okre\u015blonym celu lub dla warunku zweryfikowania zgodno\u015bci dzia\u0142ania programu z&nbsp;oczekiwanym rezultatem lub sprawdzenia warunku testowego\u201d.<\/strong><\/p>\n\n\n\n<p>Przypadki testowe mog\u0105 mie\u0107 charakter og\u00f3lny b\u0105d\u017a bardziej szczeg\u00f3\u0142owy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Przypadki testowe wysokiego poziomu<\/h3>\n\n\n\n<p>Te pierwsze tworzone s\u0105 bez konkretnych warto\u015bci wej\u015bciowych czy oczekiwanych rezultat\u00f3w. Zazwyczaj s\u0105 stosowane, gdy warto\u015bci oczekiwane nie s\u0105 jeszcze dost\u0119pne dla testera na etapie tworzenia przypadk\u00f3w lub wymagania s\u0105 niedodefiniowane czy te\u017c podane w spos\u00f3b og\u00f3lny. S\u0105 tak\u017ce przydatne, gdy na przyk\u0142ad w zespole jest do\u015bwiadczony tester i chce zachowa\u0107 swobod\u0119 wykonywania test\u00f3w, poniewa\u017c pozwalaj\u0105 one na wi\u0119ksz\u0105 kreatywno\u015b\u0107 przy ich wykonywaniu, przy jednoczesnym zachowaniu zgodno\u015bci z konkretnym wymaganiem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Przypadki testowe niskiego poziomu<\/h3>\n\n\n\n<p>Definicja przypadku testowego niskiego poziomu zawiera konkretne warto\u015bci wej\u015bciowe i oczekiwane wyniki. Taki rodzaj przypadk\u00f3w testowych dobrze jest stosowa\u0107 w sytuacji, kiedy tester jest niedo\u015bwiadczony. Inny przyk\u0142ad to gdy testy wykonuje ekspert w danej dziedzinie, kt\u00f3ry zna doskonale system, jednak nie posiada wiedzy z zakresu testowania oprogramowania i odpowiednich informacji. Dobry przypadek testowy niskiego poziomu s\u0142u\u017cy r\u00f3wnie\u017c do zewn\u0119trznej weryfikacji, takiej jak audyt procesu testowania.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Z-czego-sklada-sie-przypadek-testowy\">Z czego sk\u0142ada si\u0119 przypadek testowy?<\/h2>\n\n\n\n<p>Klasyczny przypadek testowy powinien zawiera\u0107 poszczeg\u00f3lne sk\u0142adowe, jakimi s\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>unikalny identyfikator \u2013 to&nbsp;nic innego, jak unikalne oznaczenie przypadku, aby m\u00f3c do&nbsp;niego w&nbsp;razie potrzeby bez&nbsp;problemu powr\u00f3ci\u0107,<\/li>\n\n\n\n<li>cel \u2013 opisuje przyczyn\u0119 stworzenia i&nbsp;przeprowadzenia testu,<\/li>\n\n\n\n<li>warunki wst\u0119pne \u2013 opisuj\u0105 kryteria, jakie maj\u0105 by\u0107 spe\u0142nione przez&nbsp;\u015brodowiska i&nbsp;system, zanim test b\u0119dzie m\u00f3g\u0142 by\u0107 wykonany,<\/li>\n\n\n\n<li>dane testowe (dotyczy przypadk\u00f3w testowych niskiego poziomu),<\/li>\n\n\n\n<li>oczekiwany wynik,<\/li>\n\n\n\n<li>warunki wyj\u015bciowe \u2013 czyli stan \u015brodowiska lub systemu po&nbsp;przeprowadzeniu testu.<\/li>\n<\/ul>\n\n\n\n<p>Czasami dostarczenie tych wszystkich sk\u0142adowych i&nbsp;zawarcie ich w&nbsp;jednym przypadku testowym mo\u017ce by\u0107 nie&nbsp;lada wyzwaniem dla testera. Zw\u0142aszcza je\u015bli sam zajmuje si\u0119 przygotowywaniem danych testowych do&nbsp;p\u00f3\u017aniejszych przypadk\u00f3w testowych. Wszystkie te aktywno\u015bci mog\u0105 zabiera\u0107 sporo czasu. Wiadomo, \u017ce&nbsp;dzi\u015b czas to&nbsp;pieni\u0105dz, a&nbsp;wi\u0119c&nbsp;w&nbsp;tym rozumieniu tworzenie przypadk\u00f3w testowych mo\u017ce by\u0107 pojmowane jako&nbsp;<a href=\"https:\/\/leanmanufacturingtools.org\/77\/the-seven-wastes-7-mudas\/\" target=\"_blank\" rel=\"noopener noreferrer\">waste<\/a>. Jak wi\u0119c&nbsp;zastosowa\u0107 ide\u0119 \u201ezero waste\u201d w&nbsp;testach? Jak tworzy\u0107 przypadki testowe, kt\u00f3re b\u0119d\u0105 zar\u00f3wno dobrej jako\u015bci, jak i ich przygotowanie nie&nbsp;b\u0119dzie zabiera\u0142o wiele czasu?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Testy-mniej-znaczy-wiecej\">Testy: mniej znaczy wi\u0119cej?<\/h2>\n\n\n\n<p>Jak posiada\u0107 tylko&nbsp;to, co najbardziej potrzebne i&nbsp;odr\u00f3\u017cnia\u0107 potrzeb\u0119 od&nbsp;zachcianki? Z&nbsp;pomoc\u0105 przychodzi koncepcja minimalizmu. Kieruj\u0105c si\u0119 ni\u0105 tak\u017ce w&nbsp;testach, spr\u00f3bujmy ze&nbsp;sk\u0142adowych klasycznego przypadku testowego wy\u0142uska\u0107 tylko&nbsp;te dane testowe, kt\u00f3re s\u0105 najbardziej potrzebne do&nbsp;przeprowadzenia testu. Moim zdaniem z&nbsp;wy\u017cej wymienionych sk\u0142adnik\u00f3w pozosta\u0142yby tylko&nbsp;takie cz\u0119\u015bci jak&nbsp;<strong>identyfikator <\/strong>oraz<strong>&nbsp;oczekiwany rezultat.<\/strong> Dlaczego w\u0142a\u015bnie te? Identyfikator to zazwyczaj numer \u2013 ale czasami mo\u017ce by\u0107 to te\u017c tytu\u0142 \u2013 po kt\u00f3rym mo\u017cemy do danego przypadku wr\u00f3ci\u0107 w celu jego ponownego wykonania czy te\u017c utrzymania. Natomiast najbardziej potrzebn\u0105 i istotn\u0105 cz\u0119\u015bci\u0105 przypadku testowego jest analiza oczekiwanych rezultat\u00f3w i ko\u0144cowych wynik\u00f3w konkretnego przypadku testowego (rezultat testu). Znaj\u0105c wynik, jaki mia\u0142by da\u0107 test, jeste\u015bmy w stanie jasno stwierdzi\u0107, czy zastane zachowanie oprogramowania po poprawnie wykonanym te\u015bcie zawiera b\u0142\u0119dy, czy nie \u2013 i zg\u0142osi\u0107 to do poprawy.<\/p>\n\n\n\n<p><strong>Czytaj r\u00f3wnie\u017c:&nbsp;<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/test-driven-development-na-co-dzien\/\" target=\"_blank\" rel=\"noreferrer noopener\">Test Driven Developmen na\u00a0co\u00a0dzie\u0144<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/automatyzacja-testow-obalamy-mity\/\" target=\"_blank\" rel=\"noreferrer noopener\">Automatyzacja testowania&nbsp;[obalamy mity]<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Jak-szybko-tworzyc-przypadki-wysokiego-poziomu\">Jak szybko tworzy\u0107 przypadki wysokiego poziomu?<\/h2>\n\n\n\n<p>Wykorzystuj\u0105c jedynie identyfikator i&nbsp;oczekiwany rezultat, mo\u017cna szybko tworzy\u0107 przypadki testowe wysokiego poziomu, kt\u00f3re nie&nbsp;zawieraj\u0105 zb\u0119dnych szczeg\u00f3\u0142\u00f3w. Ich przygotowanie zajmuje o&nbsp;wiele mniej czasu, poniewa\u017c nie&nbsp;podajemy wszystkich szczeg\u00f3\u0142owych danych. Taki typ przypadk\u00f3w testowych mo\u017ce by\u0107 spisany w&nbsp;dowolnej formie, je\u015bli tylko&nbsp;wymagania projektowe na&nbsp;to&nbsp;pozwalaj\u0105 i daj\u0105 oczekiwany rezultat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mapy my\u015bli<\/h3>\n\n\n\n<p>Bardzo szybkim i&nbsp;efektywnym sposobem spisywania takich przypadk\u00f3w testowych jest tworzenie mapy my\u015bli, kt\u00f3ra&nbsp;doskonale si\u0119 w&nbsp;tych okoliczno\u015bciach sprawdza. Dodatkowo metoda mapy my\u015bli pobudza kreatywno\u015b\u0107, kt\u00f3ra&nbsp;jest bardzo wa\u017cna w&nbsp;pracy testera. Mo\u017ce wi\u0119c&nbsp;przynie\u015b\u0107 dodatkow\u0105 korzy\u015b\u0107 w&nbsp;postaci r\u00f3\u017cnorodnych i&nbsp;lepszej jako\u015bci przypadk\u00f3w testowych ni\u017c te spisane tradycyjnymi sposobami.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Checklisty<\/h3>\n\n\n\n<p>Kolejnym sposobem na szybkie spisanie przypadk\u00f3w wysokiego poziomu mog\u0105 by\u0107 wszelkiego rodzaju listy kontrolne (ang. checklist). Taka lista kontrolna to jedno z najwa\u017cniejszych narz\u0119dzi w pracy testera. Si\u0142a listy tkwi w prostocie, poniewa\u017c&nbsp; potrzeba tylko kartki i d\u0142ugopisu. Swoim zasi\u0119giem mo\u017ce obj\u0105\u0107 ka\u017cdy rodzaj test\u00f3w, od test\u00f3w wymaga\u0144 po testy akceptacyjne. Nale\u017cy tylko pami\u0119ta\u0107, aby na li\u015bcie kontrolnej umieszcza\u0107 jedynie najwa\u017cniejsze przypadki testowe. W my\u015bl minimalizmu \u2013 lista kontrolna ma nas przecie\u017c chroni\u0107 przed zrobieniem wi\u0119cej, ni\u017c potrzeba. I tu pojawia si\u0119 pokusa, je\u015bli chodzi o ograniczanie czasu sp\u0119dzonego na przygotowywaniu przypadk\u00f3w testowych: dlaczego by nie p\u00f3j\u015b\u0107 o krok dalej i nie przygotowywa\u0107 ich wcale?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Metodyki zwinne<\/h3>\n\n\n\n<p>Projekty prowadzone wedle&nbsp;<a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/dlaczego-agile-bywa-niezrozumiany\" target=\"_blank\" rel=\"noopener noreferrer\">zwinnych metodyk<\/a> s\u0105 idealnym polem do&nbsp;wspomnianego wy\u017cej eksperymentu. W&nbsp;momencie kiedy tester jest zaanga\u017cowany od&nbsp;samego pocz\u0105tku w&nbsp;proces powstawania kryteri\u00f3w akceptacji danego zadania, jest w&nbsp;stanie p\u00f3\u017aniej na&nbsp;ich podstawie przeprowadzi\u0107 testy. Co prawda testowanie w&nbsp;oparciu o&nbsp;warunki akceptacji charakteryzuje si\u0119 tym, i\u017c kryteria powinny by\u0107 bezwarunkowo spe\u0142nione, a&nbsp;prawdziwe testy zaczynaj\u0105 si\u0119 dopiero p\u00f3\u017aniej, ale&nbsp;do\u015bwiadczony tester bez&nbsp;wi\u0119kszych problem\u00f3w jest w&nbsp;stanie zapewni\u0107 pokrycie testowe dla alternatywnych \u015bcie\u017cek ni\u017c te opisane w&nbsp;kryteriach akceptacji. A&nbsp;tym samym sprawdzi\u0107 r\u00f3\u017cne scenariusze, nie&nbsp;tylko&nbsp;te opisane w&nbsp;wymaganiach. Jednak aby m\u00f3c sobie pozwoli\u0107 na&nbsp;taki minimalizm w&nbsp;testowaniu, osoba testuj\u0105ca powinna mie\u0107 ju\u017c spore do\u015bwiadczenia z&nbsp;przer\u00f3\u017cnych projekt\u00f3w, a&nbsp;tak\u017ce dobrze wykszta\u0142cony zmys\u0142 testerski. W&nbsp;innym wypadku istnieje spore ryzyko, \u017ce&nbsp;zadanie nie&nbsp;zostanie pokryte wystarczaj\u0105c\u0105 ilo\u015bci\u0105 test\u00f3w, a&nbsp;tym samym jako\u015b\u0107 dostarczanego oprogramowania mo\u017ce by\u0107 ni\u017csza.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Podsumowanie\">Podsumowanie: czy minimalizm w testach jest dla ka\u017cdego?<\/h2>\n\n\n\n<p>Czy minimalizm w testowaniu jest dla ka\u017cdego? Ostatnie zdania poprzedniego akapitu zdaj\u0105 si\u0119 by\u0107 kluczowe w odpowiedzi na to pytanie. Testowanie bez przypadk\u00f3w testowych, a w oparciu o kryteria akceptacji lub z wykorzystaniem przypadk\u00f3w wysokiego poziomu, jest niebywale ryzykowne. Wymaga to du\u017cego do\u015bwiadczenia testera. Takie minimalistyczne praktyki testowe wymagaj\u0105 zar\u00f3wno &nbsp;ugruntowanej wiedzy z zakresu testowania oprogramowania, dobrej znajomo\u015bci testowanego produktu, jego charakterystyki, s\u0142abych punkt\u00f3w, jak i \u015bcie\u017cek krytycznych dla u\u017cytkownik\u00f3w. Niestety minimalizm cz\u0119sto mo\u017ce przynie\u015b\u0107 wi\u0119cej szk\u00f3d ni\u017c po\u017cytku. Nie znaczy to jednak, \u017ce nie zach\u0119cam do eksperyment\u00f3w z minimalizmem w pracy \u2013 wr\u0119cz przeciwnie! Warto od czasu do czasu wyj\u015b\u0107 ze swojej strefy komfortu i spr\u00f3bowa\u0107 celowo ograniczy\u0107 swoje potrzeby. Cho\u0107by po to, \u017ceby sprawdzi\u0107, czy rzeczywi\u015bcie potrzeba a\u017c tak wiele. Cz\u0119sto okazuje si\u0119, \u017ce nie. Ale sprawd\u017acie sami!<\/p>\n\n\n\n<p><strong>Przeczytaj tak\u017ce:<\/strong><br><a href=\"https:\/\/nearshore-it.eu\/pl\/artykuly\/quality-assurance-czyli-jak-zagwarantowac-jakosc-i-bezpieczenstwo-w-projektach-it\/\">Quality Assurance \u2013 jak zagwarantowa\u0107 jako\u015b\u0107 i\u00a0bezpiecze\u0144stwo w\u00a0projektach IT?<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Obecna sytuacja zweryfikowa\u0142a nasze d\u0105\u017cenia do ch\u0119ci posiadania nadmiaru d\u00f3br materialnych. Niemniej jednak tytu\u0142 minimalizmu jest niezmiennie oaz\u0105 wytchnienia od ci\u0105g\u0142ego \u201ewi\u0119cej\u201d. B\u0119d\u0105c zwolenniczk\u0105 \u017cycia wystarczaj\u0105co dobrego i posiadania tyle, ile potrzeba, zacz\u0119\u0142am zastanawia\u0107 si\u0119, czy minimalizm mog\u0119 wdro\u017cy\u0107 tak\u017ce w swoim \u017cyciu zawodowym. S\u0105dz\u0119, \u017ce mo\u017ce to nie\u015b\u0107 za sob\u0105 wiele korzy\u015bci. Ale czy minimalizm w testach jest dla ka\u017cdego?<\/p>\n","protected":false},"author":145,"featured_media":30772,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"iawp_total_views":76,"footnotes":""},"categories":[1,582],"tags":[562],"offering":[522],"class_list":["post-30771","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\/30771","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\/145"}],"replies":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/comments?post=30771"}],"version-history":[{"count":6,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/30771\/revisions"}],"predecessor-version":[{"id":33912,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/posts\/30771\/revisions\/33912"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media\/30772"}],"wp:attachment":[{"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/media?parent=30771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/categories?post=30771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/tags?post=30771"},{"taxonomy":"offering","embeddable":true,"href":"https:\/\/nearshore-it.eu\/pl\/wp-json\/wp\/v2\/offering?post=30771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}