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]