Zawód tester, czyli na czym polega testowanie Katarzyna Łabinska Justyna Sacha - Gawlik
Agenda: 1. Poznajmy się 2. Tester - kto to jest? 3. Podstawy testowania 4. Testowanie manualne a automatyczne 5. Case studies - czyli trochę praktyki 6. Nasze możliwości - ścieżki rozwoju 7. Podsumowanie
Tester - kto to jest? Tester jest osobą, która (w ogromnym skrócie) jest odpowiedzialna za przygotowanie i przeprowadzenie różnego rodzaju testów na dostarczonym przez programistów oprogramowaniu z reguły na podstawie dokumentacji technicznej.
Cechy dobrego testera: ciekawość drobiazgowość cierpliwość i duża motywacja umiejętność logicznego myślenia zdolność komunikacji asertywność zawodowy pesymizm
Podstawy testowania
Czym jest testowanie? Testowanie to proces związany z wytwarzaniem oprogramowania. Jest to jeden z procesów zapewnienia jakości oprogramowania. Testowanie ma na celu weryfikację oraz walidację oprogramowania. Weryfikacja - pozwala skontrolować, czy wytwarzane oprogramowanie jest zgodne ze specyfikacją. Walidacja - sprawdza, czy oprogramowanie jest zgodne z oczekiwaniami użytkownika.
Kilka ważnych definicji: Błąd: działanie człowieka powodujące powstanie nieprawidłowego rezultatu. [Wg IEEE610] Defekt: wada modyłu lub systemu, która może spowodować, że moduł lub system nie wykona zakładanej czynności. Defekt, który wystapi podczas uruchomienia programu, może spowodować awarię modułu lub systemu. Awaria: Odchyłka modułu lub systemu od oczekiwanego zachowania lub rezultatu działania.
Ogólne cele testowania: Znajdowanie defektów Budowanie zaufania odnośnie jakości oraz dostarczanie informacji o jakości Zapobieganie awariom
Testowanie i jakość: Testowanie NIE podnosi jakości oprogramowania Testowanie podnosi zaufanie do oprogramowania Testowanie zwiększa jakość, jeśli defekty zostaną naprawione
Ogólne zasady testowania: 7 zasad testowania: 1. Testowanie ujawnia błędy 2. Testowanie gruntowne jest niemożliwe 3. Wczesne testowanie 4. Kumulowanie się błędów 5. Paradoks pestycydów 6. Testowanie jest zależne od kontekstu 7. Mylne przekonanie o bezbłędności
Wymagania? Jak to z nimi jest
Proces testowy: 5 czynności podstawowego procesu testowego planowanie i nadzór nad testami analiza i projektowanie testów implementacja i wykonanie testów ocena kryteriów zakończenia i raportowanie czynności zamykające test
Cztery poziomy testowania testy modułowe (jednostkowe) testy integracyjne testy systemowe testy akceptacyjne
Typy testów: 1. Testowanie funkcji ( testowanie funkcjonalne) 2. Testowanie atrubutów niefunkcjonalnych (testowanie niefunkcjonalne) 3. Testowanie sktuktury/architektury oprogramowania (testowanie strukturalne) 4. Testowanie zwiazane ze zmianami: retesty, testy regresywne
Techniki projektowanie testów: 1. Czarnoskrzynkowe techniki projektowania testów (black-box testing) 2. Białoskrzynkowe techniki projektowania testów (white-box testing) 3. Techniki projektowania testów oparte na doświadczeniu
1. Czarnoskrzynkowe techniki projektowania testów (black-box testing) Nazywane są technikami opartymi o specyfikację. Przypadki testowe mogą być wytwarzane systematycznie na podstawie modeli. Z definicji nie wykorzystują żadnych informacji o strukturze wewnętrznej testowanego modułu lub systemu.
Do technik czarnoskrzynkowych zaliczamy: podział na klasy równoważności analizę wartości brzegowych testowanie w oparciu o teblicę decyzyjna testowanie przejść między stanami testowanie w oparciu o przypadki testowe
Klasy równoważności: Informacje wejściowe do oprogramowania lub systemu podzielone są na grupy, które (prawdopodobnie) zmuszą aplikację do podobnych zachowań. Klasy równoważności można zdefiniować zarówno do poprawnych jak i niepoprawnych danych Mogą być identyfikowane dla wartości wejścia, wartości wewnętrznych, wartości zależnych od czasu oraz dla parametrów interfejsu
Klasy równoważności: Testy projektuje się by pokryć klasy równoważności Stosowane na każdym poziomie testowym Mogą być użyte dla osiągnięcia pokrycia wartości wejściowych i wyjściowych, przykład: Wejściowe: wiek, długość ciągu znaków Wyjściowe: nastawione parametry, sygnał 0/1
Klasy równoważności: niepoprawna klasa różnowazności poprawna klasa różnowazności niepoprawna klasa różnowazności
Klasy równoważności: Przykład: Hasło może mieć minimum 6 znaków i nie więcej niż 12 znaków 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 klasa równoważności reprezentowana wartość 0-5 3 6-12 9 13+ 18
Analiza wartości brzegowych: Doświadczenie: Zachowanie na krawędziach klasy równoważności prawdopodobnie zwróci błędy (bardzo wdzięczny obszar do testowania) Maksymalne i minimalne wartości partycji są jej wartościami granicznymi Analiza wartości granicznych może być zastosowana na każdym poziomie testów Wartości brzegowe mogą być również wykorzystane do określania danych testowych
Analiza wartości brzegowych: Klasa równowazności x-1 hx x+1 y-1 y y+1 x,y x-1, y+1 x-1, x, x+1, y-1, y, y+1 - poprawne wartości graniczne kas równowazności - niepoprawne wartości graniczne kas równowazności - pełny test wartosci granicznych
Tablica decyzyjna: Prezentacja złożonych reguł biznesowych Analiza wszystkich kombinacji warunków wejściowych Metoda przydatna do testów oprogramowania, którego działanie zależy od wielu decyzji logicznych Warunki wejściowe i akcje najczęściej organizuje się tak, aby odzwierciedlały prawdę lub fałsz
Tablica decyzyjna: przykład Przypadki testowe zaprojektowane przy pomocy tablicy decyzyjnej. Jeżeli osoba na lotnisku jest pasażerem i ma co najmniej 18 lat to może kupić alkohol, a także jeżeli leci do kraju poza UE to otrzymuje ulgę podatkową, w przeciwnym wypadku ulga podatkowa nie przysługuje.
Tablica decyzyjna: przykład Warunki/przypadki P1 P2 P3 P4 P5 P6 P7 P8 pasażer T T T T F F F F powyżej 18 lat T T F F T T F F poza UE T F T F T F T F Akcja sprzedaż T T F F F F F F rabat T F F F F F F F
Przejścia pomiędzy stanami Testowanie przejść pomiędzy stanami: technika projektowania przypadków testowych, w której przypadki są projektowane tak, aby sprawdzały dozwolone oraz niedozwolone przejścia między stanami testowanie zachowania TP (testowany produkt) oparty na zdefiniowanych stanach systemu i przejściach między nimi (automaty skończone). Testy mogą być projektowane w taki sposób, aby pokryć każdy stan, wykonać każde przejście, wykonać specyficzne sekwencje przejść lub przetestować przejścia niedozwolone. System można przedstawić jako diagram przejść pomiędzy stanami.
Przejścia między stanami Start card inserted Eat card wait for PIN enter PIN 1st try PIN not OK 2nd try PIN not OK 3rd try PIN not OK PIN OK PIN OK PIN OK Access to account
2. Białoskrzynkowe techniki projektowania testów (white-box testing) Testy oparte na strukturze Wykorzystuje wewnętrzną strukturę systemu jako podstawę testów do tworzenia przypadków testowych Za pomocą technik białoskrzynkowych możliwe jest zmierzenie pokrycia kodu testami i dodanie większej ilości przypadków, tak aby zostały przetestowane wszystkie wymagane obszary
Do technik białoskrzynkowych zaliczamy: pokrycie instrukcji pokrycie decyzji pokrycie warunków decyzji
3. Techniki projektowania testów oparte na doświadczeniu testy projektuje się na podstawie wiedzy i intuicji testerów oraz ich doświadczenia z podobnymi aplikacjami i technologiami. Szeroko wykorzystywaną techniką opartą na doświadczeniu jest zgadywanie błędów. Polega to na sporządzeniu listy możliwych defektów i na zaprojektowaniu testów, które atakują te defekty. To systematyczne podejście jest nazywane atakiem usterkowym.
Testowanie eksploracyjne: polega na równoległym projektowaniu testów, ich wykonywaniu, zapisywaniu wyników oraz uczeniu się, bazując na zamówieniu na testy zawierającym cele testów i trzymając się ram czasowych. To podejście okazuje się najpożyteczniejsze, gdy nie ma specyfikacji.
Testowanie manualne testowanie ręczne tester - użytkownik końcowy tester - brak znajomości oprogramowania do testów automatycznych nie wszystko można zautomatyzować nakład czasu i pracy cel - potwierdzenie, że testowana aplikacja jest wolna od defektów oraz działa zgodnie ze specyfikacją
Testowanie automatyczne Wykonywany przy pomocy dedykowanego oprogramowania, np. Selenium, SoupUI Oszczędzają czas oraz koszty Raz napisany test można wykorzystać wielokrotnie tester - znajomość oprogramowania do automatyzacji testów Uzupełniają testy automatyczne są powtarzalne
scieżki rozwoju pracy testera Lider Testów Specjalista Automatyzacji Senior Tester Tester Charakterystyk TESTER
Dziękujmy za uwagę
Plan testów dokument opisujący zakres, metody, zasoby oraz harmonogram zamierzonych czynności testowych. Określa między innymi elementy testowe, testowane cechy, zadania testowe, kto będzie te zadania wykonywał, stopień niezależności testerów, środowisko testowe,technikę projektowania testów oraz kryteria wejścia i wyjścia, przesłanki ich użycia, a także ryzyka wymagające ciągłego planowania. Jest to zapis procesu planowania testów. Scenariusz testowy, zwany Specyfikacją procedury testowej dokument określający ciąg akcji umożliwiających wykonanie testu. Znana także jako skrypt testowy lub manualny skrypt testowy.
Przypadek testowy zbiór danych wejściowych, wstępnych warunków wykonania, oczekiwanych rezultatów i końcowych warunków wykonania opracowany w określonym celu lub dla warunku testowego, jak wykonanie pewnej ścieżki programu lub zweryfikowanie zgodności z konkretnym wymaganiem. Warunek testowy element lub zdarzenie modułu lub systemu, który może być zweryfikowany przez jeden lub więcej przypadków testowych, np. funkcja, transakcja, cecha, atrybut jakości lub element struktury.