1. Automatyzacja Testowania
w WEB 2.0
Wojciech Pająk, Radosław Smilgin
XXIV Jesienne Spotkania PTI
Wisła, 20-24 października 2008
testerzy.pl
2. Agenda
• Wprowadzenie do automatyzacji testowania
• Technologie WEB 2.0
• Narzędzia do automatyzacji
• Przykłady
• Podsumowanie
XXIV Jesienne Spotkaia PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
3. Czym jest automatyzacja testów?
• Symulacja działań użytkownika
• Identyfikacja elementów i wykonywanie na nich akcji
• Weryfikacja zdarzeń
• Logowanie błędów
• Raportowanie wyników
Automatyczny test jest tylko tak dobry, jak zawarte w
nim instrukcje weryfikujące.
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
4. Stosowane weryfikatory
• Asserty (twierdzenia)
• Porównywanie zrzutów ekranowych okien lub wybranych
elementów strony
• Porównywanie stanów elementów strony
• Pomiar czasu
• Pomiar zużycia zasobów (serwer, przeglądarka)
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
5. Automatyzacja testów aplikacji WEB 2.0
Testy funkcjonalne
• Odwzorowanie działań użytkownika (UI)
• Wywoływanie zmian stanu elementów, zdarzeń (DOM)
• Wykonywanie tych samych testów na różnych
przeglądarkach i ich wersjach
Testy niefunkcjonalne
• Obciążenie (ilość użytkowników)
• Wydajność (czas przetwarzania żądań, zasoby)
• Bezpieczeństwo
Testy użyteczności (?)
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
6. Co automatyzować?
• Testy, które są wykonywane często
• Testy, które są trudne do wykonania ręcznie
• Testy, które trwają długo
• Testy, które są wykonywane równolegle
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
7. Kiedy unikać automatyzacji?
• Testy są wykonywane rzadko
• Wyniki testów są trudne do zweryfikowania
automatycznie (np. kolory)
• Programy podlegające testowaniu ulegają częstym
zmianom
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
8. Automatyzacja – dobre praktyki
• Organizacja testów
• Testy przygotowują warunki i „sprzątają” po sobie
• Używanie sprawdzonych weryfikacji
• Używanie negatywnych scenariuszy w testach
• Używanie różnych środowisk testowych
• Regularne wykonywanie testów
• Raportowanie i dystrybucja wyników
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
9. Najważniejsze Technologie WEB 2.0
• XHTML
• AJAX/JavaScript
• SOAP
• XUL
• Webservices
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
10. Wymagane umiejętności testerów Web 2.0
• HTML, DOM
• HTTP
• Podstawy programowania obiektowego (.NET, Java)
• Podstawy testów jednostkowych (NUnit, JUnit)
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
12. WebAii™ Automation Framework
• Darmowa biblioteka .NET, .NET framework 3.5
• Automatyzacja testów funkcjonalnych aplikacji internetowych
• Można zastosować do testów wydajnościowych (performance)
• Wsparcie dla ASP .NET
• Zawiera przykłady w C# i VB .NET
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
13. WebAii™.Technologie
Biblioteka dedykowana do testów aplikacji Web 2.0
• Rich Internet Applications (RIA)
• AJAX
• ASP .NET
• Obsługa ramek
• Obsługa okien dialogowych i pop-upów
• Pełen dostęp do struktury DOM
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
14. WebAii™.Przeglądarki
• Wspólne API dla Internet Explorer 6 i 7, Firefox 2 i 3
• Konieczna odpowiednia konfiguracja przeglądarek
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
15. WebAii™.Środowisko
• NUnit lub Visual Studio Team System
• .NET framework 3.5, Visual Studio C# Express 2008
• Primary Interop Assemblies (PIA)
• Firebug, Internet Explore Developer Toolbar
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
17. WebAii™.Metodyka automatyzacji
• Kontrola przeglądarki
• Automatyzacja DOM
• Metody get pozwalające odczytać stan elementów
• Automatyzacja UI
Założenia:
Element zawsze musi być widoczny
Desktop -> Mouse, KeyBoard, Metoda GetRectangle() dla
każdego elementu DOM
Podejście to można także stosować do okienek Win32
Sprawdza się doskonale przy „drag & drop” – trudne do
wykonania w DOM
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
18. WebAii™.Wyszukiwanie elementów
• Notacja skrótowa
• Wyszukiwanie po zawartości (Content, np. kiedy nie ma
innych atrybutów, lub ich wartości są dynamiczne)
• Wyszukiwanie zawężone (np. po elementach określonego typu:
tabela, div)
• Wyszukiwanie przy użyciu Language Integrated Query (LINQ)
• Wzorce dla często występujących elementów
• Serializacja/Deserializacja (identyfikacja elementów w
plikach XML)
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
19. WebAii™.Akcje
• Klikanie elementów
• Akcje myszy na elementach
• Zaznaczanie/odznaczanie check boxów i radio buttonów
• Wywoływanie zdarzeń, np. OnClick, OnFocus
• Wykonywanie zrzutów ekranowych
• Wybieranie z elementów typu „drop down”
• Wykonywanie drag & drop
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
20. WebAii™.Klasa HtmlWait
Oczekiwanie na:
• stan kontrolki HTML (visible/not visible)
• zmianę stylu
• spełnienie lub nie dowolnego warunku
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
23. WebAii™.Integracja
• Konfiguracja .NET
• Logowanie
• VSTS unit testing framework, gotowe template’y
• NUnit, template w VS
• Biblioteka utworzona w .NET – możliwa integracja z dowolną
aplikacją .NET
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
24. Selenium
• Darmowy dodatek do przeglądarki Firefox (2 i 3)
• Automatyzacja testów funkcjonalnych aplikacji internetowych
• Możliwość nagrywania testów
• Zapis testów w formacie HTML, eksport do popularnych
języków programowania (m.in. C# i Java)
• Uruchamianie testów na wielu platformach i przeglądarkach
jednocześnie
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
27. Selenium.Metodyka automatyzacji
• Kontrola przeglądarki
• Metody wait pozwalające na warunkowe oczekiwanie
• Metody store pozwalające odczytywać parametry elementów
• Automatyzacja DOM (składnia)
• Instrukcja – Element aplikacji – Wartość
• Click – loginButton – label=‘Login’
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
28. Selenium.Wyszukiwanie elementów
• Wyszukiwanie po id, typach, xpath, name
• Filtrowanie elementów
• Możliwość nagrywania testów
• Zapis testów w formacie HTML, eksport do popularnych
języków programowania (m.in. C# i Java)
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
29. Selenium.Akcje
• Klikanie elementów
• Akcje myszy na elementach
• Zaznaczanie/odznaczanie check boxów i radio buttonów
• Wywoływanie zdarzeń, np. OnClick, OnFocus
• Wybieranie z elementów typu „drop down”
• Wykonywanie drag & drop
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
31. Przykłady użycia narzędzi
• WebAii
• Selenium
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl
32. Dziękuję za uwagę
Więcej informacji na:
http://www.artoftest.com/webaiifxproduct.aspx
http://selenium.openqa.org
Pytania?
Chętnie odpowiemy na Państwa zapytania drogą elektroniczną:
kontakt@testerzy.pl
XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl