Automatyzacja Testowania Web20

32
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

description

Wprowadzenie do automatyzacji testowania aplikacji web 2.0

Transcript of Automatyzacja Testowania Web20

Page 1: Automatyzacja Testowania Web20

Automatyzacja Testowaniaw WEB 2.0

Wojciech Pająk, Radosław SmilginXXIV Jesienne Spotkania PTIWisła, 20-24 października 2008

testerzy.pl

Page 2: Automatyzacja Testowania Web20

• 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

Agenda

Page 3: Automatyzacja Testowania Web20

• 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.

Czym jest automatyzacja testów?

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 4: Automatyzacja Testowania Web20

• 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)

Stosowane weryfikatory

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 5: Automatyzacja Testowania Web20

Testy funkcjonalne

• Odwzorowanie działań użytkownika (UI)

O

• Wywoływanie zmian stanu elementów, zdarzeń (DOM)

W

• Wykonywanie tych samych testów na różnych przeglądarkach i ich wersjach

Testy niefunkcjonalne

• Obciążenie (ilość użytkowników)

O

• Wydajność (czas przetwarzania żądań, zasoby)

W

• Bezpieczeństwo

Testy użyteczności (?)

T

Automatyzacja testów aplikacji WEB 2.0

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 6: Automatyzacja Testowania Web20

• 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

Co automatyzować?

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 7: Automatyzacja Testowania Web20

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

Page 8: Automatyzacja Testowania Web20

• 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

Automatyzacja – dobre praktyki

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 9: Automatyzacja Testowania Web20

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

Page 10: Automatyzacja Testowania Web20

• HTML, DOM

• HTTP

• Podstawy programowania obiektowego (.NET, Java)

• Podstawy testów jednostkowych (NUnit, JUnit)

Wymagane umiejętności testerów Web 2.0

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 11: Automatyzacja Testowania Web20

Popularne, darmowe narzędzia

Automatyzacja testów funkcjonalnych

• WebAii™ Automation Framework

• Selenium

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 12: Automatyzacja Testowania Web20

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)

M

• 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

Page 13: Automatyzacja Testowania Web20

WebAii™.Technologie

Biblioteka dedykowana do testów aplikacji Web 2.0

• Rich Internet Applications (RIA)

R

• 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

Page 14: Automatyzacja Testowania Web20

• Wspólne API dla Internet Explorer 6 i 7, Firefox 2 i 3

• Konieczna odpowiednia konfiguracja przeglądarek

WebAii™.Przeglądarki

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 15: Automatyzacja Testowania Web20

WebAii™.Środowisko

• NUnit lub Visual Studio Team System• .NET framework 3.5, Visual Studio C# Express 2008 • Primary Interop Assemblies (PIA)

P

• Firebug, Internet Explore Developer Toolbar

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 16: Automatyzacja Testowania Web20

WebAii™.Uruchamianie w NUnit

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 17: Automatyzacja Testowania Web20

WebAii™.Metodyka automatyzacji• Kontrola przeglądarki

• Automatyzacja DOM

• Metody get pozwalające odczytać stan elementów

• Automatyzacja UIZał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

Page 18: Automatyzacja Testowania Web20

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)

i

• Wyszukiwanie zawężone (np. po elementach określonego typu: tabela, div)

t

• Wyszukiwanie przy użyciu Language Integrated Query (LINQ)

W

• Wzorce dla często występujących elementów

• Serializacja/Deserializacja (identyfikacja elementów w plikach XML)

p

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 19: Automatyzacja Testowania Web20

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

Page 20: Automatyzacja Testowania Web20

WebAii™.Klasa HtmlWait

Oczekiwanie na:

• stan kontrolki HTML (visible/not visible)

s

• zmianę stylu

• spełnienie lub nie dowolnego warunku

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 21: Automatyzacja Testowania Web20

WebAii™.Test Regions

• Logiczna segmentacja• Niższe koszty utrzymania testów• Wyizolowanie testów

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 22: Automatyzacja Testowania Web20

WebAii™.Ajax/JavaScript

• Synchronizacja

• Wywoływanie JavaScript

• Obsługa „drag & drop”

• Prawdziwa interakcja z interfejsem graficznym aplikacji (mysz, klawiatura)

(

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 23: Automatyzacja Testowania Web20

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

Page 24: Automatyzacja Testowania Web20

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)

j

• Uruchamianie testów na wielu platformach i przeglądarkach jednocześnie

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 25: Automatyzacja Testowania Web20

Selenium.Przeglądarki

• Aktualnie wsparcie jedynie dla przeglądarki Firefox w wersji 2 i 3

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 26: Automatyzacja Testowania Web20

Selenium.Uruchamianie

• Testy uruchamiane są w dodatku przeglądarki Firefox

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 27: Automatyzacja Testowania Web20

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)

A

• Instrukcja – Element aplikacji – Wartość• Click – loginButton – label=‘Login’

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 28: Automatyzacja Testowania Web20

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)

j

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 29: Automatyzacja Testowania Web20

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

Page 30: Automatyzacja Testowania Web20

Selenium.Weryfikacje

• Metody verify

• Metody assert

• Metody wait

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Page 31: Automatyzacja Testowania Web20

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl

Przykłady użycia narzędzi• WebAii

• Selenium

Page 32: Automatyzacja Testowania Web20

Dziękuję za uwagęWięcej informacji na:http://www.artoftest.com/webaiifxproduct.aspxhttp://selenium.openqa.org

Pytania?

Chętnie odpowiemy na Państwa zapytania drogą elektroniczną:[email protected]

XXIV Jesienne Spotkania PTI, 20-24 paźdz. 2008 Wisła testerzy.pl