Sens i cel automatyzacji testów

Post on 11-Jan-2017

1.409 views 3 download

Transcript of Sens i cel automatyzacji testów

2

SENS I CEL AUTOMATYZACJA TESTÓWJAN SABAKJAN.SABAK@AMBERTEAM.PL

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Ę