Grzegorz Swiec – BUC testing

Transkrypt

Grzegorz Swiec – BUC testing
BUC testing
organizacja automatycznych testów funkcjonalnych,
na przykładzie Sikuli
Narzędzia typu record-playback
Sikuli
Sikuli
http://www.sikuli.org/
Rozpoznawanie elementów GUI
Sikuli X-1.0(r905):
Sikuli X-1.0(r905):
- Sikuli Script (sikuli-script.jar)
Sikuli X-1.0(r905):
- Sikuli Script (sikuli-script.jar)
- Moduł Jython (API do pisania skryptów)
Sikuli X-1.0(r905):
- Sikuli Script (sikuli-script.jar)
- Moduł Jython (API do pisania skryptów)
- Sikuli IDE
Selenium IDE
Jaki jest problem z narzędziami typu
„Record and Playback” ?
Przykład, testowanie poczty WWW.
Login:
Password:
Submit
Login
Login
Login
Nowa wiadomość
Odebrane wiadomości
Odebrane wiadomości
Wyślij
Odpisz
Odpisz
Wyślij
Anuluj
Co jeśli zmieni się wygląd strony logowania?
Login
Pass
Submit
Login 2.0
<UI Map Pattern>
- poprawa czytelnosci testów
- usunięcie redundancji elementów GUI
Login:
Password:
Submit
Login:
Password:
Submit
Login:
Password:
Submit
LoginTest
UIMap
EmailSentNotificationTest
Co jeśli zmieni się zachowanie ?
Login:
Password:
I agree:
Submit
<Page Objects Pattern>
<Page Objects Pattern>
http://code.google.com/p/selenium/wiki/PageObjects
<<http://code.google.com/p/selenium/wiki/PageObjects>>
Login:
Password:
I agree:
Submit
Login:
Password:
I agree:
Submit
Login:
Password:
I agree:
Submit
LoginPage
Login:
Password:
I agree:
Submit
LoginPage
LoginPageUIMapElements
●LoginPageBehaviour
●
LoginPage
EmailSentNotificationTest
MainPage
NewEmailCreationPage
User stories: opis i kryteria akceptacji
User stories: opis i kryteria akceptacji
Dokumentacja testów, raporty
DSL – Domain
Specific Language
User Story
description
Acceptance
Criteria
Zobaczmy to na przykładzie...
Step
Step – Open Browser
Step – Login into App
Step – Open Browser
Step – Login into App
Step – Open Browser
Step – Login into App
Step – Home Page
Step – Order Worklist
Process
Step – Open Browser
Step – Login into App
Step – Home Page
Step – Order Worklist
Different Process
Step – Open Browser
Step – Login into App
Step – Home Page
Step – MetaData conf.
Reused Components
Step – Open Browser
Step – Login into App
Step – Home Page
Step – MetaData conf.
Step – Open Browser
Step – Login into App
Step – Home Page
Step – Order Worklist
Step – MetaData conf.
Graph
Step – Open Browser
Step – Login into App
Step – Home Page
Step – Order Worklist
Step – MetaData conf.
BDD...
BDD is TDD done really well...
TDD
Write Test
See test fails
See test pass
Refactor/write code
BDD
Write Test
See test fails
See test pass
Refactor/write code
Sikuli
Wykorzystanie:
- testy funkcjonalne na poziomie integracyjnym i systemowym
- testy niefunkcjonalne (pamięć)
Zalety:
- szybkość i łatwość pisania testów
- możliwość przetestowania większości rodzajów GUI
Wady:
- szybkość działania
- mała odporność na gruntowne zmiany GUI (np. zmiana czcionki)
- brak wsparcia dla i18n
Dziękuję za uwagę...