Parę słów o testowaniu (regresja, sanity, smoke)

Poniższy tekst jest czystą formalnością, zapisuję dla uporządkowania terminologii.

Otóż do tej pory testowałem aplikacje, które poprawiałem lub pisałem od zera. Wczoraj i dzisiaj spotkałem się z terminami: regresja i testy regresyjne, testy smoke i testy sanity. Okazuje się, że wykonywałem do tej pory te czynności tylko trzymałem je w jednym worze (testowanie) natomiast użycie wczoraj tych pojęć w rozmowie z PM (project manager) wprowadziło małe zamieszanie. Dlatego wpisuję je tutaj by sobie wszystko uporządkować.

Za wikipedią

Regresja – zjawisko powstawania błędów w oprogramowaniu po zamierzonej zmianie w jakiejś części kodu programu (np. po wprowadzeniu poprawki dla innego błędu). Skutkiem tych zmian może być błędne działanie innej funkcji programu, która w poprzednich wersjach działała prawidłowo.

Aby wykryć regresję podczas rozwoju programu, należy prowadzić testowanie regresyjne.

Zazwyczaj wykonywanie testów regresyjnych związane jest z ponownym uruchomieniem zestawu testów, które wcześniej kończyły się poprawnie. Ma ono na celu ujawnienie potencjalnych problemów powstałych na skutek dokonanych zmian.

Czyli klasyka, zjawisko, z którym każdy spotkał się nieraz. Poprawiłem A, przestało działać B 🙂

 

Natomiast pojęcia smoke i sanity są dla mnie zupełną nowością.

Najlepszą definicję znalazłem tutaj

http://www.testowanie.net/testowanie/smoke-test-i-sanity-test/

Smoke test określa czy możliwe jest przeprowadzenie testów.
Sanity test odpowiada na pytanie czy jest to zasadne.

Smoke test

Smoke test mówi nam, czy program/system da się uruchomić, czy jego interfejsy są dostępne i czy reagują na działania użytkownika. Jeżeli smoke test nie powiedzie się nie ma powodu aby przechodzić do sanity testów. Ten typ testów przeprowadzany jest przez programistów tuż przed oddaniem wersji aplikacji lub przez testerów, przed zaakceptowaniem otrzymanej do testów aplikacji.

Sanity test

Sanity test sprawdza pojedyńcze funkcjonalności i daje odpowiedź na pytanie: czy logika aplikacji jest zgodna z dostarczonymi wymaganiami. Jeżeli przeprowadzenie sanity testu da negatywne rezultaty, nie ma powodu, aby przechodzić do następnej fazy testowania.

 

Lutowe wyzwania plus dobra karma dla umysłu

Trzymajcie kciuki, w lutym postanowiłem sobie dwa ważne wyzwania:

  1. Nie będę wchodzić na wykop. Póki co się udaje, ale łapię się na tym, że otwieram safari po paręnaście razy dziennie i palec zamiera nad zakładką. Po namyśle (popartym załączonymi poniżej artykułami) stwierdziłem, że to taki fb bis, rzadko znajduję tam wartościowy materiał a czas marnuję niemiłosiernie.
  2. Nie będę słuchać podcastów o grach komputerowych. Po pierwsze, dlatego, że nie mam kiedy w nie grać a takie słuchanie buduje tylko mój żal lub też psuje mi przyszłą zabawę poprzez spoilery lub czyjeś opinie. Po drugie dekoncentruje mnie w pracy.

 

Póki co minęły dwa dni a ja już mogę pochwalić się wyczyszczeniem listy otwartych w safari zakładek (niektóre wisiały tam od ponad miesiąca!). Tak trzymać.

 

Polecam również ciekawe artykuły, które mnie do tego zachęciły (i nie tylko, trochę robię taki ich zapis by nie uciekły).

Bardzo ciekawy blog, z niego będzie najwięcej linków

  1. Pożywka dla umysłu. Odrzuć fast food (wykop). Serio, zacząłem zauważać już u siebie problemy z koncentracją. http://jamesclear.com/brain-food
  2. Przestań odwlekać! Zasada dwóch minut (to akurat już znałem i czasami stosowałem, tutaj rozwinięcie tej idei) http://jamesclear.com/how-to-stop-procrastinating
  3. Nie ważny cel a system i wytrwałość. To akurat mnie mocno zaskoczyło, ciekawe podejście. http://jamesclear.com/goals-systems
  4. Zaufaj sobie i twórz! Jest to skorelowane z moimi niedawnymi przemyśleniami (może o tym napiszę). I właśnie z powodu tego artykułu w swoim wolnym czasie piszę tę notkę a nie rozwalam obcych w Xcom 2. I szczerze? Czuję się z tym wspaniale! http://jamesclear.com/make-things
  5. I na koniec polski blog, który warto śledzić, porusza ciekawe problemy dookoła programowania. Np. to, że pomimo ogromu pracy i potrzebnych kwalifikacji czujemy się często najsłabszym ogniwem w zespole. Czyli o „impostor syndrome” http://www.javadevmatt.pl/impostor-syndrome-u-programisty-i-nie-tylko/

 

PS. Akurat żona i dzieciaki śpią, ale boję się, że lada moment obudzi się najmłodszy i patrzę czujnie na zegarek. I co? I zamiast grać lub siedzieć na wykopie w ciągu ostatnich 20 minut:

  1. Napisałem ten post
  2. Kupiłem prezent walentynkowy
  3. Spisałem w notatkach parę pomysłów na aplikacje

To było dobry wieczór. Sobie i Wam więcej takich życzę.

Reaktywacja plus git merge vs. rebase

Krótko i na temat – przywracam bloga do życia – będzie znowu o grach ale również o rozwoju siebie, programowaniu, nauce, inżynierii programowania. Wszystko co ciekawe i czego się nauczyłem w danym dniu – ląduje na blogu!

 

Dzisiaj na przykład zagłębiłem się w temat różnic pomiędzy git merge a git rebase, polecam bardzo te dwa poniższe wpisy na ten temat.

 

https://www.atlassian.com/git/tutorials/merging-vs-rebasing/workflow-walkthrough

http://www.pzielinski.com/?p=2667

Liczy się detal, zwłaszcza w mobilach

Obrazek

 

Ostatnio jedyną grą w jaką gram na telefonie (iPhone 4) jest Flappy Bird. Przez sieć przewinęła się już dyskusja na temat tej gry i wysypu jej klonów i do tego ostatniego tematu pozwolę sobie się odnieść.

Samą grę uważam za bardzo dobry produkt. Po pierwsze wciąga, jest solidnie wykonana, pozwala mi rozwijać „skill” i naprawdę sprawia mi sporo frajdy. Jest zdecydowanie warta uwagi i zasłużenie przynosi twórcy profity. I jest świetnym przykładem tego, że sam pomysł w świecie gier jest wart funta kłaków i liczy się wykonanie. Śmieszą mnie też argumenty, że to prosta, niewarta uwagi giereczka, którą mógłby zrobić każdy i nie warto się nią zajmować a autor Dong Nguyen niesprawiedliwie zarabia na niej kokosy (mimo usunięcia z AppStore reklamy nadal działają). Otóż twórcy Unreal Engine (tak tak, dokładnie tego zaawansowanego silnika) dostarczyli kolejnej porcji argumentów, że jednak liczy się wykonanie.

W ramach promocji swojego silnika, pokazali że dzięki niemu można tworzyć gry mobilne bez większej wiedzy programistycznej, tworząc Tappy Chicken. Grę zbudował ich grafik. I mimo identycznego pomysłu (ptaszek omija przeszkody) gra jest zupełnie odmienna od pierwowzoru. Ładuje się długo, działa wolno, ma trochę inny model fizyki i mimo lepszej grafiki oraz dodatkowych efektów zupełnie nie jest „miodna” (bardzo lubię ten termin, zawiera w sobie istotę gier). 

Aczkolwiek nie śpieszmy się pochopnie sądzić, że klony są lepsze od pierwowzorów. Otóż za drugi przykład niech posłużą nam gry logiczne Threes oraz wzorowana na niej 2048. Tutaj jest odwrotnie, 2048 działa płynniej i szybciej, „trójek” nie chce mi się włączać gdy mam w perspektywie czekanie minutę na załadowanie planszy.

Przykłady tych gier dowodzą, jak zawiłą i trudną materią są gry, jak delikatnym i wrażliwym procesem jest ich tworzenie. Sam pomysł to nie wszystko, kluczowym jest dopracowanie tytułu. Również odnoszę wrażenie, że wielu twórców (jak i konsumentów niestety) zupełnie nie rozumie platformy jaką jest telefon, jej możliwości ale i wielu ograniczeń. Kompletnie odpychają mnie tytuły ze skomplikowanym sterowaniem lub zbyt szczegółową grafiką wyświetlającą istotne dla rozgrywki detale wielkości paru pikseli na mały ekranie telefonu. Nie tędy droga. Moim zdaniem telefon to przede wszystkim miejsce dla lekkich pamięciowo, szybkich i płynnych tytułów o prostym sterowaniu (co nie znaczy że nie mogą to być skomplikowane i wymagające tytuły). Proszę nie starać się przykrywać braku dopracowania designu gry pamięciożernymi grafikami 🙂

 

Życzę sobie więcej Flappy Bird na komórki, śmiało nadchodźcie!

 

PS. Wpis ten również dedykuję wszystkim wyrzucającym pieniądze w projektach kickstarterowych lub Early Access. Ale o tym być może jeszcze innym razem. 

Rysa w anomalii (recenzja Anomaly 2)

Niedawno skończyłem drugą (trzecią jeśli liczyć Anomaly Korea) odsłonę cyklu o dzielnych Ziemianach atakujących wieże Obcych. 

Anomaly 2 stanowi rozwinięcie pomysłu z poprzednich części. Nadal walczymy ze stacjonarnymi wieżyczkami aczkolwiek nasze jednostki posiadają teraz dwa tryby pracy pomiędzy którymi przełączamy się podwójnym kliknięciem („morfujemy”). Twórcy zwrócili również uwagę na takie aspekty jak zasięg i szybkostrzelność, różnicując nasze jak i wrogie siły pod tym względem (na przykład niektórych pozaziemskich konstrukcji nie wolno atakować szybkostrzelnymi oddziałami). Jest to próba pogłębienia rozgrywki, moim zdaniem średnio udana (większość gry przeszedłem rekieterami). 

Dodatkowo Anomaly 2 została wyposażona w tryb multiplayer, którego niestety nie udało mi się przetestować z braku chętnych do gry. Więc jak chcecie zagrać w MP to najlepiej z jakimś kolegą.

 

Moje wrażenia? Szału nie ma. Rozszerzenie o możliwość zmiany funkcji jednostek w locie jest ciekawym pomysłem, który potrafi się przerodzić w irytującą przeszkadzajkę w bardziej gorących momentach. Gra jest po prostu kolejną częścią Anomaly i moim zdaniem gorszą od swoich poprzedniczek. Grałem we wszystkie części i tę musiałem „wymęczyć” do końca, nie mając praktycznie już żadnej radochy gry, byle odłożyć na wirtualną półkę „ukończone”. 

Winę za to ponoszą moim zdaniem dwa czynniki. Pierwszy to brak znacznego rozwoju wieżyczek (pominę wieżyczkę Predator i koszmarną misję, podczas której się pojawia, chciałbym poznać osobę, która tę misję zaprojektowała). Ogólnie widzieliśmy już to wszystko wcześniej.

Drugi winowajca ( za to poleci parę oczek w dół w ocenie) to FATALNY system save / checkpoint. Misje są naprawdę wymagające i potrafią trwać po pół godziny jeśli się przykładasz. I teraz ciekawostka – checkpointy są rozmieszczone wyjątkowo rzadko i nielogicznie. Wiele razy zwłaszcza po wprowadzeniu wspomnianej wcześniej wieżyczki Predator czyściłem jakiś obszar z Obcych potem wracałem się pół mapy do ostatniego checkpointa by zapisać i tak w kółko. Czytając w czasie powrotów gazetę / książkę.  P   A   S   J   O   N   U   J   Ą   C   E … 

Po drugie save’y. Ja nie proszę o wiele, ale taka funkcjonalność jak zapisanie gry w danym momencie w chwili wyjścia z niej to jednak już jakiś standard. Dwa razy musiałem odejść od gry i wyłączyć komputer i naprawdę było mi szkoda zmarnowanego czasu. Nie wiem jak twórcy, ale żonaci pracujący 30latkowie nie mają nieskończonych zasobów wolnego czasu.

Oczywiście przy każdym powrocie do misji gra musiała mi pokazać każdą cutscenkę, każdy dialog, każdy filmik pokazujący użycie nowej broni. Ech… bolało.

Rozgrywka mimo dodania wcześniej wspomnianych możliwości wydawała mi się płytsza niż wcześniej i miałem wrażenie, że na siłę w niektórych miejscach wpycha się żądane przez level designera rozwiązanie. „Patrz, tutaj MUSISZ użyć tego pojazdu, bo jak nie to zgniotę Cię jak robaka”. Wolność w taktycznym podejściu znana z poprzednich części (mimo mniejszego zasobu środków w dyspozycji gracza!) gdzieś uleciała. 

 

Podsumowując. Byłem fanem serii, zagrałem we wszystkie części włącznie z genialnym Winter Challenge, niestety Anomaly 2 czegoś zabrakło plus nie naprawiła błędów poprzedniczek (mimo obietnic twórców z vlogów kręconych w czasie tworzenia gry). Szkoda. Po kolejną grę z serii na pewno nie sięgnę. 

Ocena 6/10

 

PS. Planuję w kolejnym wpisie przeanalizować pod względem designu grę i w ramach ćwiczeń zaproponować autorską wersję Anomaly 2. 

Rozdzieranie Lary Croft (Tomb Raider)

Tomb Raider (wersja na konsolę Playstation 3) ukończony, pozostały do zebrania jeszcze wszystkie „znajdźki” ale już mogę grę zrecenzować.

W skrócie dla tych, którym nie chce się czytać – moja ocena 8/10.

Gra jest bardzo ładna graficznie, jest dopracowana, świetne udźwiękowiona. Wiatr w tej gdzie to poezja, strzelanie z łuku to sama przyjemność, świat jest przemyślany i naprawdę bogaty. Czas ładowania poszczególnych poziomów jest bardzo krótki a przejścia między planszami są sprytnie zamaskowane, co nadaje grze niesamowitej płynności. Naprawdę potrafi wciągnąć rozgrywką plus tajemnicą. Rozwój postaci i punkty umiejętności, przepiękne widoki, dużo dzienników, reliktów, operowanie ogniem (ogień jako narzędzie a nie tylko ciekawy efekt). Rewelacja! Pierwsze chwile spędzone z grą sprawiły, że byłem prawdziwie oczarowany. To wszystko wpisuję po stronie plusów.

Moje dwa główne zarzuty obniżające ocenę (byłby maks) o dwa punkty to:

– zmarnowanie ogromnego potencjału na rzecz bezmózgiej sieczki od połowy gry oraz ogromna, obrzydliwa brutalność

– brak konsekwencji, rozdarcie głównej bohaterki, które wyrywa nas z zaangażowania.

Mamy dwie gry, dwie wizje bohaterki i dwie historie. W scenach pomiędzy grą Lara jest obolała, często raniona, słaba, przestraszona, skulona przy ognisku marznie. Oczywiście zbiera się w garść, musi, przytłoczona okolicznościami i „dojrzewa” (bullshit). W ciągu dwóch nocy ze zwykłej nastolatki zmienia się psychopatyczną wypraną z uczuć masową morderczynię. Zabija, łamie, podpala, okalecza, dusi. Bo ja wiem, wymordowałem wraz z nią parę setek mężczyzn. Narracja gry stara się nam wdusić w gardło historię biednej kobiety, która musi walczyć o przetrwanie, zabijać mimo iż nie chce i takie tam emo bzdury. BULLSHIT. Nie ma wyboru jak również i my jako gracze takowego nie mamy. Bowiem już sam gameplay nie daje nam najmniejszej szansy na ominięcie przeciwników (poza wyreżyserowanymi fragmentami), najwyżej punktowane są strzały w głowę i duszenie bezbronnego przeciwnika, najlepszą taktyką w zbiorowej walce podpalanie mężczyzn by skazać ich na śmierć w męczarniach. Już Batman jest bardziej ludzki (on ogłusza przeciwników) nie wspominając o scyborgizowanym Jensenie z Deus Ex (mógł przechodzić lokalizacje nie podejmując w ogóle walki). W Tomb Raider jest tylko jedna droga – śmierć. Przeciwnicy niczego nie kwestionują, nie rzucają się na nas by nas pojmać, tylko by od razu zabić. Gracz z kolei ma dwa wybory – ciche zabijanie nieświadomych przeciwników by zebrać więcej doświadczenia lub otwarta walka z większą ilością zbirów. Nic ponadto. Do połowy gry biegałem po planszy zaciekawiony szukając różnych przedmiotów i poznając tajemnicę wyspy a potem zostałem wrzucony w wielogodzinny nużący i nudny festiwal strzelaniny i flaków. Jeśli tak się szuka dojrzałości w grach to ja dziękuję, wysiadam.

Dodatkowo, gra jest niezmiernie brutalna, obrzydliwa. Porno przemocy. W grze ginie trzech towarzyszy Lary, jednak w ŻADNYM przypadku nie jest ukazana ich śmierć. Natomiast tej młodej kobiecie twórcy zafundowali festiwal odrażających męk dla ciała, czego tam nie ma! Zagryzienie przez wilki, łamanie, przebijanie, miażdżenie. Pełen zestaw. Oczywiście przy odpowiednich jękach i zbliżeniach i spowolnieniach, żebyś niczego nie przegapił. Lara odwiedza hale pełne ciał, nurza się w rzekach krwi, wypruwa wnętrzności, widzi wiele przemocy. Fuj. Wczoraj spotkałem się z moimi młodszymi kuzynami i nie mogłem im nawet o tej grze powiedzieć. Gdyby wyciąć te całe „dojrzałe” (BULLSHIT) fragmenty gry, ten cały festiwal przemocy, to byłaby dla nich bardzo fajna gra z ciekawym elementem eksploracji. Niestety te wszystkie grobowce, relikty, dzienniki, piękne poziomy i widoki zostały zepchnięte na dalszy plan przez wiadro taniego efekciarstwa rodem z horrorów klasy B.

Tomb Raider byłby pełniejszy bez tej całej fabuły o dojrzewaniu do mordowania, bez tych wszystkich filmików którym kompletnie nie uwierzyłem. W Batmanie (to są bardzo podobne gry) fabuła i gra tworzyły spójną całość. Tutaj miałem pełną akcji rozgrywkę a potem filmik z kulejącą i przestraszoną kobietą a potem znowu bum bum. Bez sensu. Festiwal przemocy i brutalności też mogliby sobie twórcy podarować.

Fani Uncharted i Batmana Arkham Asylum – brać w ciemno. Reszta, spróbujcie jakiegoś demo, obejrzyjcie film z rozgrywki i jeśli Wam podejdzie możecie brać. Aha, nie przejmujcie się fabułą.