automated exploratory tests
DESCRIPTION
Presentaton from testwarezTRANSCRIPT
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Automatyczne Testy Eksploracyjne
Zbyszek Moćkun
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Rozwój testów automatycznych w projektach aplikacji webowych
Cel prezentacji
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Kilka słów o procesie i środowisku
Wstęp
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Metodyki, projekty, …
• Metodyki Agile: SCRUM, Kanban
• Release’y
• Brak czasu na testy regresji
• Natłok pracy pod koniec sprintu
• Środowisko ciągłej integracji
• Aplikacje webowe
• Systemy Zarządzania Treścią (CMS)
• Średnie i małe projekty
• Brak czasu i środków na automatyzację w projektach
Metodyki Projekty
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Standardowe podejście do automatyzacji
Automatyczne Testy Funkcjonalne
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Cykl życia testów automatycznych
Uruchom
Zarządzaj
Ulepszaj
Napisz skrypt automatyczny
Napisz TC
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Plusy i Minusy
• Pokrycie
• Brak duplikacji testów podczas regresji
• Testowana jest funkcjonalość
• Czas potrzebny na stworzenie testów funkcjonalnych
• Koszt
• Najpierw inwestyjemy, później czekamy na zwrot
• Zależności między testami
• Tylko zdefiniowana funkcjonalnośc jest testowana
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Proces ewolucji testów automatycznych
Automatyczne Testy Eksploracyjne
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Co powinniśmy testować
Dwie perspektywy:
Użytkownik Klient
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Aspekty
Narzędzie CI
Klient
Statystyki
Użytkownik
Wygląd Funkcjonalność Szybkość
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Szukając symptomów
„Symptom is a departure from normal function or feeling which is noticed by a patient, indicating the presence of disease or
abnormality.”
http://wikipedia.org
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Symptomy
Błąd
Wygląd
Treść
Kod HTML
Błędy JavaScript
Błędna odpowiedź
serwera (404)Analiza
Statystyk Serwisu
Walidatory (W3C)
Obrazki / style
Analiza linków
Strategia URL
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Dane referencyjne
• Wcześniejsza wersja aplikacji• Zapisane dane referencyjne• Inne wersje tej samej aplikacji (różne serwery)• Pobieranie/porównywanie danych jako parametr
Wygląd Treść Kod
HTMLPerformance
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Roboty
• Skrypty, które poszukują symptomów
• Ten sam skrypt dla różnych projektów
• Narzędzia/skrypty
Błędy JScript
Odpowiedź Serwera
(404)
Walidatory (HTLM, CSS)
Analiza Statystyk Serwisu
Analiza linków
Strategia URL
Wczytane obrazki/
style
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Czym są Automatyczne Testy Eksploracyjne?
Wiele różnych definicji:• Odtwarzanie testów eksploracyjnych wykonanych ręcznie
• Połączenie testów automatycznych z manualnymi
• Automatyzacja niektórych kroków
• Testowanie aplikacji z użyciem generatorów danych
• W ogóle nie są możliwe z uwagi na czynnik ludzki
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Czym są Automatyczne Testy Eksploracyjne?
Testy wspomagające testowanie eksploracyjne, niekoniecznie oparte na scenariuszu testowym, wyszukujące miejsca w których mogą występować błędy, pozwalająca na zbadanie aplikacji szybciej i dogłębniej lub przetestowanie miejsc nie dostępnych dla człowieka.
„Automated Tests do not provide complete information. They provide partial information that might be useful”
Cem Kaner
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Automatyczne Testy Eksploracyjne - plusy
• Jedno narzędzie− Gromadzące wszystkie symptomy
− Dla wszystkich projektów
− Szybkość wprowadzenia do projektu
− Łatwość zarządzania zmianą
• Nie wymagają dogłębnej znajomości aplikacji, wspomagają proces uczenia
• Integracja z narzędziami CI
• Silne rozwiązanie w powiązaniu z automatycznymi testami funkcjonalnymi
• Testy migracji
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Automatyczne Testy Eksploracyjne - przykład
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Narzędzia
• Selenium II/WebDriver
• Komparatory (ImageMagick)
• Walidatory (W3C)
• Performance (JMeter, Proxy)
• Serwery Proxy (BrowserMob)
• Firefox/Firebug (NetExport, ConsoleExport, JS Console output redirector)
• HAR Viewer (http://www.softwareishard.com/har/viewer/)
© 2010 Cognifide Limited. In commercial confidence only.© 2010 Cognifide Limited. In commercial confidence only.
Pytania