Automatyzacja Testowania Web20

Post on 08-May-2015

5.519 views 0 download

description

Wprowadzenie do automatyzacji testowania aplikacji web 2.0

Transcript of 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

• 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

• 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

• 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

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

• 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

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

• 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

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

• 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

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

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

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

• 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

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

WebAii™.Uruchamianie w NUnit

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

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

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

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

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

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

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

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

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

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

Selenium.Uruchamianie

• Testy uruchamiane są w dodatku przeglądarki Firefox

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

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

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

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

Selenium.Weryfikacje

• Metody verify

• Metody assert

• Metody wait

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

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

Przykłady użycia narzędzi• WebAii

• Selenium

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ą:kontakt@testerzy.pl

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