Czego się uczyć ? – część II
Uwaga! Ten wpis jest kontunuacją artykułu, który możesz znaleźć na moim blogu pod tym linkiem. Warto zapoznać się z jego treścią przed przystąpieniem do dalszej lektury.
GIT
Git to rozproszony system kontroli wersji. W uproszczeniu można założyć, że służy on do zachowywania informacji o zmianach w plikach. Pozwala nam to na cofanie się do konkretnej wersji pliku co powoduje, że możemy eksperymentować z Naszymi plikami bez obawy, że stracimy działającą wersję kodu. Z Gita korzystamy do wersjonowania kodu aplikacji albo testów automatycznych. Nic nie stoi na przeszkodzie, aby wersjonować pliki tekstowe np. z pracą magisterską.
Jenkins
Jenkins to darmowy serwer automatyzacji typu open source. Pomaga zautomatyzować części tworzenia oprogramowania związane z budowaniem, testowaniem i wdrażaniem, ułatwiając ciągłą integrację i ciągłe dostarczanie. W najprostszy sposób Jenkinsa można zdefiniować jako narzędzie które uruchomi nam jakąś komendę w określonym czasie lub po wystąpieniu konkretnego zdarzenia. Możemy na przykład skonfigurować Jenkinsa, aby uruchamiał komendę „mvn test” (komenda uruchamiająca testy) w określonych odstępach czasu ( co 24h ) lub gdy nastąpi jakieś zdarzenie ( wprowadzenie zmian do kodu przez programistę). Taka automatyczna konfiguracja uruchamiania testów daje Nam pewność, że zostaną one uruchomione po każdej zmianie w kodzie i nikt nie musi pamiętać, aby uruchamiać takie testy ręcznie. Możemy tutaj również dodać kolejny krok, który wrzuci najnowszą wersję aplikacji na produkcję. Komenda wrzucająca aplikację na produkcję zostanie uruchomiona tylko wtedy, gdy krok z testami zakończy się sukcesem.
BDD
Behaviour Driven Development polega na napisaniu testów akceptacyjnych w języku naturalnym, czego celem jest powszechne zrozumienie pomiędzy poszczególnymi członkami zespołu. Do tworzenia testów przy pomocy BDD można skorzystać z Cucumbera i Gherkina. Następnie kolejne kroki zdefiniowane w języku naturalnym łączone są z odpowiednimi metodami napisanymi w wybranym języku programowania co powoduje wykonanie konkretnych kroków testu. BDD staje się bardzo popularne i warto wiedzieć jak stworzyć testy zgodnie z tym podejściem.
Docker
Docker to platforma służąca tworzeniu, dostarczaniu oraz uruchamianiu aplikacji w zwirtualizowanym środowisku kontenerów. Docker rozwiązuje wiele problemów z kompatybilnością między środowiskami oraz zależnościami. W przypadku testów automatycznych możemy stworzyć kontener do testów, który będzie używany przez wszystkich członków zespołu. Pozwoli to wyeliminować błędy związane z różną konfiguracją komputerów wśród członków zespołu oraz usprawni uruchamianie testów automatycznych. Docker ułatwi również pobieranie odpowiedniej wersji sterowników przeglądarki oraz pomoże w tworzeniu Selenium Grid.
SoapUI
SoapUI to aplikacja do testowania usług internetowych typu open source dla protokołu SOAP i REST. SoapUI jest bardzo potężną aplikacją, która poza wysłaniem prostego zapytania i zweryfikowaniem odpowiedzi umożliwi nam również przeprowadzenie testów bezpieczeństwa oraz testów obciążeniowych. Aplikacja występuje również w wersji PRO, która oferuje dużo więcej funkcjonalności. Na początek zapoznanie się z z wersją podstawową w zupełności wystarczy.
Appium
Appium to narzędzie typu open source do tworzenia testów automatycznych aplikacji mobilnych. Za pomocą appium możemy symulować zachowanie realnego użytkownika w aplikacji mobilnej. Testy w appium piszemy w wybranym języku programowania i uruchamiamy na telefonie komórkowym, który jest połączony z komputerem za pomocą kabla USB. Istnieje również możliwość uruchomienia takich testów na emulatorze, który jest programem komputerowym symulującym zachowanie wybranego urządzenia mobilnego lub na całej „farmie” takich urządzeń.
Podsumowanie
Ilość narzędzi na rynku może wydać się przytłaczająca. Nie martw się , istnieje duża szansa, że nie będziesz miał szansy zetknąć się z większością z nich w projekcie komercyjnym.
Chciałbym również kolejny raz podkreślić, że nie musisz znać wszystkich narzędzi, bibliotek i frameworków, które opisałem, aby wyróżnić się na rynku i dostać swoją pierwszą pracę. Warto pamiętać, że wymienione we wpisie narzędzia mają swoich konkurentów i przed przystąpieniem do nauki warto zrobić wstępne rozpoznanie.