Testowanie oprogramowania. Wykład 3 techniki projektowania testów oparte o specyfikację cz. I



Podobne dokumenty
Czy techniki projektowania testów mają sens? Adam Roman WarszawQA, 14 IV 2015

Testowanie oprogramowania

Techniki (automatyzacji) projektowania testów. Adam Roman WarszawQA, 24 II 2016

Tworzenie przypadków testowych

Zawód tester, czyli na czym polega testowanie. Katarzyna Łabinska Justyna Sacha - Gawlik

Testowanie i walidacja oprogramowania

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Dni: 3. Opis: Adresaci szkolenia

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Testowanie elementów programowalnych w systemie informatycznym

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Praktyka testowania dla początkujących testerów

Porównanie metod i technik testowania oprogramowania. Damian Ryś Maja Wojnarowska

Podstawy programowania III WYKŁAD 4

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

CitiManager. Przewodnik dla Pracowników / Posiadaczy kart. Bank Handlowy w Warszawie S.A.

Podręcznik użytkownika Publikujący aplikacji Wykaz2

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

System epon Dokumentacja użytkownika

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

CitiManager. Przewodnik dla Pracowników / Posiadaczy kart. Bank Handlowy w Warszawie S.A.

Testowanie oprogramowania. Testowanie oprogramowania 1/34

lekcja 8a Gry komputerowe MasterMind

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Przewodnik użytkownika (instrukcja) AutoMagicTest

Inżynieria wymagań. Wykład 2 Proces pisania przypadków użycia. Część 6 Wskazówki i sugestie

Testy poziom po poziomie

1 Moduł Neuronu Cyfrowego SM

Autoryzacja zleceń kodem SMS. Dodatek do instrukcji głównej

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

PODRĘCZNIK UŻYTKOWNIKA PO PORTALU KARTOWYM KARTOSFERA

Instrukcja Użytkownika Systemu Zarządzania Tożsamością Wersja. 1.0

PODRĘCZNIK UŻYTKOWNIKA PO PORTALU KARTOWYM KARTOSFERA

Opis metody pracy Komisji podczas Kwalifikacji TestingCup 2017

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Overlord - Plan testów

Autor: dr inż. Katarzyna Rudnik

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Referat pracy dyplomowej

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Maciej Oleksy Zenon Matuszyk

PRZEWODNIK UŻYTKOWNIKA PO PORTALU KARTOWYM KARTOSFERA

PODRĘCZNIK OBSŁUGI BUSINESSNET

Testowanie oprogramowania

Dlaczego testowanie jest ważne?

INFORMATYKA POZIOM ROZSZERZONY

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Diagramy przypadków użycia

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Dokumentacja API BizIn

APIO. W4 ZDARZENIA BIZNESOWE. ZALEŻNOŚCI MIĘDZY FUNKCJAMI. ELEMENTY DEFINICJI PROCESU. DIAGRAM ZALEŻNOŚCI FUNKCJI.

I. Podstawy języka C powtórka

Do korzystania ze strony elektronicznej rekrutacji zalecamy następujące wersje przeglądarek internetowych:

Testowanie oprogramowania. Piotr Ciskowski

INFORMATYKA POZIOM PODSTAWOWY

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, r.

I. Interfejs użytkownika.

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Zapisz i autoryzuj płatności w folderze

1 Moduł Modbus ASCII/RTU

INŻYNIERIA OROGRAMOWANIA TESTOWANIE JEDNOSTKOWE 2015/2016

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

UML cz. III. UML cz. III 1/36

3.4. Opis konfiguracji layoutów.

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Konsolidacja FP- Depozyty

Modelowanie i analiza systemów informatycznych

Stan/zdarzenie Nexo. Zmienne wirtualne. Zdarzenia wirtualne

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

PRZEWODNIK PO PRZEDMIOCIE

Specyfikacja Płatności CashBill. Instrukcja podłączenia płatności elektronicznych do typowych zastosowań.

Przypadki bez przypadków. Jak dobierać scenariusze testowe.

1 Moduł Modbus ASCII/RTU 3

Przypadki testowe. Spis treści. Plan testów. From Sęp. Wstęp. 2 Plan testów

Logika Temporalna i Automaty Czasowe

Spis treści. Przedmowa Karolina Zmitrowicz, Adam Roman. Część I. Organizacja i procesy 1

Automatyczne decyzje kredytowe, siła szybkiego reagowania i optymalizacji kosztów. Roman Tyszkowski ING Bank Śląski S.A. roman.tyszkowski@ingbank.

Obliczenia iteracyjne

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

I. Program II. Opis głównych funkcji programu... 19

Podstawy Programowania Obiektowego

1 Moduł Inteligentnego Głośnika

Spis treści: A. Logowanie Abonenta do systemu e-faktury B. Strona główna e-faktury C. Zakładka faktury:... 4

Forex PitCalculator INSTRUKCJA UŻYTKOWNIKA

Wykład 1 Inżynieria Oprogramowania

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

1 Moduł Inteligentnego Głośnika 3

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Do korzystania ze strony elektronicznej rekrutacji zalecamy następujące wersje przeglądarek internetowych:

Do korzystania ze strony elektronicznej rekrutacji zalecamy następujące wersje przeglądarek internetowych:

Transkrypt:

Testowanie oprogramowania Adam Roman Instytut Informatyki UJ Wykład 3 techniki projektowania testów oparte o specyfikację cz. I klasy równoważności, analiza wartości brzegowych, tablice decyzyjne, grafy przyczynowo-skutkowe, maszyna stanów 1/53

Modele oprogramowania 2/53

Podział technik testowania 3/53

OPARTE O SKŁADNIĘ (CZARNOSKRZYNKOWE) OPARTE O STRUKTURĘ (BIAŁOSKRZYNKOWE) OPARTE NA DOŚWIADCZENIU I DEFEKTACH PRZEGLĄDY ANALIZA STATYCZNA KODU ANALIZA STATYCZNA ARCHITEKTURY ANALIZA DYNAMICZNA klasy równoważności, wartości brzegowe tablice decyzyjne, grafy przyczynowo-skutkowe przejścia pomiędzy stanami (maszyna stanowa) drzewa klasyfikacji, tablice ortogonalne pokrycie specyfikacji, pokrycie przypadków użycia przypadki użycia, testowanie losowe pokrycia przepływu sterowania i danych testowanie ścieżek (LCSAJ, ścieżki bazowe, CC) techniki oparte o składnię (np. t. mutacyjne) taksonomie błędów zgadywanie błędów testowanie w oparciu o listy kontrolne testowanie eksploracyjne ataki usterkowe analiza złożoności, metryki kodu analiza przepływu sterowania analiza przepływu danych zgodność ze standardami programowania analiza statyczna strony webowej grafy wywołań wykrywanie wycieków pamięci wykrywanie dzikich wskaźników analiza wydajności 4/53

5/53 Model czarnej skrzynki (black-box) WEJŚCIE PROGRAM WYJŚCIE

6/53 Techniki oparte o specyfikację TECHNIKI OPARTE O SPECYFIKACJĘ Podział na klasy równoważności (Equivalence Partitioning) Analiza wartości brzegowych (Boundary Value Analysis) Testowanie przejść pomiędzy stanami (State Transition) Tablice decyzyjne (Decision Tables) Grafy przyczynowo-skutkowe (Cause-Effect Graphs) Metoda CP (Category-Partition) Metody kombinatoryczne (np. Pair-Wise Testing) Drzewa klasyfikacji (Classification Trees) Przypadki użycia (Use-cases) Testowanie losowe (Random Testing)

7/53 Podstawowe cechy technik opartych o specyfikację Do definiowania otwartych zadań/problemów, specyfikowania aplikacji lub jej modułów, stosowane są modele (formalne, jak i nieformalne) Z takich modeli przypadki testowe mogą być tworzone w sposób systematyczny

8/53 Podział na klasy równoważności (1) idea Input Domain Output Domain test 1 test 2 test 3 test 1 test 2 test 3 test 4

9/53 Podział na klasy równoważności (2) własności inne nazwy: Equivalence Partitioning, Input Space Partitioning (ISP) może być stosowana na różnych poziomach testowania jednostkowym integracyjnym systemowym zwykle łatwa do zastosowania, nawet bez automatyzacji elastyczna w wyborze liczebności zbioru testowego niepotrzebna wiedza o implementacji tester nie musi umieć programować

10/53 Podział na klasy równoważności (3) własności podziału B 1 B 2 B n

11/53 Podział na klasy równoważności (4) modelowanie dziedziny wejściowej (IDM): charakterystyki function ProcessFile(file f) { read(f); } Charakterystyka: porządek w pliku B 1 = dane posortowane rosnąco B 2 = dane posortowane malejąco B 3 = dane nieposortowane

12/53 Podział na klasy równoważności (4) modelowanie dziedziny wejściowej (IDM): charakterystyki function ProcessFile(file f) { read(f); } Charakterystyka: plik posortowany rosnąco Charakterystyka: porządek w pliku B 1 = dane posortowane rosnąco B 2 = dane posortowane malejąco B 3 = dane nieposortowane B 1 = tak B 2 = nie Charakterystyka: plik posortowany malejąco B 1 = tak B 2 = nie

13/53 Podział na klasy równoważności (5) dwa podejścia do modelowania dziedziny wejściowej MODELOWANIE DZIEDZINY WEJŚCIOWEJ PODEJŚCIE OPARTE O INTERFEJS charakterystyki wyprowadzane bezpośrednio z pojedynczych parametrów wejściowych najprostsze podejście można zautomatyzować PODEJŚCIE OPARTE O FUNKCJONALNOŚĆ charakterystyki wyprowadzane z punktu widzenia zachowania się programu trudniejsze do konstruowania zwykle daje lepsze testy lub mniej testów o tej samej efektywności

Podział na klasy równoważności (6) przykład: program TriTyp Charakterystyka B 1 B 2 B 3 relacja pierwszego boku do zera >0 0 <0 relacja drugiego boku do zera >0 0 <0 relacja trzeciego boku do zera >0 0 <0 Charakterystyka B 1 B 2 B 3 B 4 klasyfikacja geometryczna różnoboczny równoramienny równoboczny niepoprawny 14/53

Podział na klasy równoważności (6) przykład: program TriTyp Charakterystyka B 1 B 2 B 3 relacja pierwszego boku do zera >0 0 <0 relacja drugiego boku do zera >0 0 <0 relacja trzeciego boku do zera >0 0 <0 Charakterystyka B 1 B 2 B 3 B 4 klasyfikacja geometryczna różnoboczny równoramienny równoboczny niepoprawny Charakterystyka B 1 B 2 B 3 B 4 klasyfikacja geometryczna różnoboczny równoramienny, nie równoboczny równoboczny niepoprawny 15/53

Podział na klasy równoważności (7) projektowanie przypadków testowych w oparciu o klasy równoważności Charakterystyka B 1 B 2 B 3 relacja pierwszego boku do zera (1) >0 (4) 0 (7) <0 relacja drugiego boku do zera (2) >0 (5) 0 (8) <0 relacja trzeciego boku do zera (3) >0 (6) 0 (9) <0 Każdej klasie równoważności przypisz unikatowy numer Sukcesywnie twórz przypadki pokrywające jak najwięcej klas poprawności Sukcesywnie twórz przypadki, z których każdy pokrywa tylko jedną klasę niepoprawności tc przypadek testowy pokrywa klasy 1 (2, 5, 6) (1), (2), (3) 2 (0, 4, 5) (4) 3 (4, 0, 5) (5) 4 (4, 5, 0) (6) 5 (-1, 4, 4) (7) 6 (4, -1, 4) (8) 7 (4, 4, -1) (9) 16/53

17/53 Podział na klasy równoważności (8) projektowanie przypadków testowych dla większej liczby podziałów aplikacja testowana na 2 przeglądarkach: IE, Firefox oraz na 3 typach połączeń: dial-up, DSL, cable modem przeglądarka i typ połączenia są niezależne EP dla przeglądarki EP dla typu połączenia A1. IE B1. dial-up A2. Firefox B2. DSL B3. cable modem tc przypadek testowy pokrywa klasy 1 (IE, dial-up) A1, B1 2 (Firefox, DSL) A2, B2 3 (Firefox, cable modem) A2, B3

18/53 Podział na klasy równoważności (9) zależności i wartości nieprawidłowe wartości z dwóch różnych podziałów mogą być zależne (np. podział 1 = aplikacje, podział 2 = systemy operacyjne) czasami kombinacje wartości mogą być błędne (np. podział 1 = data rozpoczęcia, podział 2 = data zakończenia) w projektowaniu przypadków testowych należy to uwzględniać!

19/53 Analiza Wartości Brzegowych (1) Boundary Value Analysis przypadki testowe eksponują wartości brzegowe (leżące na granicy / przy granicy klas równoważności) zarówno dla wejścia jak i dla wyjścia zamiast pojedynczego przypadku testowane są wszystkie wartości graniczne danej klasy przypadki tworzy się również dla danych niepoprawnych

20/53 Analiza Wartości Brzegowych (2) proces 1. IDENTYFIKACJA KLAS RÓWNOWAŻNOŚCI 2. IDENTYFIKACJA GRANIC KLAS RÓWNOWAŻNOŚCI 3. STWORZENIE PRZYPADKÓW TESTUJĄCYCH GRANICE KLAS

Analiza Wartości Brzegowych (3) przykład Program przyznaje zniżkę komunikacyjną dzieciom do lat 6 (włącznie) oraz emerytom (osobom powyżej 65-go roku życia) Wiek jest zmienną typu byte (0-255) 0 6 65 255 Jeśli to możliwe, należy przetestować także dane niepoprawne takie jak znaki alfanumeryczne, puste pole, liczby rzeczywiste 21/53

Analiza Wartości Brzegowych (4) przykład c.d. 0 6 65 255 tc test oczekiwany wynik 1-1 błąd (liczba spoza zakresu) 2 0 zniżka 3 6 zniżka 4 7 brak zniżki 5 65 brak zniżki 6 66 zniżka 7 255 błąd (zbyt duża wartość) 8 256 błąd (liczba spoza zakresu) tc test oczekiwany wynik 9 błąd 10 A błąd 11 6.001 błąd 22/53

23/53 Analiza Wartości Brzegowych (5) ile wartości brzegowych wystarczy? 0 65 rozważany przedział: 0 x 65; zakładamy wartości całkowite obliczamy wartości brzegowe dla prawego końca B. Beizer sugeruje 3 wartości: 64, 65, 66 ale 64 jest wewnątrz przedziału! dlatego dla tej granicy wystarczą dwie wartości: 65 koniec analizowanego przedziału 66 pierwsza niepoprawna wartość sąsiadująca z przedziałem

24/53 Analiza Wartości Brzegowych (6) liczby wymierne i rzeczywiste 0 65 255 tester ustala dokładność (precyzję) zwykle wynika ona z sensownych powodów, np. dla kwot walut wystarczą 2 miejsca po przecinku można użyć dokładności maszynowej, albo zdefiniować swoją -0.0001, 0, 65, 65.0001, 255, 255.0001-0.000000001, 0, 65, 65.000000001, 255, 255.000000001

Analiza Wartości Brzegowych (7) przykład System prosi o podanie kwoty pożyczki w dolarach (bez centów). Wartość będzie zaokrąglona do najbliższych $100. Minimalna i maksymalna wartość pożyczki to odpowiednio $5,000 i $1,000,000. W przypadku pożyczki na kwotę większą niż $500,000 kontynuacja procesu wymaga akceptacji Starszego Specjalisty ds. Udzielania Pożyczek. Należy przetestować pole z kwotą pożyczki. Tester decyduje się na technikę AWB. 25/53

Analiza Wartości Brzegowych (8) przykład c.d. Podziały, ich klasy równoważności i dalsze rozdrobnienia klas lp klasa 1 znaki niepoprawne 2 liczby wymierne 3 liczby lp klasa 3.1. wartości poprawne 3.2. wartości niepoprawne lp klasa 1.1. znaki alfanumeryczne 1.2. null lp klasa 3.1.1. nie wymaga akceptacji 3.1.2. wymaga akceptacji lp klasa 3.2.1. wartość ujemna 3.2.2. zero 3.2.3. wartość zbyt mała 3.2.4. wartość zbyt wysoka 26/53

27/53 Analiza Wartości Brzegowych (9) przykład c.d. Przypadki testowe wynikające z analizy wartości brzegowych: lp klasa przypadki testowe (dla (4)-(15): wartości brzegowe) 1.1. znaki alfanumeryczne (1) ABC 1.2. null (2) null 2. liczby wymierne (3) $50,000.01 3.1.1. nie wymaga akceptacji (4) $4,950 (5) $500,049 3.1.2. wymaga akceptacji (6) $500,050 (7) $1,000,049 3.2.1. wartość ujemna (8) -MAX (9) $-1 3.2.2. zero (10) $0 (11) $49 3.2.3. wartość zbyt mała (12) $50 (13) $4,949 3.2.4. wartość zbyt wysoka (14) $1,000,0050 (15) MAX

28/53 Tablice decyzyjne (1) cechy metody EP i BVA dobre do walidowania pól wejściowych w interfejsie testowanie często uwzględnia logikę biznesową, ukrytą pod interfejsem tablice decyzyjne opisują w systematyczny sposób relacje pomiędzy zachodzącymi w systemie warunkami oraz tym, jakie akcje zajście tych warunków wywołuje tablice decyzyjne mogą powstać również w wyniku działania metody grafów przyczynowo-skutkowych [omówimy je później]

29/53 Tablice decyzyjne (2) przykład Testowany system jest częścią aplikacji e-commerce, służącą do weryfikacji płatności kartą. Po wpisaniu przez użytkownika danych (nazwisko, numer karty, kwota) informacja przekazywana jest do firmy przetwarzającej dane kart kredytowych w celu realizacji transakcji.

Tablice decyzyjne (3) przykład c.d. Chcemy przetestować tę część funkcjonalności; czynniki brane pod uwagę: 1. czy osoba o wpisanym nazwisku jest właścicielem karty? 2. czy karta jest aktywna czy została anulowna? 3. czy na koncie są wystarczające środki? 4. czy transakcja dokonana jest z podejrzanego miejsca? Możliwe akcje: 1. czy akceptujemy transakcję? 2. czy poinformować właściciela karty? (np. ostrzeżenie o użyciu) 3. czy powiadomić bank? (np. użycie anulowanej karty) 30/53

31/53 Tablice decyzyjne (4) przykład c.d.: tworzenie tablicy decyzyjnej PRZYPADKI TESTOWE WARUNKI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 k. prawdziwe? Y Y Y Y Y Y Y Y N N N N N N N N k. aktywne? Y Y Y Y N N N N Y Y Y Y N N N N limit ok? Y Y N N Y Y N N Y Y N N Y Y N N lokalizacja ok? Y N Y N Y N Y N Y N Y N Y N Y N AKCJE akceptować? Y N N N N N N N N N N N N N N N pow. klienta? N Y Y Y N Y Y Y N N N N N N N N powiad. bank? N N N N Y Y Y Y Y Y Y Y Y Y Y Y

32/53 Tablice decyzyjne (5) przykład c.d.: upraszczanie tablicy decyzyjnej PRZYPADKI TESTOWE WARUNKI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 k. prawdziwe? Y Y Y Y Y Y Y Y N N N N N N N N k. aktywne? Y Y Y Y N N N N Y Y Y Y N N N N limit ok? Y Y N N Y Y N N Y Y N N Y Y N N lokalizacja ok? Y N Y N Y N Y N Y N Y N Y N Y N AKCJE akceptować? Y N N N N N N N N N N N N N N N pow. klienta? N Y Y Y N Y Y Y N N N N N N N N powiad. bank? N N N N Y Y Y Y Y Y Y Y Y Y Y Y

33/53 Tablice decyzyjne (6) przykład c.d.: uproszczona tablica decyzyjna WARUNKI 1 2 3 5 6 7 9 konto prawdziwe? Y Y Y Y Y Y N konto aktywne? Y Y Y N N N limit ok? Y Y N Y Y N lokalizacja ok? Y N Y N AKCJE akceptować? Y N N N N N N powiadomić klienta? N Y Y N Y Y N powiadomić bank? N N N Y Y Y Y

34/53 Tablice decyzyjne (7) niewyłączające się decyzje WARUNKI 1 2 3 konto zagraniczne? Y saldo przeniesione na kolejny okres? Y późna płatność? Y AKCJE opłata za wymianę waluty? Y obciążyć odsetkami? Y obciążyć opłatą za późną płatność? Y

35/53 Grafy przyczynowo-skutkowe (1) cechy metody uwzględnia kombinację warunków wejściowych redukuje w sposób systematyczny liczbę przypadków testowych pomaga w znajdowaniu niekompletności i niejednoznaczności specyfikacji grafy te przypominają elektroniczne sieci kombinatoryczne inne nazwy: CE-graphs, Cause-Effect Graphs

36/53 Grafy przyczynowo-skutkowe (2) opis metody 1. PODZIAŁ SPECYFIKACJI NA LOGICZNIE WYODRĘBNIONE CZĘŚCI 2. ANALIZA CZĘŚCI POD KĄTEM OPISANYCH PRZYCZYN I SKUTKÓW 3. TRANSFORMACJA SPECYFIKACJI DO POSTACI GRAFU 4. UZUPEŁNIENIE GRAFU O OGRANICZENIA NA PRZYCZYNY I SKUTKI 5. TRANSFORMACJA GRAFU DO TABLICY DECYZYJNEJ 6. PRZEKSZTAŁCENIE KOLUMN TABLICY W PRZYPADKI TESTOWE

Grafy przyczynowo-skutkowe (3) podstawowa symbolika grafów przyczynowo-skutkowych a b tożsamość E a O a a b negacja b b co najwyżej jeden dokładnie jeden a b a b c alternatywa c koniunkcja I a b c przynajmniej jeden R a b jeśli poprzednik, to następnik 37/53

38/53 Grafy przyczynowo-skutkowe (4) przykład tworzenia grafu W pierwszej kolumnie musi znajdować się znak A albo B. Znak w drugiej kolumnie musi być cyfrą. Jeśli oba warunki są spełnione, wykonana jest aktualizacja pliku. Gdy znak w pierwszej kolumnie jest nieprawidłowy, wyświetlany jest komunikat ERROR 1; gdy w drugiej kolumnie nie znajduje się cyfra, wyświetlany jest komunikat ERROR 2. przyczyny skutki 1 (A w kolumnie 1) 5 (aktualizacja) 2 (B w kolumnie 1) 6 (ERROR 1) 1 2 4 5 6 3 (cyfra w kol. 2) 7 (ERROR 2) 3 7

39/53 Grafy przyczynowo-skutkowe (5) konstruowanie z grafu tablicy decyzyjnej 1. Wybór skutku, którego węzeł powinien mieć wartość 1 2. Śledzenie wsteczne grafu w celu znalezienia wszystkich kombinacji przyczyn (z uwzględnieniem zastrzeżeń), które powodują zaistnienie skutku 3. Utworzenie w tablicy decyzyjnej kolumn, z których każda reprezentuje jedną z kombinacji przyczyn 4. Określenie, dla każdej kombinacji, stanów wszystkich skutków i zapisanie ich w tablicy

40/53 Grafy przyczynowo-skutkowe (6) śledzenie wsteczne a b W x Jeśli x ma być 1, nie należy nigdy ustawiać na 1 więcej niż jednego wejścia do W Jeśli x ma być 0, rozpatrzyć wszystkie sytuacje wywołujące a=b=0. Dla wejść z 1 nie trzeba uwzględniać kombinacji wywołującej tę wartość b a c W x Jeśli x ma być 1, uwzględnić wszystkie sytuacje wywołujące a=b=c=1 Jeśli x ma być 0, uwzględnić tylko jedną kombinację wywołującą zerową wartość wszystkich wejść do W

Grafy przyczynowo-skutkowe (7) przykład: identyfikacja warunków ustawiających 7 na fałsz 1 2 3 4 5 6 7 Naiwna analiza daje 13 przypadków testowych test Węzeł 1 Węzeł 2 Węzeł 3 Węzeł 4 Węzeł 5 Węzeł 6 1 0 0 0 0 0 0 2 1 0 0 0 1 0 3 1 0 0 1 1 0 4 1 0 1 0 1 0 5 0 0 1 1 0 1 41/53

Konwersja tablicy decyzyjnej z/na graf przyczynowo-skutkowy tablica do grafu 1. wypisz wszystkie warunki z lewej strony 2. wypisz wszystkie akcje z prawej strony 3. czytaj tablicę (kolumnami) aby zidentyfikować jak kombinacje warunków wpływają na wybraną akcje 4. połącz odpowiednie warunki z akcjami używając operatorów logicznych 5. powtórz kroki 3. 5. dla wszystkich akcji graf do tablicy 1. wypisz wszystkie warunki w lewej górnej części tablicy 2. wypisz wszystkie akcje w lewej dolnej części tablicy 3. wygeneruj wszystkie możliwe kombinacje warunków 4. ustal na podstawie grafu które akcje zachodzą dla których kombinacji 5. po zakończeniu uprość tablicę, jeśli jest to konieczne/wymagane 42/53

43/53 Model przejść maszyny stanowej (1) WEJŚCIE PROGRAM WYJŚCIE

44/53 Model przejść maszyny stanowej (2) stan jest pojęciem abstrakcyjnym i bardzo ogólnym daje to możliwość modelowania systemu na dowolnym poziomie abstrakcji od CFG (stan = linia kodu) po wysokopoziomowy opis systemu (np. stan = ekran wpisywania PINu w bankomacie) Testy można konstruować tak, aby pokryć np.: typowe sekwencje stanów każdy stan każde przejście każdą sekwencję N przejść (tzw. N-1 switch coverage) konkretny ciąg przejść przejścia nieprawidłowe

45/53 Model przejść maszyny stanowej (3) używane notacje STAN 1 wejście STAN 1 zdarzenie / akcja zdarzenie akcja STAN 2 wyjście STAN 2

46/53 Model przejść maszyny stanowej (4) przykład specyfikacja modelowanego systemu Komponent manage_display_changes odpowiada na żądania zmiany (utrzymywanego zewnętrznie) trybu wyświetlania dla urządzenia do wyświetlania czasu. Tryb ten może przyjmować jedną z czterech wartości: dwie odpowiadają wyświetlaniu czasu lub daty, a pozostałe dwie odpowiadają trybom używanym podczas zmiany czasu lub daty. Są cztery możliwe żądania: Zmień Tryb, Resetuj, Ustaw Czas oraz Ustaw Datę. Zmień Tryb powinien spowodować zmianę trybu wyświetlania pomiędzy wyświetl czas i wyświetl datę. Jeśli tryb wyświetlania jest ustawiony na wyświetl czas lub wyświetl datę, to żądanie Resetuj powinno powodować ustawienie trybu na odpowiednio zmień czas lub zmień datę. Żądanie Ustaw Czas powinno spowodować powrót trybu wyświetlania do wyświetl czas z zmień czas i podobnie, żądanie Ustaw Datę powinno spowodować powrót trybu wyświetlania z zmień datę na ustaw datę.

47/53 Model przejść maszyny stanowej (5) przykład c.d. maszyna stanów S1 WYŚWIETLANIE CZASU Resetuj (R) zmień czas (ZC) Ustaw Czas (UC) zmień czas (ZC) S3 ZMIANA CZASU Zmień Tryb (ZT) wyświetl datę (WD) Zmień Tryb (ZT) wyświetl czas (WC) S2 WYŚWIETLANIE DATY Resetuj (R) zmień datę (ZD) Ustaw Datę (UD) zmień datę (ZD) S4 ZMIANA DATY

Model przejść maszyny stanowej (6) pokrycie przejść (0-switch coverage) S1 WYŚWIETLANIE CZASU Resetuj (R) zmień czas (ZC) Ustaw Czas (UC) zmień czas (ZC) S3 ZMIANA CZASU Zmień Tryb (ZT) wyświetl datę (WD) Zmień Tryb (ZT) wyświetl czas (WC) S2 WYŚWIETLANIE DATY Resetuj (R) zmień datę (ZD) Ustaw Datę (UD) zmień datę (ZD) S4 ZMIANA DATY przypadki testowe 1 2 3 4 5 6 stan początkowy S1 S1 S3 S2 S2 S4 wejście ZT R UC ZT R UD oczekiwane wyjście WD ZC ZC WC ZD ZD stan końcowy S2 S3 S1 S1 S4 S2 48/53

Model przejść maszyny stanowej (7) Zmień Tryb (ZT) wyświetl datę (WD) pokrycie par przejść (1-switch coverage) S1 WYŚWIETLANIE CZASU S2 WYŚWIETLANIE DATY Resetuj (R) zmień czas (ZC) Ustaw Czas (UC) zmień czas (ZC) Zmień Tryb (ZT) wyświetl czas (WC) Resetuj (R) zmień datę (ZD) Ustaw Datę (UD) zmień datę (ZD) S3 ZMIANA CZASU S4 ZMIANA DATY tc 1 2 3 4 5 6 7 8 9 10 stan początkowy S1 S1 S1 S3 S3 S2 S2 S2 S4 S4 wejście ZT ZT R UC UC ZT ZT R UD UD oczekiwane wyjście WD WD ZC ZC ZC WC WC ZD ZD ZD następny stan S2 S2 S3 S1 S1 S1 S1 S4 S2 S2 wejście ZT R UC ZT R ZT R UD ZT R oczekiwane wyjście WC ZD ZC WD ZC WD ZC ZD WC ZD stan końcowy S1 S4 S1 S2 S3 S2 S3 S2 S1 S4 49/53

Model przejść maszyny stanowej (8) pokrycie przejść niepoprawnych Zmień Tryb (ZT) wyświetl datę (WD) S1 WYŚWIETLANIE CZASU S2 WYŚWIETLANIE DATY Resetuj (R) zmień czas (ZC) Ustaw Czas (UC) zmień czas (ZC) Zmień Tryb (ZT) wyświetl czas (WC) Resetuj (R) zmień datę (ZD) Ustaw Datę (UD) zmień datę (ZD) S3 ZMIANA CZASU S4 ZMIANA DATY S1 S2 S3 S4 ZT R UC UD S2/WD przyp. test. 1 S1/WC przyp. test. 5 S3/N przyp. test. 9 S4/N przyp. test. 13 S3/ZC przyp. test. 2 S4/ZD przyp. test. 6 S3/N przyp. test. 10 S4/N przyp. test. 14 S1/N przyp. test. 3 S2/N przyp. test. 7 S1/ZC przyp. test. 11 S4/N przyp. test. 15 S1/N przyp. test. 4 S2/N przyp. test. 8 S3/N przyp. test. 12 S2/ZD przyp. test. 16 50/53

Model przejść maszyny stanowej (9) przypadki testowe na podstawie tabeli wszystkich przejść S1 S2 S3 S4 ZT R UC UD S2/WD przyp. test. 1 S1/WC przyp. test. 5 S3/N przyp. test. 9 S4/N przyp. test. 13 S3/ZC przyp. test. 2 S4/ZD przyp. test. 6 S3/N przyp. test. 10 S4/N przyp. test. 14 S1/N przyp. test. 3 S2/N przyp. test. 7 S1/ZC przyp. test. 11 S4/N przyp. test. 15 S1/N przyp. test. 4 S2/N przyp. test. 8 S3/N przyp. test. 12 S2/ZD przyp. test. 16 tc 1 2 3 4 5 14 15 16 stan początkowy S1 S1 S1 S1 S2 S4 S4 S4 wejście ZT R UC UD ZT R UC UD oczekiwane wyjście WD ZC N N WC N N ZD stan końcowy S2 S3 S1 S1 S1 S4 S4 S2 51/53

Model przejść maszyny stanowej (10) przykład: redakcja czasopisma; typowe przejścia w maszynie S2 PRZEGLĄD REDAKCYJNY publikuj opublikujnastronie odrzuć zakończproces S4 KONIEC PROCESU zrecenzuj udostrecenzentowi akceptuj udostsekretarzowi wyślij udostsekretarzowi S3 RECENZOWANIE ARTYKUŁU popraw udostautorowi S1 PISANIE ARTYKUŁU Przykład typowej ścieżki: S1, wyślij S2, zrecenzuj S3, popraw S1, wyślij S2, zrecenzuj S3, akceptuj S2, publikuj S4 52/53

KONIEC 53/53