Sens i cel automatyzacji testów

26

Transcript of Sens i cel automatyzacji testów

Page 1: Sens i cel automatyzacji testów
Page 2: Sens i cel automatyzacji testów

2

SENS I CEL AUTOMATYZACJA TESTÓWJAN [email protected]

Page 3: Sens i cel automatyzacji testów

3

AGENDA

• PO CO AUTOMATYZOWAĆ• CO AUTOMATYZOWAĆ• PROBLEMY AUTOMATYZACJI• TECHNIKI AUTOMATYZACJI• AUTOMATYZACJA W PROCESIE TESTOWANIA• UTRZYMANIE TESTÓW AUTOMATYCZNYCH

Page 4: Sens i cel automatyzacji testów

4

Testowanie to wykonywanie oprogramowania

z intencją znalezienia błędu

Glenford Myers „Sztuka testowania oprogramowania”

Page 5: Sens i cel automatyzacji testów

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

Page 6: Sens i cel automatyzacji testów

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%

Page 7: Sens i cel automatyzacji testów

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

Page 8: Sens i cel automatyzacji testów

8

PO CO AUTOMATYZOWAĆ

• AUTOMATYZUJE SIĘ POWTARZAJĄCE SIĘ ZADANIA• TESTY REGRESYJNE• SMOKE TESTY• TESTY WYDAJNOŚCIOWE• PROCESY KONFIGURACYJNE• TWORZENIE DANYCH TESTOWYCH

Page 9: Sens i cel automatyzacji testów

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

Page 10: Sens i cel automatyzacji testów

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

Page 11: Sens i cel automatyzacji testów

11

CO AUTOMATYZOWAĆ?

Page 12: Sens i cel automatyzacji testów

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

Page 13: Sens i cel automatyzacji testów

13

OPŁACALNOŚĆ AUTOMATYZACJI

• DOROTHY GRAHAM: EKWIWALENT ILOŚCI TESTÓW RĘCZNYCH

• PLANOWANIE• PROJEKTOWANIE• IMPLEMENTACJA• WYKONANIE• UTRZYMANIE

Page 14: Sens i cel automatyzacji testów

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

Page 15: Sens i cel automatyzacji testów

15

PROBLEMY AUTOMATYZACJI

• NIEREALISTYCZNE OCZEKIWANIA• SŁABE PRAKTYKI TESTOWANIA• FAŁSZYWE POCZUCIE BEZPIECZEŃSTWA• UTRZYMANIE TESTÓW• PROBLEMY TECHNICZNE• PROBLEMY ORGANIZACYJNE

Page 16: Sens i cel automatyzacji testów

16

TECHNIKI AUTOMATYZACJI

• BEHAVIOUR DRIVEN TESTING• KEYWORD DRIVEN TESTING• PAGE OBJECT PATTERN

Page 17: Sens i cel automatyzacji testów

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

Page 18: Sens i cel automatyzacji testów

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

Page 19: Sens i cel automatyzacji testów

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

Page 20: Sens i cel automatyzacji testów

20

KEYWORD DRIVEN TESTING

Page 21: Sens i cel automatyzacji testów

21

AUTOMATYZACJA A PROCES TESTOWANIA

• PROJEKTY KLASYCZNE

• PROJEKTY ZWINNE

Page 22: Sens i cel automatyzacji testów

22

PROJEKTY KLASYCZNE

• PLANOWANIE• PROJEKTOWANIE• IMPLEMENTACJA• WYKONANIE• UTRZYMANIE

Page 23: Sens i cel automatyzacji testów

23

PROJEKTY ZWINNE

• W SPRINTACH TYLKO AUTOMATYZACJA UNIT TESTÓW• REGRESJA POZA SPRINTAMI• AUTOMATYZACJA POZA SPRINTAMI

Page 24: Sens i cel automatyzacji testów

24

PRZYKŁADOWY UKŁAD SPRINTÓW

Page 25: Sens i cel automatyzacji testó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

Page 26: Sens i cel automatyzacji testów

DZIĘKUJĘ