Czy techniki projektowania testów mają sens? Adam Roman (roman@ii.uj.edu.pl) WarszawQA, 14 IV 2015



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

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

Certyfikowany tester Pytania przykładowe do poziomu podstawowego

O pewnych problemach analizy wartości brzegowych

Praktyka testowania dla początkujących testerów

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Zadanie: BOW Gra w kręgle

Overlord - Plan testów

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

Tworzenie przypadków testowych

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Automatyzacja procesu kontroli danych z lotniczego skanowania laserowego

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Plan testów. Robert Dyczkowski, Piotr Findeisen, Filip Grzdkowski. 4 czerwca 2006

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

Zestaw zadań konkursowych XVII Regionalnego Konkursu Informatycznego

Wykład 2. Poprawność algorytmów

Wszystkie problemy leżą w testach. ForProgress spółka z ograniczoną odpowiedzialnością sp.k.

Metody testowania oprogramowania w cyklu wytwarzania aplikacji. Milena Sobolewska. Rule Financial - Software Test Engineer

Konwerter Plan testów. Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008

Niecertyfikowany tester Plan poziomu zerowego

LOGOWANIE DO SYSTEMU:

Testowanie i walidacja oprogramowania

Google Testing. Radosław Smilgin, , TestWarez

Projekt współfinansowany z Europejskiego Funduszu Społecznego i Budżetu Państwa

Zmienne zależne i niezależne

Priorytetyzacja przypadków testowych za pomocą macierzy

AIDoc. System wspomagania zarządzaniem wizytami medycznymi oraz przechowywaniem rodzinnej dokumentacji medycznej.

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

WYKŁAD 8 TESTOWANIE HIPOTEZ STATYSTYCZNYCH

Microsoft Test Manager

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

REFERAT PRACY DYPLOMOWEJ

Testowanie oprogramowania

Najwyżej ocenione raporty dla Mr Buggy 4

Zakres prac implementacja VPLEX i ViPR dla środowiska macierzy VNX 5800

Jak patrzymy na testy czyli Jak punkt widzenia zależy od punktu siedzenia. Click Piotr Kałuski to edit Master subtitle style

INFORMATYKA POZIOM ROZSZERZONY

Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych

Testowanie elementów programowalnych w systemie informatycznym

Zarządzanie konfiguracją produktu w całym cyklu Ŝycia. Aleksandra Grzywak-Gawryś Warsztaty Rola IRIS w branŝy kolejowej

TESTER OPROGRAMOWANIA STUDIA PODYPLOMOWE

EGZAMIN MATURALNY 2011 INFORMATYKA

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

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Analiza ilościowa w przetwarzaniu równoległym

Szkolenie: ISTQB Model-Based Tester

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Dwuwymiarowy sposób na podróbki > 34

Szkolenie: Testowanie wydajności (Performance Testing)

e E Z = P = 1 Z e E Kanoniczna suma stanów Prawdopodobieństwo wystąpienia mikrostanu U E = =Z 1 Wartość średnia energii

Session Based Testing Czyli eksploracyjne testowanie w sesjach. Karolina Bilewska PapryQArz

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

Podstawy Informatyki. Algorytmy i ich poprawność

Szkolenie: Dobry Przypadek Testowy

Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy

CENTRALA SYGNALIZACJI POŻAROWEJ

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Testy poziom po poziomie

Sukces vs porażka. Sukces. Porażka

Brzegi w testowaniu oprogramowania

Testowanie hipotez statystycznych

Odwrotna analiza wartości brzegowych przy zaokrąglaniu wartości

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

CENTRALA SYGNALIZACJI POŻAROWEJ

Etapy życia oprogramowania

iqportal abonencki panel zarządzania

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Zasady gry w bowlingu sportowym

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

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

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Pytania próbne ISTQB CTFL

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

System egzaminów elektronicznych Instrukcja do Portalu Egzaminacyjnego i modułu task. Spis treści

Spis treúci. 1. Wprowadzenie... 13

EGZAMIN MATURALNY 2011 INFORMATYKA

Statystyka matematyczna dla leśników

Topór Światowida Plan testów

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

AKADEMICKI SYSTEM ARCHIWIZACJI PRAC - charakterystyka

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

Satel Integra FIBARO

Opis programu ERWIN. System Zarządzania Postępowaniem. Warszawa ERWIN

1 Moduł Modbus ASCII/RTU 3

Testowanie oprogramowania. Wykład 1 dlaczego testowanie jest niezbędne czym jest testowanie ogólne zasady testowania

Wyszukiwanie binarne

Egzamin / zaliczenie na ocenę*

Regulamin zamieszczania informacji w Biuletynie Informacji Publicznej Urzędu Marszałkowskiego Województwa Podlaskiego w Białymstoku

LeftHand Sp. z o. o.

Strategia testów mająca doprowadzić do osiągnięcia pożądanych celów

REGULAMIN KRĘGIELNI. Zasady i dobre obyczaje podczas gry.

Język ludzki kod maszynowy

WHILE (wyrażenie) instrukcja;

REGULAMIN publikowania informacji w Biuletynie Informacji Publicznej Wojewódzkiego Urzędu Pracy w Białymstoku. Postanowienia ogólne

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym RedCart (plugin dostępny w wersji ecommerce)

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Transkrypt:

Czy techniki projektowania testów mają sens? Adam Roman (roman@ii.uj.edu.pl) WarszawQA, 14 IV 2015

Plan prezentacji podstawowe techniki projektowania testów krótkie przypomnienie: EP, BVA fakty, mity, błędy i niedopowiedzenia trywializowanie technik nietrywialne zastosowania technik w praktyce zalety stosowania technik formalnych

Podział na klasy równoważności dziedzina wejścia dziedzina wyjścia test 1 test 2 test 3 test 1 test 2 test 3 test 4

EP według ISTQB Termometr mierzy temperaturę z dokładnością do pełnych stopni. Jeżeli temperatura spada poniżej 18 stopni ogrzewanie jest włączane. Gdy temperatura przekroczy 21 stopni ogrzewanie jest wyłączane. Jakie są najlepsze wartości (w stopniach) do zaprojektowania testów metodą klas równoważności? A 15, 19, 25. B 17, 18, 19. C 18, 20, 22. D 16, 26, 32. [źródło: http://amberplace.amberteam.pl/istqb_ctfl_q011_020]

Przykład: plik porządek elementów w pliku (klasy równ.:) plik posortowany rosnąco plik posortowany malejąco plik nieposortowany

Przykład: plik porządek elementów w pliku (klasy równ.:) plik posortowany rosnąco plik posortowany malejąco plik nieposortowany plik jednoelementowy?

Przykład: plik porządek elementów w pliku (klasy równ.:) plik posortowany rosnąco plik posortowany malejąco plik nieposortowany dwie niezależne charakterystyki: posortowany rosnąco (tak, nie) posortowany malejąco (tak, nie) plik jednoelementowy?

Własność dobrego podziału

jakie tu są klasy równoważności?

np.: klasy dla M [MIN, 0), 0, (0, MAX] klasy dla W [MIN, 0), 0, (0, MAX] Test to para (M, W) Oczekiwany wynik: zgodnie z wzorem na BMI Idea: najpierw pokryć najwięcej klas poprawności, potem po jednej klasie niepoprawności na test T1: (60, 1.75) T2: (0, 1.80) T3: (-30, 1.85) T4: (75, 0) T5: (90, -6.33) Dlaczego tak?

Pokrywanie klas niepoprawności: maskowanie błędów string ObliczOcenę(int pktegz, int pktlab) 1 if (pktegz + pktlab > 90) then 2 return "5.0" 3 else { 4 byte pktrazem = pktegz+pktlab 5 if (pktrazem > 70) then 6 return "4.0 bo punkty = "+pktrazem 7 else if (pktrazem > 50) then 8 return "3.0 bo punkty = "+pktrazem 9 else if (pktrazem >=0) then 10 return "2.0 bo punkty = "+pktrazem 11 else return "Jakiś error!" 12 } Wejście (pktegz = 1000, pktlab = 1095)

EP dla WYJŚCIA! BMI = M / W 2 Po jednym teście na każdą klasę wyjścia: K1=[MIN, 16) K2=[16, 16.99) K3=[17, 18.49) K4=[18.5, 24.99) K5=[25, 29.99) K6=[30, 34.99) K7=[35, 39.99) K8=[40, MAX] Np. M=75, W=1.65 Oczekiwany wynik: 27.55 wpada (i pokrywa) klasę K5

Granice są istotne! EP może być za słabe Lepiej użyć BVA

Analiza Wartości Brzegowych (1)

Analiza Wartości Brzegowych (2) Wartości brzegowe: określa się dla ustalonej klasy równoważności to największa i najmniejsza wartość klasy równoważności stosuje się zarówno dla klas wejść jak i dla wyjść programu wartości brzegowe i graniczne dla klasy X 2

Analiza Wartości Brzegowych (3) Co tak naprawdę testujemy w Analizie Wartości Brzegowych? testujemy te elementy! ISO 29119 Software Testing Standard, Proces projektowania i implementacji testów

Analiza Wartości Brzegowych (4) Warunki testowe w AWB: wartości brzegowe Elementy pokrycia w AWB: wartości graniczne W Analizie Wartości Brzegowych testujemy wartości graniczne wartości brzegowe (w kółku) i graniczne dla klasy X 2

Analiza Wartości Brzegowych (5) Czy metoda 3 wartości granicznych nie jest aby nadmiarowa? Testujemy dla 17, 18, 19. Ale po co testować 17, skoro już przetestowaliśmy 18, a obie te liczby leżą w tej samej klasie równoważności? Testujmy zatem tylko 18 i 19

Analiza Wartości Brzegowych (5) Czy metoda 3 wartości granicznych nie jest aby nadmiarowa? Testujemy dla 17, 18, 19. Ale po co testować 17, skoro już przetestowaliśmy 18, a obie te liczby leżą w tej samej klasie równoważności? Testujmy zatem tylko 18 i 19 if (BMI <= 18) { } if (BMI < 18) { } if (BMI == 18) { } poprawny warunek pomyłka programisty (wykryta dla BMI=18) a tu co?!

BMI = M / W 2 BVA dla WYJŚCIA! testy pokazują, że dokładność BMI to 0.01 jak dobrać wartości brzegowe? M=53, W=1.84915 BMI=15.5 po zaokrągleniu BMI=16

Analiza Wartości Brzegowych (6)

Brzegi dla dziedzin wielowymiarowych przykład praktyczny (z życia wzięty) Rozporządzenie Ministra Gospodarki z dnia 21 grudnia 2005 roku w sprawie zasadniczych wymagań dla urządzeń ciśnieniowych i zespołów urządzeń ciśnieniowych Program ma za zadanie przypisać kategorię urządzeniu na podstawie 2 parametrów: objętości i ciśnienia. Jak przetestować brzegi? Metodą punktów ON i OFF

Przypadek wielowymiarowy: punkty ON i OFF Jeśli warunek jest zaimplementowany jako warunek liniowy, to taki test dowodzi poprawności tego ograniczenia (sic!)

Przypadek wielowymiarowy: punkty ON i OFF

Testy punktów wierzchołkowych

ANALIZA DZIEDZINY! (DOMAIN ANALYSIS) ograniczenia NIELINIOWE!!!

Przykład: obliczanie punktacji w kręglach Gra = 10 rund, 1 runda to maksymalnie 2 rzuty kulą Jeśli w 1 rzucie gracz zbije wszystkie 10 kręgli, 2 rzutu nie wykonuje Liczba punktów gracza w danej rundzie to liczba zbitych w niej kręgli, przy czym do punktów tych mogą zostać doliczone dodatkowe punkty, zależne od kolejnej rundy. Ma to miejsce w następujących dwóch przypadkach: 1) jeśli gracz w pierwszym rzucie zbił wszystkie kręgle, jest to tzw. strike. W takim przypadku do wyniku tej rundy doliczane są punty z dwóch kolejnych rzutów tego gracza; 2) jeśli gracz w obu rzutach danej rundy zbił wszystkie kręgle, jest to tzw. spare. Wtedy do wyniku doliczana jest liczba punktów zdobytych przez niego w następnym rzucie kulą. Jeśli podczas rzutu gracz przekroczy linię rzutu, jest to tzw. foul. Jeśli zostały zbite kręgle, rzut jest liczony, ale punkty nie. JAKIE PRZYPADKI TESTOWE DOBRAĆ??? (jakie klasy równoważności? jakie wartości brzegowe? jest tyle różnych możliwych sytuacji! Jak to ogarnąć?!

Metoda Category-Partition dobre rozwiązanie w przypadku takim, jak program do obliczania punktów w kręglach rozszerzenie metody klas równoważności i AWB 1. zidentyfikuj parametry (wejścia) i warunki (stany systemu podczas jego działania) 2. wyodrębnij kategorie (główne własności lub charakterystyki) parametrów i warunków 3. dokonaj podziału kategorii na strefy wyboru 4. określ ograniczenia i związki pomiędzy strefami wyboru 5. wyprowadź elementy pokrycia (=zbiory stref wyboru) 6. dla każdego elementu stwórz przypadek testowy

Przykładowe kategorie i strefy wyboru KATEGORIA STREFY WYBORU Liczba punktów min=0, max=? Liczba strike ów 0, 1, 9, 10 Runda ostatniego strike a 0, 1-8, 8, 9, 10 Liczba spare ów 0, 1, 9, 10 Runda ostatniego spare a 0, 1-9, 9, 10 Liczba fauli 0, 1, 9, 10 AWB dla dziedziny wyjściowej! nietrywialne wartości brzegowe! Kwestie do wyjaśnienia: co gdy strike będzie w ostatniej rundzie? A co gdy w przedostatniej? co gdy spare będzie w ostatniej rundzie? ograniczenia (np. jeśli liczba strike ów=10, to liczba spare ów=0) jak uzyskać testy sprawdzające kombinacje wszystkich dopuszczalnych par stref wyboru dla różnych kategorii w rozsądnej liczbie przypadków? Inne pomysły: np. kombinacje następujących po sobie strike ów i spare ów

Techniki kombinacyjne pair-wise testing (1) Tworzymy program COTS mogący współpracować w różnych konfiguracjach przeglądarki: IE, Firefox, Chrome (3) drukarki: HP, Epson, Samsung, Canon (4) OS: Win, Linux, ios (3) baza: MySQL, Postgres (2) ile jest możliwych kombinacji dowolnych dwóch elementów z dowolnych dwóch kategorii?

Techniki kombinacyjne pair-wise testing (1) Tworzymy program COTS mogący współpracować w różnych konfiguracjach przeglądarki: IE, Firefox, Chrome (3) drukarki: HP, Epson, Samsung, Canon (4) OS: Win, Linux, ios (3) baza: MySQL, Postgres (2) ile jest możliwych kombinacji dowolnych dwóch elementów z dowolnych dwóch kategorii? 3*4+3*3+3*2+4*3+4*2+3*2=12+9+6+12+8+6=53

Techniki kombinacyjne pair-wise testing (2)

Techniki kombinacyjne pair-wise testing (2)

Wykorzystanie tablic ortogonalnych do konstrukcji testów w pair-wise testing

EP i BVA w praktyce nietrywialne podziały dziedziny nietrywialne wartości brzegowe (nie wynikające wprost ze specyfikacji) zwykle nie jeden, ale wiele podziałów zaokrąglenia, dokładność (często nieznana) EP i BVA zarówno dla wejść jak i wyjść wielowymiarowość (domain analysis) ograniczenia liniowe i nieliniowe kombinacje wartości charakterystyk, koniecznośc minimalizacji suity testowej

Testowanie maszyny stanowej Przykład z życia: aplikacja do zarządzania pracą redakcji czasopisma

Jak testować maszynę stanów? pokrycie wszystkich przejść (0-switch coverage), np.: S1>WY>S2>PR>S3>ZP>S1>WY>S2>PR>S3>AK>S2>PU>S4 S1>WY>S2>PR>S3>RN>S2>OD>S4 +testowanie błędnych przejść (np.: S2 > RN >?) pokrycie par przejść (1-switch coverage) czy to ma sens???

Testowanie maszyny stanowej: kryteria pokrycia pokrycie wszystkich par przejść (1-switch coverage) Elementy pokrycia:

Testowanie maszyny stanowej: analiza modelu

Testowanie maszyny stanowej: analiza modelu publikacja artykułu następuje przed sprawdzeniem poprawek przez recenzenta (jest to możliwe, ale warto spytać analityka biznesowego, czy w każdej sytuacji jest to dopuszczalne)

Testowanie maszyny stanowej: analiza modelu Gdyby EP2 był sam w sobie przypadkiem testowym, oznaczałby sytuację akceptacji artykułu bez przesłania go do recenzji

Testowanie maszyny stanowej: analiza modelu EP8: natychmiastowe odesłanie recenzentowi artykułu, który przed chwilą recenzował EP6: recenzent odrzuca artykuł który wcześniej zaakceptował EP11: redaktor odsyła recenzentowi już zaakceprowany artykuł EP4: żądanie poprawek od autora choć wcześniej była akceptacja artykułu EP9: publikacja artykułu choć jest negatywna recenzja

Testowanie maszyny stanowej: analiza modelu recenzent akceptuje artykuł, a redaktor go odrzuca

Podsumowanie i wnioski techniki projektowania testów pozwalają tworzyć (w systematyczny sposób) wartościowe przypadki testowe model często pozwala na automatyczne projektowanie testów niektóre modele mogą pełnić rolę wyroczni techniki projektowania testów są trywializowane w literaturze, choć w rzeczywistości są bardzo potężnym narzędziem dla testera niektóre techniki pozwalają na weryfikację założeń systemu przed jego implementacją warto znać te techniki i wiedzieć kiedy ich użycie będzie efektywne, a kiedy będzie stratą czasu

KONIEC!