TESTY

W trosce o jakość wdrożyliśmy mechanizm tzw. unit testów. Oznacza to, że wszystkie nasze aplikacje są wyposażone w specjalizowane funkcje testujące poprawność pojedynczych małych jednostek oprogramowania. Dla każdego zlecenia stworzonego w dmt@work (a co za tym idzie w Jira) programiści tworzą specjalne procedury testowe, które następnie są wykonywane w sposób całkowicie automatyczny. W efekcie osiągnęliśmy zdecydowaną poprawę jakości oprogramowania poprzez automatyzację testów regresji – sprawdzenie czy błąd jaki już kiedyś występował i został naprawiony – nie pojawił się ponownie.

Jednocześnie stosując mechanizm testów bazy danych (dbFit) automatyczne badamy jakość procedur składowanych w bazie danych. Procedury te stanowią fundament na którym budowana jest reszta aplikacji – dlatego używamy narzędzi które w sposób zautomatyzowany są w stanie przeprowadzić gigantyczną liczbę testów i zbadać poprawności wykonania procedur składowanych, nawet przy najdrobniejszych zmianach. Testy na tym poziomie można rozumieć jako testy warstwy bazy danych w klasycznej trójwarstwowej architekturze aplikacji.

Dopełnieniem procesu testów jest mechanizm testowania interfejsów programistycznych do aplikacji (REST). Oznacza to, że nim przeprowadzimy testy interfejsu użytkownika automatycznie sprawdzamy poprawność interfejsów programistycznych (wywołujących procedury składowane i wykorzystujących unity aplikacji testowane na poziomie unit testów). Testy na tym poziomie można rozumieć jako testy warstwy biznesowej.

Powyższe mechanizmy testów łączymy z testami intrerfejsu użytkownika dla aplikacji WWW wykonywanymi przez dział testów wykorzystujący w tym celu m.in. oprogramowanie Selenium będące zestawem narzędzi służących do zapisywania scenariuszy testowych a następnie ich automatycznego wykonywania przy każdej najdrobniejszej modyfikacji aplikacji, nawet jeśli z pozoru dana modyfikacja wydaje się nie mieć jakiegokolwiek związku z innymi elementami aplikacji.

Ponadto wdrożyliśmy rozwiązanie pozwalające na automatyczne wykonywanie nie tylko procesu budowania aplikacji z przygotowanych przez programistów kodów źródłowych, ale nade wszystko na automatyczne wykonanie wszystkich testów powyżej (Continuous integration). Celem jest aby każda kolejna – nawet minimalna poprawka dowolnego fragmentu kodu źródłowego aplikacji powodowała automatyczne wykonanie wszystkich automatycznych testów: testów jednostkowych, testów bazy danych (procedur składowanych), testów warstwy biznesowej  i testów interfejsu użytkownika.

Oczywiście nie wszystkie testy da się przetestować automatycznie. Oprogramowania Jira Capture, zintegrowane z Jira służy do wspomagania testów manualnych. Rolą Jira Capture jest przyspieszenie pracy działu testów poprzez ułatwienie rejestracji wszelkich błędów w Jira i automatyczne kierowanie ich do naprawy.

Geh hinauf