Wielu testerów i nie tylko testerów zna narzędzia do automatyzacji testów, takie jak Selenium. Wielu potrafi w tych narzędziach skutecznie zaimplementować skrypty testowe. Testowanie to jednak nie tylko implementacja i wykonanie testów. Żeby automatyzacja przyniosła maksymalne korzyści trzeba ją zaplanować, a nade wszystko umieścić w odpowiednim miejscu organizacji i procesu testowania.
W swojej prezentacji omawiam cele automatyzacji testów, jej sens, potencjalne zyski i zagrożenia. Pokazuję podstawowe zasady dobrze wykonywanej automatyzacji.
W swojej prezentacji skupiam się na następujących zagadnieniach
• po co automatyzować
• co automatyzować
• problemy automatyzacji
• techniki automatyzacji
• automatyzacji a proces testowania (kiedy automatyzować)
• utrzymanie testów automatycznych
Prezentacja nie jest przywiązana do Selenium, czy innego konkretnego narzędzia testowego.
2. SENS I CEL AUTOMATYZACJA TESTÓW
JAN SABAK
JAN.SABAK@AMBERTEAM.PL
2
3. AGENDA
• PO CO AUTOMATYZOWAĆ
• CO AUTOMATYZOWAĆ
• PROBLEMY AUTOMATYZACJI
• TECHNIKI AUTOMATYZACJI
• AUTOMATYZACJA W PROCESIE TESTOWANIA
• UTRZYMANIE TESTÓW AUTOMATYCZNYCH
3
5. AUTOMATYZACJA
AUTOMATYZACJA, TO ZASTĘPOWANIE TEGO
CO DZIAŁA, CZYMŚ CO PRAWIE DZIAŁA, ALE
JEST SZYBSZE I TAŃSZE.
ROGER NEEDHAM (1935 – 2003), PROFESSOR OF COMPUTER SYSTEMS, UNIV. OF CAMBRIDGE
5
6. ŹRÓDŁA BŁĘDÓW W OPROGRAMOWANIU
Źródło Odsetek błędów
Wymagania 9,58%
Architektura 2,08%
Projekt 12,50%
Kod programu 16,67%
Plan testów i przypadki testowe 15,52%
Dokumentacja użytkownika 6,25%
Baza danych 22,92%
Website 14,58%
6
8. PO CO AUTOMATYZOWAĆ
• AUTOMATYZUJE SIĘ POWTARZAJĄCE SIĘ ZADANIA
• TESTY REGRESYJNE
• SMOKE TESTY
• TESTY WYDAJNOŚCIOWE
• PROCESY KONFIGURACYJNE
• TWORZENIE DANYCH TESTOWYCH
8
9. CELE AUTOMATYZACJI
• POWTARZALNOŚĆ I SPÓJNOŚĆ TESTÓW
• WYKONYWANIE TESTÓW BEZ NADZORU
• ZNAJDOWANIE BŁĘDÓW REGRESJI
• WYŻSZA JAKOŚĆ OPROGRAMOWANIA
• WIĘKSZE POKRYCIE TESTAMI
• ZWIĘKSZENIE ZAUFANIA DO OPROGRAMOWANIA
• WIĘCEJ OPROGRAMOWANIA PRZETESTOWANE
• ZWIĘKSZENIE ZAUFANIA UŻYTKOWNIKÓW
• POMIAR WYDAJNOŚCI
• ZMNIEJSZENIE KOSZTÓW TESTOWANIA
• ZNALEZIENIE WIĘKSZEJ LICZBY BŁĘDÓW
• TESTY NA WIELU SYSTEMACH
OPERACYJNYCH
• SZYBSZE DOSTAWY
• ZWIĘKSZENIE MORALE TESTERÓW
• TESTY NA WIELU BAZACH DANYCH
9
10. OBIETNICE AUTOMATYZACJI
• WYKONYWANIE TESTÓW (REGRESJA)
• WYKONYWANIE WIĘKSZEJ ILOŚCI TESTÓW, CZĘŚCIEJ
• WYKONYWANIE TESTÓW TRUDNYCH DO WYKONANIA RĘCZNIE
• LEPSZE WYKORZYSTANIE ZASOBÓW
• POWTARZALNOŚĆ TESTÓW
• REUŻYWANIE TESTÓW
• WCZEŚNIEJSZE DOSTAWY
• ZWIĘKSZONE ZAUFANIE
10
12. WYBÓR TESTÓW DO AUTOMATYZACJI
• NAJWAŻNIEJSZE TESTY
• ZESTAW TESTÓW „PO SZEROKOŚCI”
• TESTY NAJWAŻNIEJSZYCH FUNKCJI
• TESTY, KTÓRE NAJŁATWIEJ ZAUTOMATYZOWAĆ
• TESTY, KTÓRE SIĘ NAJSZYBCIEJ ZWRÓCĄ
• TESTY WYKONYWANE NAJCZĘŚCIEJ
12
14. OGRANICZENIA AUTOMATYZACJI
• NIE ZASTĘPUJE TESTÓW MANUALNYCH
• TESTY EKSPLORACYJNE
• ZGADYWANIE BŁĘDÓW
• AUTOMATYZACJA NIE JEST OD ZNAJDOWANIA BŁĘDÓW
• WIĘKSZA ZALEŻNOŚĆ OD JAKOŚCI TESTÓW
• MOŻE OGRANICZYĆ ROZWÓJ OPROGRAMOWANIA
• NARZĘDZIA NIE MAJĄ WYOBRAŹNI
• AUTOMATYZACJA TO TYLKO MECHANIZM WYKONYWANIA TESTÓW
14
15. PROBLEMY AUTOMATYZACJI
• NIEREALISTYCZNE OCZEKIWANIA
• SŁABE PRAKTYKI TESTOWANIA
• FAŁSZYWE POCZUCIE BEZPIECZEŃSTWA
• UTRZYMANIE TESTÓW
• PROBLEMY TECHNICZNE
• PROBLEMY ORGANIZACYJNE
15
17. ZASADY BDD
• NAJPIERW NAPISZ ZESTAW TESTÓW DLA MODUŁU/FUNKCJI
• NIECH TESTY NIE PRZECHODZĄ
• ZAIMPLEMENTUJ MODUŁ/FUNKCJĘ
• SPRAWDŹ, CZY TESTY PRZECHODZĄ NA ZAIMPLEMENTOWANYM MODULE/FUNKCJI
17
18. PAGE OBJECT PATTERN
PAGE OBJECT:
KLASA, KTÓRA STANOWI INTERFEJS DO TESTOWANEJ FORMATKI
ZALETY
• UŁATWIA UTRZYMANIE TESTÓW
• ZMNIEJSZA REDUNDANCJĘ KODU TESTÓW
• JASNE ODDZIELENIE KODU TESTU (KROKÓW) OD KODU OBSŁUGI GUI (LOKATORÓW)
• JEDNO REPOZYTORIUM SERWISÓW GUI TESTOWANEJ APLIKACJI
18
19. PAGE OBJECT PATTERN
REGUŁY
• PAGE OBJECTY NIE POWINNY ZAWIERAĆ ASERCJI, ANI WERYFIKACJI
• JEDYNA DOPUSZCZALNA WERYFIKACJA, TO SPRAWDZENIE, CZY STRONA SIĘ
ZAŁADOWAŁA POPRAWNIE
• PAGE OBJECT NIE MUSI REPREZENTOWAĆ CAŁEJ STRONY
• MOŻNA UŻYWAĆ WZORCA FACTORY DO INICJALIZACJI PAGE OBJECTÓW
19
25. UTRZYMANIE TESTÓW AUTOMATYCZNYCH
KEYWORD DRIVEN TESTING ALBO ŚMIERĆ
• NOWE TESTY DLA NOWEJ FUNKCJONALNOŚCI
• ZMIANY ZE WZGLĘDU NA ZMIENIAJĄCE SIĘ UI
• ZMIANY ZE WZGLĘDU NA ZMIANY FUNKCJONALNOŚCI
25