Środowisko testów

Kategorie: testy.

Tworząc aplikację można się zastanawiać czy od razu wszystko w niej działa. No jak coś nie działa to trzeba spróbować coś zrobić żeby działało. W takich wypadkach dzieli się aplikację na moduły, bo w razie jakby jeden moduł nie działał to tylko on nie działa, a nie cała aplikacja. Istnieją różne metodyki tworzenia kodu jak Agile, Scrum i inne do tego wzorce projektowe, architektury jak MVC czyli Model - View - Cotroller, czysty kod i tego typu rzeczy. No ale są też testy aplikacji. W dzisiejszym ujęciu mówi się o testach jednostkowych, które cokolwiek pokażą, jasne że tak, ale nawet one nie gwarantują nam, że aplikacja nie zawiera błędów.

Błąd to rzecz ludzka wiadomo. No to tak, uruchamiam kompilator, sprawdzam czy kod mi się kompiluje, jak tak to fajnie, jak nie no to trzeba coś zrobić żeby się kompilował. Więc ja robię tak, że dodaję moduły po kolei i po każdym dodaniu modułu kompiluję kod. W ten sposób widzę po którym dodaniu kod się nie kompiluje lub też kompiluje, ale aplikacja nie działa bo może być i tak. Więc biorę sobie osobno dany moduł i sprawdzam co poszło nie tak, źle lub po prostu czemu to no nie działa. Są różnego rodzaju błędy czy inne rzeczy, tu nie dodasz średnika i już ci się kod nie skompiluje. A nawet jak wszystko ci się skompiluje to aplikacja może się nie uruchomić, bo nie i tyle.

Więc jeżeli jest tak to mogę zastąpić niedziałający moduł działającym. Struktura modułowa to mój twór, inne nie wiadomo dlatego korzystam z tego co jest. Jeżeli chodzi o moduł, uruchamiam sobie go i patrzę jak ten moduł w ogóle działa, jak z niego korzystać. Jest to tzw. środowisko testowe. Widzę jak aplikacja zachowuje się kiedy podam poprawne dane i niepoprawne dzięki czemu mogę stworzyć mechanizmy które zapobiegają podawaniu niepoprawnych danych. Przykładowo, użytkownik miał podać liczbę, a podał ciąg znaków czyli jakiś tekst. Aplikacja obsługuje tylko liczby więc ciekawym rozwiązaniem jest stworzenie modułu sprawdzającego czy użytkownik podał liczbę, tekst czy co. Jak liczbę to lecim dalej, jak nie no to jak.

Takie środowisko testów pozwala głębiej przypatrzeć się ewentualnym problemom czy innym rzeczom które wynikają czy wychodzą podczas korzystania z aplikacji. Czyli można utworzyć testy strumieniowe. Podajemy ciąg znaków, danych i szukamy rozwiązań na to co zrobić żeby właśnie dane sobie przechodziły elegancko dalej. No to czyli mam sobie wersję w fazie beta i sobie z niej trochę pokorzystam. Jak wychodzą jakieś błędy czy coś no to je poprawiam. To jest coś innego niż zgłoś błąd aplikacji, ponieważ zgłaszanie błędów to helpdesk, a to jest zwykły wzorzec projektowy o nazwie środowisko testów. Z jego ramienia można wymyślać inne rodzaje testów.

I już na etapie testów mogę zobaczyć jakie błędy mogą wystąpić czy takie rzeczy. Jest to interpunkcja, jeden średnik za mało i już kompilator wyświetla komunikat "gdzie masz średnik ty łobuzie jeden ty". Już klamerki nie ma i to samo. Kolejny błąd to jest wyjście poza zbiór jak ja to nazywam czyli np. poza zakres tablicy, wektora, itd. Wyjdę poza zakres no to już jest lipa i tu kompilator wcale nie wyświetla błędów. Jest więc tu ciekawe założenie mówiące, że moduł może działać dobrze lub nie. Wchodzę więc w to "nie" i sprawdzam co jeszcze można tu poprawić. Trzymanie się pewnego zakresu daje wynik fajny, a wyjście poza zakres może skutkować nawet wyłączeniem się aplikacji.