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



Podobne dokumenty
Dni: 3. Opis: Adresaci szkolenia

Oferta szkoleniowa. ISTQB Poziom Podstawowy (Foundation Level) Opis szkolenia:

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

ISTQB Poziom Zaawansowany - Techniczny Analityk Testów (Advanced Level - Technical Test Analyst)

Testowanie oprogramowania

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

Katalog szkoleń certyfikowanych Testowanie oprogramowania

Certyfikowane szkolenia testerzy.pl to uznana ścieżka szkoleniowa ISTQB dla testerów.

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Szkolenie: Automatyzacja testowania

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

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

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Testowanie oprogramowania

ZARZĄDZANIE PROCESEM TESTOWYM (SQAM Test Manager) 7-8 luty 2008, Warszawa Zdobądź z nami certyfikat SQAM Test Manager.

Katalog szkoleń certyfikowanych Testowanie Oprogramowania

Akademia testera oprogramowania i systemów IT Poziom I specjalista testowania (56 h) kurs dzienny

Testowanie i walidacja oprogramowania

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

ISTQB Foundation Level

Usługa: Testowanie wydajności oprogramowania

Testowanie oprogramowania. Piotr Ciskowski

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Bash - wprowadzenie. Bash - wprowadzenie 1/39

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Metody przewidywania jakości produktu: szacowanie defektów w kodzie

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Koncepcja systemu zarządzania jakością w dużym projekcie informatycznym zgodnie z normą ISO/IEC 9001:2008

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

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

Nowoczesne aplikacje mobilne i ich rola w podnoszeniu jakości danych

Szkolenie: ISTQB Model-Based Tester

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Testowanie oprogramowania. Testowanie oprogramowania 1/34

KATALOG SZKOLEŃ CERTYFIKOWANYCH 2014

ŚcieŜki Certyfikacji Testera. Karol Mioduszewski - CORRSE

Szkolenie: Testowanie wydajności (Performance Testing)

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Szczegółowy plan szkolenia

Tworzenie przypadków testowych

PODSTAWY INFORMATYKI

Certyfikowany tester Pytania przykładowe do poziomu podstawowego

Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON

Szkolenie: Zawód Tester

Podstawy programowania III WYKŁAD 4

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Przyszłość to technologia

Luki w bezpieczeństwie aplikacji istotnym zagrożeniem dla infrastruktury krytycznej

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

KATALOG SZKOLEŃ CERTYFIKOWANYCH 2015

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

Instytut Technik Innowacyjnych

SAP automatyzacja testów z wykorzystaniem narzędzia Mercury QuickTestPro

Testowanie oprogramowania w środowisku IBM Rational Software Architect

Jarosław Żeliński analityk biznesowy, projektant systemów

Wstęp do testowania : Szymon Ramczykowski

Testowanie mutacyjne

Wdrożenie technologii procesowej IBM BPM w EFL

Oferta Szkoleniowa.

PRZEWODNIK PO PRZEDMIOCIE

Bezpieczeństwo aplikacji Czy musi być aż tak źle? OWASP The OWASP Foundation

Wybór dostawcy: doświadczony duży provider usług versus mały software house

Fakty i mity badania wydajności systemów. Piotr Ślęzak

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Receptury - niezbędnik projektanta i architekta

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

Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP The OWASP Foundation

Poznań, dzień Zapytanie ofertowe

Źródła dumy zawodowej testera oprogramowania

Praktyka testowania dla początkujących testerów

Wymagania: umiejętność modelowania systemów informatycznych z wykorzystaniem UML. umiejętność definiowania i kreatywnego rozwiązywania problemów

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Szkolenie: Dobry Przypadek Testowy

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

Szkolenie: Dobry Kierownik Testów

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

Podstawy testowania oprogramowania

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

INŻYNIERIA OPROGRAMOWANIA

1 Przygotował: mgr inż. Maciej Lasota

TESTER OPROGRAMOWANIA STUDIA PODYPLOMOWE


Techniki i rozwiązania IT w optymalizacji procesów

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Wykład 1 Inżynieria Oprogramowania

Robotic Process Automation

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Aurea BPM Dokumenty pod kontrolą

DLA SEKTORA INFORMATYCZNEGO W POLSCE

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Jarosław Żeliński analityk biznesowy, projektant systemów

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Powłoka bash. Kurs systemu Unix 1

WPROWADZENIE DO UML-a

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Wprowadzenie do Scilab: podstawy języka Scilab

Zawiadomienie dotyczące oprogramowania firmy IBM dla regionu Europa, Bliski Wschód i Afryka ZP , 15 listopada 2011 r.

Transkrypt:

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

Prelegent Quality Assurance R&D Lead, Rivet Group Adiunkt w Instytucie Informatyki i Matematyki Komputerowej UJ Członek Stowarzyszenia Jakości Systemów Informatycznych Członek Polskiego Komitetu Normalizacyjnego (prace nad normą ISO/IEC 29119 Software Testing Standard) Certified Software Quality Engineer (ASQ) ISTQB Certified Tester Full Advanced Level Autor Testowanie i jakość oprogramowania. Modele, techniki, narzędzia (PWN, 2015)

WE RIVET TECHNOLOGY ON BUSINESS

Informacje o firmie rivet group Kompleksowo wspieramy naszych Klientów: od analizy po implementację, testy, wdrożenie i utrzymanie oprogramowania. W skład rivet group wchodzi kilka podmiotów: rivet expertise to podmiot doradczy, skupiony wokół konsultingu i biznesu. Marka rivet in time jest odpowiedzialna za bodyleasing, outsourcing, headhunting oraz usługi HR związane z pozyskiwaniem i rozwojem pracowników. rivet security specjalizuje się w rozwiązaniach z zakresu bezpieczeństwa IT. Prowadzimy również działalność edukacyjną. Oferta rivet!know obejmuje ścieżki certyfikacyjne oraz szkolenia dostosowane do indywidualnych potrzeb Klientów. Zapraszamy do kontaktu: rivet@rivetgroup.eu

Plan spotkania Po co testerowi techniki białoskrzynkowe? Automatyzacja, ale czego? Technika czarnoskrzynkowa: Category-Partition Przykład pełna automatyzacja i jej zalety

Po co testerowi techniki białoskrzynkowe? klasyka gatunku: pokrycie instrukcyjne decyzyjne warunkowe warunkowo/decyzyjne MC/DC ścieżek pętli input a, b c = a+b if (c>0) { while (a>0) { a=a-1; if (a>b) { b=b+1; } } } else { if (a<b) { return a } else { return c } }

Po co testerowi techniki białoskrzynkowe? ile testów potrzeba, aby pokryć wszystkie decyzje? jaki test spowoduje 17-krotne wykonanie pętli while, z których dokładnie 9 przejdzie przez if (a>b)? zaprojektowanie przypadków testowych = zaprojektowanie ścieżek. Ale co nam to daje? co nam daje to, że np. pokryliśmy testami 100% decyzji? input a, b c = a+b if (c>0) { while (a>0) { a=a-1; if (a>b) { b=b+1; } } } else { if (a<b) { return a } else { return c } }

1. Użycie do oceny testów czarnoskrzynkowych PRZYPADKI TESTOWE (black box!) SYSTEM UNDER TEST WYNIKI TESTÓW kod źródłowy LOKALIZACJA BŁEDÓW OCENA TESTÓW, DODANIE NOWYCH POKRYCIE KODU

2. Wykorzystanie jako model systemu techniki białoskrzynkowe nie muszą działać na kodzie białą skrzynką może być jakikolwiek MODEL działania oprogramowania, np.: graf przepływu sterowania (klasyka) graf przepływu danych (wciąż blisko kodu, choć nie zawsze) model struktury menu modele UML na podstawie których wygenerowano kod model maszyny stanowej tablica decyzyjna wiele technik czarnoskrzynkowych można traktować jak białoskrzynkowe obecnie rozgraniczenie white<->black box jest bardzo rozmyte (prawdopodobnie wg ISTQB to herezja)

aplikacja obsługująca redakcję czasopisma proces biznesowy z punktu widzenia cyklu życia artykułu pokrycie = zestaw istotnie różnych scenariuszy 2. Wykorzystanie jako model systemu - przykład

im bardziej wymagające pokrycie, tym dokładniejsze testy (i większy koszt!) 100% instrukcji 2. Wykorzystanie jako model systemu - przykład 100% decyzji 100% ścieżek liniowo niezależnych!

2. Wykorzystanie jako model systemu - przykład publikacja artykułu przed zrecenzowaniem? decyzja o odrzuceniu artykułu bez konsultacji z recenzentem? recenzent akceptuje a redaktor odrzuca? standardowa procedura odrzucenia artykułu każda ścieżka w tym procesie jest kombinacją liniową powyższych 4 ścieżek

testowanie mutacyjne testuje testy 3. Do predykcji defektów (sic!) mutant = zmutowany program (np. ze zmienioną instrukcją x=x+1 zamiast oryginalnej x=x-1) mutacje = symulacje pomyłek programistów pokrycie = liczba zabitych mutantów / liczba wszystkich mutantów

D = liczba wykrytych rzeczywistych defektów M = liczba wszystkich mutantów Z = liczba zabitych mutantów X = nieznana liczba defektów pozostałych w kodzie 3. Do predykcji defektów (sic!) idea: pokrycie mutacyjne = pokrycie realnych defektów D/(X+D) = Z/M X = (D*M)/Z - D

Automatyzacja, ale czego? najczęściej automatyzację testów rozumie się jako automatyzację wykonania testów skrypty programy nagrane scenariusze itp.

Automatyzacja, ale czego? ale (o czym raczej się nie mówi) automatyzować można również: projektowanie przypadków testowych (generowanie) specyfikowanie przypadków testowych (definiowanie) implementację testów generowanie danych testowych porównywanie wyników rzeczywistych z oczekiwanymi przeprowadzanie analizy statycznej lub dynamicznej

Przykład automatyzacji dla metody Category-Partition idea metody C-P: 1. zidentyfikuj parametry i warunki środowiskowe, które wpływają na zachowanie się programu 2. wyodrębnij kategorie parametrów i warunków 3. podziel każdą kategorię na rozłączne strefy wyboru 4. określ związki i ograniczenia między wyborami 5. napisz specyfikację testów (np. używając TSL) 6. wyprowadź elementy pokrycia 7. dla każdego elementu pokrycia stwórz przypadek testowy

Przykład automatyzacji dla metody Category-Partition testowanie polecenia grep program grep wyszukuje wzorzec w pliku i zwraca linie pliku, w których wzorzec się znajduje składnia: grep [wzorzec] [plik] 1. zidentyfikuj parametry i warunki środowiskowe, które wpływają na zachowanie się programu plik wzorzec nazwa pliku

Przykład automatyzacji dla metody Category-Partition testowanie polecenia grep program grep wyszukuje wzorzec w pliku i zwraca linie pliku, w których wzorzec się znajduje składnia: grep [wzorzec] [plik] 2. wyodrębnij kategorie parametrów i warunków Plik rozmiar # wystąpień wzorca w pliku # wystąpień wzorca w linii pozycja wzorca w pliku Wzorzec długość wzorca otoczony apostrofami? obecność białych znaków Zawiera apostrofy? nazwa pliku istnienie pliku o danej nazwie

Przykład automatyzacji dla metody Category-Partition testowanie polecenia grep program grep wyszukuje wzorzec w pliku i zwraca linie pliku, w których wzorzec się znajduje składnia: grep [wzorzec] [plik] 3. podziel każdą kategorię na rozłączne strefy wyboru plik rozmiar (pusty, niepusty) # wystąpień wzorca w pliku (0, 1, wiele) # wystąpień wzorca w linii (1, wiele) pozycja wzorca w pliku (1 linia, ostatnia linia, dowolna inna) itd.

Przykład automatyzacji dla metody Category-Partition testowanie polecenia grep program grep wyszukuje wzorzec w pliku i zwraca linie pliku, w których wzorzec się znajduje składnia: grep [wzorzec] [plik] 4. określ związki i ograniczenia między wyborami np. jeśli # wystąpień wzorca w pliku = 0 to # wystąpień wzorca w linii nie może być >1 itd.

Demonstracja automatyczne projektowanie, specyfikowanie i implementacja testów radzenie sobie ze złożonością (tzw. eksplozja kombinatoryczna) wykonanie testów uwagi i wnioski, zalety i wady metody