Nietypowe podejście do automatyzacji w systemie

Transkrypt

Nietypowe podejście do automatyzacji w systemie
ATF
Nietypowe podejście do automatyzacji
w systemie rozproszonym
Daniel Dec
[email protected]
Architektura SUT
GUI
Browser
REST API
Devices
POST
FS-GUI
services
REST API
Application
services
Data Access
DB
GET
REST API
Module N
Założenia ATF
• zewnętrzne narzędzie (instalacja)
• dane wejściowe – transakcje/operacje biznesowe
• zbieranie danych stanu systemu – dane wyjściowe
• bezstanowość
• prędkość wykonywania
• synchroniczność
Założenia ATF
• DSL (Domain Specific Language) - warstwa abstrakcji
• reużywalność kroków
• unifikacja i generowanie transakcji
• wynik testu przez porównanie stanów
Stan systemu - dane referencyjne
• walidacja poprawności danych wejściowych ze
specyfikacją
• odpowiedzi serwisów REST
• filtrowanie za pomocą XSLT
• śledzenie operacji bazy danych
• porównanie logów (syslog, alarmy)
Śledzenie zmian bazy danych
Reużywalność - przykład Gherkin
Raport testów
• elementy raportu
• statusy wyniku
• różnicowy
• aktualizacja danych referencyjnych
(przykład)
Retrospektywa #1
• szersza perspektywa
• przeźroczystość systemu
• utrzymywanie danych referencyjnych
• prędkość wykonywania vs deterministyczność
• typy asercji (ewolucja)
Architektura SUT - przypomnienie
GUI
Browser
REST API
Devices
POST
FS-GUI
services
REST API
Application
services
Data Access
DB
GET
REST API
Module N
Wysokopoziomowa architektura
Typy i rodzaje testów
Typy i rodzaje testów
• testy modułowe
• testy integracyjne
• testy przekrojowe (e2e)
• sanity checks
• testy GUI
Generatory
• szablony .ejs
• modele danych
• unifikacja
• generatory zapytań REST
Ciągłe testowanie
• CI
• zarządzanie środowiskami testowymi
• typy buildów
• provisioning środowisk
Retrospektywa #2
• elastyczność i możliwość rozszerzania
• agregacja wielu narzędzi
• narzędzie dla całego zespołu
• wpółdzielony kod
• całościowe rozwiązanie - wsparcie dla wielu poziomów
testów
• open source …. wkrótce
(urządzenie przykład)
Główne narzędzia
• Python (+ biblioteki wspomagające)
• VM tools
• Jenkins
• TestLink
• SQL database tracking
• Sublime (+plugin intellisense)
• Lettuce
• Selenium
• RedHat
Pytania?
http://www.future-processing.pl/technical-blog/
http://www.meetup.com/Quality-Meetup/
Daniel Dec
[email protected]