poziom po poziomie Prowadzący: Tomasz Mielnik Eliza Słonińska Agenda 1. Modele prowadzenia projektów 2. V-Model 3. Poziomy testów 4. Typy testów 5. Zadanie 1
Modele prowadzenia projektów Wodospadowy (ang. Waterfall) Implementacja WdroŜenie Modele prowadzenia projektów Iteracyjny (ang. Iterative) 2
Rational Unified Process (RUP) Agile Scrum SPRINT Codzienne czynności Pełne wymagania Planowanie Wymagania Podsumowanie 3
V-model Implementacja modułowe Poziomy testów 1. modułowe 2. 3. 4. Akceptacja 4
Implementacja modułowe modułowe (1/8) (ang. unit/component testing) Wyszukiwanie błędów w pojedynczych komponentach systemu (np. w modułach, obiektach, klasach itp.), które mogą być testowane oddzielnie Komponenty testowane są w separacji od siebie, Przygotowywane są przez programistę / autora, Projektowane w oparciu o strukturę kodu, Znalezione błędy są poprawiane od razu, bez formalnego zgłaszania Implementacja modułowe modułowe (2/8) (ang. unit/component testing) Typy testów: ścieŝek UŜycie klas równowaŝności Testowanie wartości brzegowych Testowanie składniowe 5
Implementacja modułowe modułowe (3/8) (ang. unit/component testing) ścieŝek Rozpatrywane moŝliwe ścieŝki od wierzchołka startowego do wierzchołka końcowego KaŜda moŝliwa ścieŝka w kaŝdej funkcji została przetestowana. NiemoŜliwe z powodu istnienia pętli Dwie grupy ścieŝek pod względem wykonywania pętli: Boundary test - 0 lub 1 przejście Interior- test - 2 przejścia Implementacja modułowe modułowe (4/8) (ang. unit/component testing) UŜycie klas równowaŝności... -2-11 0 1... 12 13 14 15... -------------- ------------------- ------------------- ------------------------------------------ błędna klasa 1 poprawna klasa błęb łędna klasa 2 Kryteria definicji klasy: Rejestracja osoby w wieku od 0 do 120 lat Długość wiadomości od 1 do 50 znaków Napięcie od 0 do 100 V 6
Implementacja modułowe modułowe (5/8) (ang. unit/component testing) Testowanie wartości brzegowych Wartość brzegowa to wartość znajdująca się wewnątrz, pomiędzy lub tuŝ przy granicy danej klasy równowaŝności. 0.1 10 RównieŜ testy obciąŝeniowe (stress testing) Implementacja modułowe modułowe (6/8) (ang. unit/component testing) Testowanie wartości brzegowych Rejestracja osoby w przedziale wiekowym 0 120, Testowane wartości brzegowe: -1, 0, 1, 119, 120, 121 7
Implementacja modułowe modułowe (7/8) (ang. unit/component testing) Testowanie składniowe (1/2) Dane wchodzące do systemu powinny być walidowane Błędy zaleŝne od bieŝącego kontekstu / stanu systemu Składni (MS Word) Ograniczników, Dopuszczalnych wartości pól, Implementacja modułowe modułowe (8/8) (ang. unit/component testing) Testowanie składniowe (2/2) Zasada Garbage in Garbage out zadziała kiedy: brak mechanizmu walidacji danych brak testów badających tolerancję systemu na nieprawidłowe dane Testowanie składniowe - równieŝ na poziomie testów systemowych 8
Implementacja modułowe (1/2) (ang. integration testing) pomiędzy modułami pomiędzy systemami Strategie testów integracyjnych: Top-down Bottom-up Incremental Big bang NaleŜy unikać stosowania strategii Big bang Wybór odpowiedniej strategii moŝe zaleŝeć od architektury systemu Implementacja modułowe Typy testów: (2/2) (ang. integration testing) modułów Funkcjonalne Wydajnościowe Funkcjonalne systemów Wydajnościowe Regresywne 9
Implementacja modułowe Testowanie (1/8) (ang. system testing) Testowanie całej systemu od początku do końca przeprowadzane mogą być w oparciu o: wymagania dla systemu modele funkcjonowania systemu (scenariusze uŝycia, modele transakcji, procesy biznesowe) mogą być przeprowadzane według priorytetów poszczególnych funkcji systemu W praktyce najczęściej stosowane metody to: na bazie oraz ad-hoc Implementacja modułowe Testowanie (2/8) (ang. system testing) Techniki czarnoskrzynkowe (ang. black-box techniques) stosowane do testowania na bazie i modeli Techniki białoskrzynkowe (ang. white-box techniques) stosowane do testowania pod kątem Pokrycia testami komponentów systemu Przetestowania według realizowanych przez system poleceń mogą być przeprowadzane w środowisku docelowym lub w zbliŝonym do docelowego MoŜe być wymagane symulowanie funkcjonowania innych systemów Kandydat do testów automatycznych Przeprowadzane przez niezaleŝny zespół testerski 10
Implementacja modułowe (3/8) (ang. system testing) Typy testów: Funkcjonalne Bezpieczeństwa Wydajnościowe Instalacyjne Regresywne Interfejsu (uŝyteczności) Implementacja modułowe (4/8) (ang. system testing) Typ testów: Funkcjonalne Cel: sprawdzenie działania oprogramowania pod kątem zgodności ze specyfikacją. metodą czarnej skrzynki. Jak system wykonuje funkcje, które ma za zadanie udostępniać włączając w to: komendy uŝytkownika, operacje na danych, wyszukiwanie, procesy biznesowe ekrany uŝytkownika 11
Implementacja modułowe (5/8) (ang. system testing) Typ testów: Regresywne Cel: ponowne przetestowanie uprzednio testowanej aplikacji po dokonaniu w niej modyfikacji. Cecha: powtarzalność Co dają testy regresywne: Wyszukanie błędów powstałych w wyniku zmian kodu/środowiska Ujawnienie wcześniej nie odkrytych błędów. (6/8) (ang. system testing) Implementacja modułowe Typ testów: Wydajnościowe Testowanie wydajnościowe (performance testing) pomiar czasu transakcji (operacje odczytu, aktualizacji danych) stwierdzenie czy funkcje systemu są wykonywane w akceptowalnym przedziale czasowym. Testowanie przeciąŝające (stress testing) ocena zachowania systemu lub modułu do granicy (load test) lub poza granicami wyspecyfikowanych (stress test) 12
Implementacja modułowe (7/8) (ang. system testing) Typ testów: Instalacyjne / konfiguracji Testowanie procedur instalacji systemu Weryfikacja, jak oprogramowanie zachowuje się na: róŝnych platformach sprzętowych, systemach operacyjnych, róŝnych wersjach tych systemów, przy róŝnym zestawie oprogramowania w systemie działającym u odbiorcy. Implementacja modułowe (8/8) (ang. system testing) Typ testów: Interfejsu uŝytkownika Testowanie wykonywane w celu wykrycia błędów w interfejsach Jakob Nielsen - zasady projektowania interfejsu uŝytkownika 1. Czytelność stanu systemu. (miejsce w aplikacji, sygnalizacja akcji) 2. Adekwatność systemu do świata rzeczywistego (komunikaty, Ŝargon) 3. Kontrola i wolność wyboru dla uŝytkownika (cofanie, przerywanie oper.) 4. Spójność i standaryzacja (stosowanie konwencji, wzorce) 13
Implementacja modułowe (1/2) (ang. acceptance testing) Przeprowadzane przez klienta lub uŝytkowników systemu Celem testów akceptacyjnych jest potwierdzenie poprawności działania systemu Znajdowanie defektów nie jest głównym celem testów akceptacyjnych Warunki i kryteria przeprowadzania testów akceptacyjnych mogą być zawarte w umowie mogą być teŝ przeprowadzane pod kątem zgodności z obowiązującym prawem Alpha przeprowadzane u producenta oprogramowania Beta przeprowadzane w środowisku uŝytkowników Implementacja modułowe (2/2) (ang. acceptance testing) Typy testów: Funkcjonalne Wydajnościowe Bezpieczeństwa 14
Zadanie (15 minut) Poziomy i typy testów Poziom testów modułowe Test pomiędzy modułami pomiędzy systemami Typy testów ścieŝek Testowanie wartości brzegowych Testowanie składniowe Funkcjonalne Wydajnościowe Funkcjonalne Wydajnościowe Regresywne Funkcjonalne Wydajnościowe Regresywne Bezpieczeństwa Instalacyjne Interfejsu Funkcjonalne Wydajnościowe Bezpieczeństwa 15
Referencje http://www.testerzy.pl/ http://www.sjsi.org/ http://www.istqb.org/ http://www.v-modell.iabg.de/ Glenford J. Myers The Art of Software Testing Second Edition SJSI Certified Test Manager Training 16