Jak zarządzać dużą ilością testów automatycznych?

testy automatyczne

Testy automatyczne – jeszcze kilka lat temu coś bardzo egzotycznego i mało spotykanego – bo przecież można zatrudnić skończoną ilość studentów do przeklikiwania. Chyba wielu słyszało ten idiotyczny tekst. Rynek jednak powoli się zmienia. Obecnie okazuje się, że przysłowiowych klikaczy nie ma już tak wielu. Zresztą, zatrudnianie klikaczy do testowania aplikacji od A do Z jest skrajnie nieefektywne kosztowo. Taka osoba może klikać 8h dziennie, jednak po kilku iteracjach klikania zacznie być coraz mniej efektywna, przyjdzie zarówno zmęczenie jak i znużenie. Efektywność w wyłapywaniu błędów może znacząco spaść.

Testy automatyczne

Testy automatyczne to naturalny krok w rozwoju organizacji. Dosyć szybko można zauważyć, że niektóre testy można zautomatyzować. Ma to tę zaletę, że odciążamy człowieka, który teraz może bardziej skupić się na pracy testera, czyli na opracowywaniu scenariuszy testowych, a nie na bezmyślnym klikaniu wg. ustalonego scenariusza. Może zająć się czymś bardziej kreatywnym. Super…

…ale

…ale nie ma róży bez kolców. Test automatyczny działa bardzo zero-jedynkowo, albo przechodzi albo nie. Jeśli testy automatyczne są napisane prawidłowo – czyli nie są to tzw. flaky tests, które raz przechodzą a raz nie – to powinny zacząć nie przechodzić w momencie pojawienia się błędu w aplikacji lub w przypadku zmiany logiki aplikacji.

Jeśli pojawił się błąd w aplikacji – należy poprawić aplikację, jeśli natomiast zmieniła się logika aplikacji to trzeba dostosować test automatyczny do nowych wymagań. Jest jednak jeszcze jedna zmiana, która nie jest ani błędem ani zmianą w logice aplikacji, a też może spowodować, że nasze testy automatyczne przestaną działać.

Testy automatyczne a zmiana interfejsu użytkownika

No właśnie, zmiana w interfejsie użytkownika. Trochę inne kolorki, trochę inny układ przycisków, drobne poprawki UI/UX i już nasze testy leżą.

Z każdym jednym testem automatycznym, który dodajemy do naszego rozwiązania dodajemy kolejny element, który trzeba utrzymywać. Przy 2-5-10 testach automatycznych to nie jest wiele pracy, ale co jeśli tych testów będzie 100-1000? Wtedy zaczyna to być znaczący koszt. Czasem pojawia się pomysł, aby zaprzestać używać testów automatycznych, bo to kosztuje zbyt dużo. Decyzja taka jednak jest jak wylanie dziecka z kąpielą. Rozwiązuje problem, ale może niekoniecznie w sposób pożądany. Albo dosadniej, na ból głowy lepiej wziąć lekarstwo niż zaaplikować gilotynę. Niby oba sposoby działają, ale ten pierwszy jest jednak bardziej preferowany.

Ok, to jak poradzić sobie z dużą ilością testów automatycznych? Tak, aby się dało to utrzymywać przy rozsądnym koszcie? Rozwiązaniem jest Page Object Pattern. Wzorzec bardzo prosty w swoim założeniu i genialnie efektywny, jeśli stosowany poprawnie. Jeśli chcesz wiedzieć więcej na temat tego wzorca, to zapraszam Cię na zupełnie DARMOWY webinar na temat Page Object Pattern.

Jest tylko jeden haczyk. Trzeba się spieszyć z rejestracją, bo czasu nie zostało wiele.

REJESTRACJA

BBQ4IT czyli najlepsza konferencja na Podbeskidziu – Call For Papers


BBQ4IT jako pomysł pojawił się dwa lata temu. Od pomysłu do czynu i tak powstała konferencja (więcej o BBQ4.IT możesz przeczytać tutaj). W tym roku odbędzie się kolejna edycja tej zacnej inicjatywy. Prace nad nią już trwają. W związku z tym mamy dla Ciebie propozycję. Jeśli chcesz współtworzyć tą konferencję z nami to zgłoś swojego talka na BBQ4IT już dzisiaj. Scenę będziesz dzielić z dwiema gwiazdami polskiej sceny IT, które już potwierdziły swój udział… (ale na razie ciiiisza, nie zdradzamy kto to) więc, żeby potem nie było płaczu, że mogłam/mogłem wystąpić na scenie obok ….. i ……. 🙂 siadaj do tematu i wysyłaj na:

 

http://bbq4.it/c4p

 

 

Raspberry pi zero w +WiFi + ssh czyli jak ustawić nie mając odpowiedniej przejściówki

Uzupełniając vloga nr 16 – gdzie mówiłem o WiFi w Raspberry Pi zero W pora napisać jak skonfigurować WiFi i ssh jeśli nie mamy przejściówki MikroUSB <-> gniazdo USB. Zamiast kupować, szukać wystarczy:

Uruchamiamy SSH:

na karcie SD założyć plik o nazwie ssh i dowolnej treści. Możemy z poziomu dowolnego systemu operacyjnego to zrobić wkładając kartę SD do czytnika i zakładając plik. Treść nie ma zupełnie znaczenia. Znaczenie ma nazwa tego pliku. Przy starcie raspberry pi sprawdzi czy plik ssh istnieje i jeśli istnieje to się odpowiednio skonfiguruje. Prosta sprawa.

Uruchamiamy WiFi:

Z WiFi sprawa jest trochę bardziej skomplikowana. Musimy sięgnąć do bebechów na karcie. Dokładniej do pliku /etc/wpa_supplicant/wpa_supplicant.conf. Jeśli masz linuxa lub maca sprawa jest prosta. W przypadku Windowsa jest trudniej ponieważ Windows natywnie nie chce czytać systemu plików Linuxa, co więcej nawet nie widzi głównej części karty gdzie znajdują się wszystkie dane. Sprawa jednak jest prosta. Użyjmy linuxa. Najszybiej będzie zainstalować po prostu maszynę wirtualną – jeśli nie wiesz co to jest maszyna wirtualna to na początek najbardziej bezbolesny będzie Virtual Box. W Virtual Boxie zakładamy nową maszynę i jako nośnik CD wrzucamy ISO choćby pobrane ze strony Ubuntu (oczywiście może to być dowolny linux ale ubuntu wiem, że zadziała z Virtual Boxem i jest sporo materiałów o ubuntu gdyby chcieć wejść bardziej w świat linuksów). Po tej operacji będziemy mieli linuxa pod ręką.

Pozostaje jedynie udostępnić kartę SD maszynie (Menu-> Urządzenia -> USB -> Twój czytnik kart SD) i odpowiednio ustawić plik /etc/wpa_supplicant/wpa_supplicant.conf a odpowiednio to bardzo prosto:

network={
    ssid="nazwa_wifi"
    psk="haslo_wifi"
}

Tylko tyle i aż tyle. Po uruchomieniu maliny z tak zmienioną kartą malinka połączy się do naszego WiFi

Uruchomiło się i co dalej

Jeśli malinka się uruchomiła to pozostaje ją znaleźć w swojej sieci. Najłatwiej będzie zaglądnąć do routera i do klientów DHCP. Mając PI malinki lecimy już z górki:

ssh 192.168.x.x -l pi 

Podać hasło (defaultowe jest bodajże raspberry) i jesteśmy w środku. Stąd mamy klika możliwości. Albo uruchamiamy vnc (jak we vlogu) albo ustawiamy statyczne IP, żeby nie trzeba było szukać maliny po sieci albo aktualizyjemy albo robimy cokolwiek innego chcemy od naszej malinki 🙂