Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.OdTESTOWaniaręCZnEGOdOaUTOMaTYCZnEGO
Pewnym,choćdosyćnaiwnympodejściemdoautomatycznegowykrywaniabłędów,
jestporównywanieobrazuwidocznegonaekraniezobrazemoczekiwanym,któryzostał
nagrany.Podejścietomajednakkilkawad,zktórychczęśćmajedyniecharaktertech-
niczny.Przykładowo,mogąwystąpićpewneróżnicenapoziomierozdzielczościekranu,
różnicewzakresiewyświetlanejnaekraniedatyigodziny,różnicewdowolnychdanych
wyświetlanychnaekranie,którenieistotnedlatestuitd.Niektórenarzędziapozwalają
namprzezwyciężyćtetechniczneproblemypoprzezwykluczenietychobszarówzrzutu
ekranu,wktórychmogąpojawiaćsięuzasadnioneróżnice.Podobnyproblemistnieje
wprzypadkurejestrowaniaruchusieciowegoHTTP
,ponieważczęśćdanychmożezawie-
raćuzasadnioneróżnice.Tutajrównieżmożemyskorzystaćznarzędzi,którepozwoląnam
zdecydowaćotym,którefragmentyodpowiedzichcemyporównywać,aktórewykluczyć.
Anawetjeślitetechniczneproblemyudanamsięrozwiązaćprzyużyciunarzędzi,tonadal
istniećbędziedużawadabędącanieodłącznączęściąkoncepcjinagrywaniaiodtwarzania:
każdadozwolonazmianawaplikacjibędzieuznawanazadefekt,coznaczącoutrudninam
rozróżnianiewynikówfałszywiedodatnimiodfaktycznychniepowodzeń.
Natymetapiemożnabypowiedzieć:hWielkarzecz!Wykonujemytestyregresji,aby
upewnićsię,żewszystkodziaładokładnietakjakdotejpory!”.Pozwólcie,żeodpowiem
wtensposób:jeśliniktnieruszałkodu
6testowanegosystemu(systemundertest,SUT),to
niewystąpiżadnaregresja,atymsamymniemasensumarnowaćczasunawykonywanie
jakichkolwiektestówczytoręcznie,czyautomatycznie.Zdrugiejstrony,żadenprogra-
mistaniebędzieraczejzmieniałkodu,jeśliniezamierzaonwprowadzaćzmianywza-
chowaniuaplikacji!Stądteżwykonywanietestówmasensjedyniewprzypadkupojawie-
niasięzmian,azatemprzykażdymwykonywaniutestówpowinniśmyoczekiwać,żecoś
zostałozmienione.
Gdywykonujemytestyręcznie,rzadkouznajemytezmianyzaproblem.Częstozmia-
nytenatylemałe,żejeślitylkobędziemykierowaćsięnaszymwłasnymosądemizdro-
wymrozsądkiem,tonadalsłowaopisującekolejnekrokitestubędziemymogliprzełożyć
nanowezachowanieaplikacji,nawetjeśliniepasująjużdosiebiedokładnie.Tenosąd
izdrowyrozsądekopartenanaszejwiedzy,doświadczeniu,komunikacjizinnymiczłon-
kamizespołuitd.wykorzystujemydooceny,czyjakaśzmianajestbłędem,czyuspraw-
nieniem.Niestetymaszynaniedysponujetakimiumiejętnościami,więcwszystkiebłędy
iuprawnionezmianytraktujenarówni.
Jeślispodziewanewynikinaszychtestówzbytogólne(czylihdokładnietak,jak
było”),zamiastodzwierciedlaćwyłącznieszczegółoweinformacje,którychprzetestowa-
niejestistotne,tonaszetestyzbytczęstobędąkończyćsięniepomyślniezpowoduupraw-
nionychzmian,anieprawdziwychbłędów.Innymisłowy,stosunekwynikówfałszywie
dodatnichdoprawdziwychniepowodzeńbędziezbytwysoki,przezconaszetestybędą
mniejwiarygodne!Bezprzejrzystychizwięzłychspodziewanychwynikówprawdopodobnie
natkniemysięnaponiższeproblemy:
6Wtymkontekściehkod”odnosisiędodowolnegoartefaktubędącegoczęściąsystemuimogącegowpły-
waćnajegozachowanie.Jeślinaprzykładlistapaństwwbaziedanychjestczymś,czegoużytkownikniemoże
iniepowinienzmieniać,tolistętakąmożnauznaćzaczęśćkoduaplikacji.
12