Sens i cel automatyzacji testów
Transcript of Sens i cel automatyzacji testów
2
SENS I CEL AUTOMATYZACJA TESTÓWJAN [email protected]
3
AGENDA
• PO CO AUTOMATYZOWAĆ• CO AUTOMATYZOWAĆ• PROBLEMY AUTOMATYZACJI• TECHNIKI AUTOMATYZACJI• AUTOMATYZACJA W PROCESIE TESTOWANIA• UTRZYMANIE TESTÓW AUTOMATYCZNYCH
4
Testowanie to wykonywanie oprogramowania
z intencją znalezienia błędu
Glenford Myers „Sztuka testowania oprogramowania”
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
6
ŹRÓDŁA BŁĘDÓW W OPROGRAMOWANIUŹródło Odsetek błędówWymagania 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%
7
WYKRYWANIE I USUWANIE BŁĘDÓWFP Def./FP Suma Def. Wykrywa
nieUsuwanie Pozostało
1 3.50 4 99% 98% 010 4.00 40 97% 95% 1
100 4.50 450 94% 90% 271000 5.00 5000 90% 85% 500
10000 5.50 55 tys. 88% 82% 6600100000 6.50 650 tys. 85% 78% 97500
8
PO CO AUTOMATYZOWAĆ
• AUTOMATYZUJE SIĘ POWTARZAJĄCE SIĘ ZADANIA• TESTY REGRESYJNE• SMOKE TESTY• TESTY WYDAJNOŚCIOWE• PROCESY KONFIGURACYJNE• TWORZENIE DANYCH TESTOWYCH
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
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
11
CO AUTOMATYZOWAĆ?
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
13
OPŁACALNOŚĆ AUTOMATYZACJI
• DOROTHY GRAHAM: EKWIWALENT ILOŚCI TESTÓW RĘCZNYCH
• PLANOWANIE• PROJEKTOWANIE• IMPLEMENTACJA• WYKONANIE• UTRZYMANIE
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
15
PROBLEMY AUTOMATYZACJI
• NIEREALISTYCZNE OCZEKIWANIA• SŁABE PRAKTYKI TESTOWANIA• FAŁSZYWE POCZUCIE BEZPIECZEŃSTWA• UTRZYMANIE TESTÓW• PROBLEMY TECHNICZNE• PROBLEMY ORGANIZACYJNE
16
TECHNIKI AUTOMATYZACJI
• BEHAVIOUR DRIVEN TESTING• KEYWORD DRIVEN TESTING• PAGE OBJECT PATTERN
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
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
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
20
KEYWORD DRIVEN TESTING
21
AUTOMATYZACJA A PROCES TESTOWANIA
• PROJEKTY KLASYCZNE
• PROJEKTY ZWINNE
22
PROJEKTY KLASYCZNE
• PLANOWANIE• PROJEKTOWANIE• IMPLEMENTACJA• WYKONANIE• UTRZYMANIE
23
PROJEKTY ZWINNE
• W SPRINTACH TYLKO AUTOMATYZACJA UNIT TESTÓW• REGRESJA POZA SPRINTAMI• AUTOMATYZACJA POZA SPRINTAMI
24
PRZYKŁADOWY UKŁAD SPRINTÓW
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
DZIĘKUJĘ