Testowanie oprogramowania

Slides:



Advertisements
Podobne prezentacje
Programowanie Ekstemalne
Advertisements

Rodzaje testów oprogramowania
Projektowanie w cyklu życia oprogramowania
Programowanie Ekstremalne
Testowanie oprogramowania
Wyszukiwanie błędów Testowanie programów w celu wyszukania błędów.
Na Etapie Inżynierii Wymagań
Organizacja Przedsięwzięć Programistycznych Testowanie
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Nawyki skutecznego działania
Lekkie metodyki programowania: Szansa czy zagrożenie?
Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03
ISO 9001:2000 z perspektywy CMMI a poznańska rzeczywistość
Inżynieria oprogramowania Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Szacowanie rozmiaru i pracochłonności
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Inżynieria oprogramowania II Wykład 12 Projekty dyplomowe
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Wprowadzenie do przedmiotu
Model dojrzałości CMMI
Zwinne metodyki programowania Copyright, 2006 © Jerzy R. Nawrocki Inżynieria oprogramowania.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Wykład 1 Inżynieria oprogramowania II Wykład 1 Wprowadzenie
Inżynieria Oprogramowania Copyright, 2002 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Personal Software Process
J. Nawrocki, Inżynieria oprog. Plan wykładu Praktyki XP Wcześniejsze badania Personal Software Process eXtremme Programming Opis eksperymentu WynikiPodsumowanie.
Analiza i walidacja wymagań
Copyright © Jerzy R. Nawrocki Zbieranie wymagań Analiza systemów informatycznych Wykład.
Copyright © Jerzy R. Nawrocki Wprowadzenie Analiza systemów informatycznych Wykład.
Inżynieria oprogramowania II Wykład 10 PRINCE2 i TSP
Modelowanie i architektura
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Modelowanie i język UML
Dyscyplina i zwinność w projektach informatycznych
Ilościowe zarządzanie przedsięwzięciem
Zasady skutecznego działania
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Przetwarzanie tekstów i AWK
Języki formalne i gramatyki
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Przetwarzanie tekstów i AWK Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Przetwarzanie tekstów i AWK Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Copyright © Jerzy R. Nawrocki Personal Software Process Inżynieria oprogramowania II Wykład.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wyrażenia regularne i język AWK
Komunikacja poprzez Internet
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstu i strony WWW Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Microsoft Solution Framework
Inżynieria Oprogramowania Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Gramatyki i translatory
Zasady skutecznego działania
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Inżynieria oprogramowania
Dokumenty elektroniczne Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstów i AWK Copyright, 2007 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
Copyright © Jerzy R. Nawrocki Innowacyjność: Szanse i zagrożenia Seminarium Programu InMoST.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Inżynieria oprogramowania
Kontrola jakości Inżynieria oprogramowania II
Zapis prezentacji:

Testowanie oprogramowania Jerzy Nawrocki Doskonalenie procesów programowych Wykład 3 Testowanie oprogramowania Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/psp Copyright, 2001 © Jerzy R. Nawrocki Doskonalenie Procesów Programowych, Wykład 1

J. Nawrocki, Wprowadzenie Z pierwszego wykładu.. Syndrom LOOP Loop L O P ate (późno) ver budget (przekroczony budżet) vertime (nadgodziny) oor quality (kiepska jakość) + niechęć do zmian J. Nawrocki, Wprowadzenie

Aby rzeczy pierwsze były pierwsze Z pierwszego wykładu.. Aby rzeczy pierwsze były pierwsze Pilne Nie pilne I “Gaszenie pożarów”, walka z czasem, robienie rzeczy na wczoraj II Zapobieganie, planowanie, szkolenia, penetracja możliwości Ważne III Przerwania, telefony, niektóre spotkania, ... IV Oglądanie stron www, niektóre listy dyskusyjne, gazety, programy TV .. Nie ważne J. Nawrocki, Wprowadzenie

CMM: Capability Maturity Model Z pierwszego wykładu.. CMM: Capability Maturity Model Zarządzanie wymaganiami Planowanie przedsięwzięcia Śledzenie postępów Zarządzanie podzleceniami Zapewnienie jakości Zarządzanie konfiguracją 5. Optymalizujący 4. Zarządzany ilościowo 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Z pierwszego wykładu.. PSP 1 PSP Estymacja rozmiaru Raporty testowania Planowanie zadań Planowanie harmonogramu J. Nawrocki, Wprowadzenie

Doskonalenie wytwarzania Z pierwszego wykładu.. Doskonalenie wytwarzania Wykrywanie defektów Zarządzanie zmianami Metody formalne Narzędzia zarz. konfig Przeglądy artefaktów Zarządz. zmianami Testy automatyczne Konfiguracje w katalogach Testowanie przypadkowe Chaos i anarchia J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Jerzy Nawrocki Plan wykładu Z pierwszego wykładu.. Jakość oprogramowania Wprowadzenie do testowania Testowanie białej skrzynki Testowanie czarnej skrzynki Raporty testowania J. Nawrocki, Wprowadzenie Doskonalenie Procesów Programowych, Wykład 1

Jakość oprogramowania Jerzy Nawrocki Jakość oprogramowania Philip Crosby’83: zgodność z wymaganiami Jakość projektu (wymagania a projekt) Jakość wykonania (projekt a implementacja) J. Nawrocki, PSP, Lecture 7 Doskonalenie Procesów Programowych, Wykład 1

Jakość oprogramowania Rodzaje wymagań Techniczne Nie-techniczne Funkcjonalne Poza-funkcjonalne J. Nawrocki, Wprowadzenie

Jakość oprogramowania Metody zapewniania jakości Przeglądy Testowanie { n+=NF; } END { print n; } J. Nawrocki, Wprowadzenie

Jakość oprogramowania Przeglądy Inspekcje Prezentacje Recenzje { n+=NF; } END { print n; } J. Nawrocki, Wprowadzenie

Jakość oprogramowania Testowanie Testy akceptacyjne Testy systemowe Testy integracyjne Testy jednostkowe { n+=NF; } END { print n; } J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Jerzy Nawrocki Plan wykładu Z pierwszego wykładu.. Jakość oprogramowania Wprowadzenie do testowania Testowanie białej skrzynki Testowanie czarnej skrzynki Raporty testowania J. Nawrocki, Wprowadzenie Doskonalenie Procesów Programowych, Wykład 1

Wprowadzenie do testowania Rola testowania Testowanie oprogramowania jest zasadniczym elementem systemu zapewnienia jakości i stanowi ostateczny przegląd specyfikacji, projektu i kodowania. -- Roger Pressman’97 J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Cele testowania Testowanie = wykonanie programu celem znalezienia błędu. Jakość przypadku testowego: prawdopodobieństwo znalezienie jeszcze nie wykrytego błędu. Udany test to taki, który wykrywa jeszcze nie wykryty błąd. -- Glen Myers’79 J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Powiedzenie Dijkstry Testowaniem nie można wykazać brak błędów, można w ten sposób jedynie wykazać ich obecność. -- E.W. Dijkstra J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Pracochłonność testowania Testowanie: ~ 30% - 40% całkowitej pracochłonności. Testowanie systemów krytycznych: 70% - 80% całkowitej pracochłonności (!) -- Roger Pressman’97 J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Dobry test.. .. ma duże prawdopodobieństwo znalezienia błędu, .. nie jest nadmiarowy, .. powinien być najlepszy w swoim rodzaju, .. nie powinien być ani zbyt prosty ani zbyt skomplikowany. J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Zasady testowania Wszystkie testy powinny być powiązane z wymaganiami użytkownika Testowanie należy planować na długo przed jego rozpoczęciem W przypadku testowania obowiązuje zasada Pareto (80 /20) J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Zasady testowania Testowanie należy przeprowadzać “od dołu do góry”. Testowanie wyczerpujące nie jest możliwe Pewne testy powinny być wykonane przez niezależną trzecią stronę. J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Nawyki skutecznego działania Aby rzeczy pierwsze były pierwsze Zaczynaj mając koniec na względzie Bądź proaktywny J. Nawrocki, Wprowadzenie

Wprowadzenie do testowania Jerzy Nawrocki Wprowadzenie do testowania Praktyki XP A ja tam lubię ręcznie potestować! Opracuj przypadki testowe możliwie jak najwcześniej Stosuj testowanie automatyczne J. Nawrocki, Wprowadzenie Doskonalenie Procesów Programowych, Wykład 1

Wprowadzenie do testowania Testowanie porównawcze Wielokrotne implementacje Czasami filtry interfejsu mogą być pomocne (dwa moduły implementują nie te same ale bardzo podobne funkcje) J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Jerzy Nawrocki Plan wykładu Z pierwszego wykładu.. Jakość oprogramowania Wprowadzenie do testowania Testowanie białej skrzynki Testowanie czarnej skrzynki Raporty testowania J. Nawrocki, Wprowadzenie Doskonalenie Procesów Programowych, Wykład 1

Testowanie białej skrzynki Graf przepływu Liczba niezależnych ścieżek (złożoność cyklomatyczna - McCabe’76): V(G) = P + 1 P: liczba węzłów decyzyjnych Utwórz zbiór podstawowy niezależnych ścieżek Przygotuj przypadki testowe: każdą ścieżkę ze zbioru podstawowego należy przejść przynajmniej raz. J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki 1 2 3 void PrintGraph(int n){ int r, c; for(r=0; r<n; r++){ printf("\n%d:", r); for(c=0; c<n; c++) if(Connected(r, c)) printf(" %d", c); } printf("\n"); 0: 1 2 3 1: 0 2: 0 3: 0 J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. void PrintGraph(int n){ int r, c; for(r=0; r<n; r++){ printf("\n%d:", r); for(c=0; c<n; c++) if(Connected(r, c)) printf(" %d", c); } printf("\n"); printf(“”, r); c=0; if c>=n goto .. if not Connected goto .. printf(“”, c) c++; r++; printf(“\n”); J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. void PrintGraph(int n){ int r, c; for(r=0; r<n; r++){ printf("\n%d:", r); for(c=0; c<n; c++) if(Connected(r, c)) printf(" %d", c); } printf("\n"); printf(“”, r); c=0; if c>=n goto .. if not Connected goto .. printf(“”, c) c++; r++; V(G) = 3 + 1 = 4 printf(“\n”); J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. A A - G printf(“”, r); c=0; if c>=n goto .. B if !Connected goto.. C printf(“”, c) D c++; E r++; F printf(“\n”); G J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. A A - G printf(“”, r); c=0; if c>=n goto .. B A - B - F - A - G if !Connected goto.. C printf(“”, c) D c++; E r++; F printf(“\n”); G J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. A A - G printf(“”, r); c=0; if c>=n goto .. B A - B - F - A - G A - B - C - E - B - F - A - G if !Connected goto.. C printf(“”, c) D c++; E r++; F printf(“\n”); G J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. A A - G printf(“”, r); c=0; if c>=n goto .. B A - B - F - A - G A - B - C - E - B - F - A - G if !Connected goto.. C A - B - C - D - E - B - F - A - G printf(“”, c) D c++; E r++; F printf(“\n”); G J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. A A - G printf(“”, r); c=0; if c>=n goto .. B n = 0 if !Connected goto.. C printf(“”, c) D c++; E r++; F printf(“\n”); G J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. A printf(“”, r); c=0; if c>=n goto .. B A - B - F - A - G 0 < n and 0 >= n ??? if !Connected goto.. C printf(“”, c) D c++; E r++; F printf(“\n”); G J. Nawrocki, Wprowadzenie

Testowanie białej skrzynki if r>=n goto .. A A test case for: printf(“”, r); c=0; if c>=n goto .. B A - B - F - A - G if !Connected goto.. C 1 n = 2 printf(“”, c) D c++; E r++; F A-B-C-E-B-C-D-E-B-F-A-..-A-G printf(“\n”); G J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Jerzy Nawrocki Plan wykładu Z pierwszego wykładu.. Jakość oprogramowania Wprowadzenie do testowania Testowanie białej skrzynki Testowanie czarnej skrzynki Raporty testowania J. Nawrocki, Wprowadzenie Doskonalenie Procesów Programowych, Wykład 1

Testowanie czarnej skrzynki Cele niepoprawne lub brakujące funkcje błędy interfesju błędy w strukturach danych błędy dotyczące wydajności błedy inicjowania i kończenia J. Nawrocki, Wprowadzenie

Testowanie czarnej skrzynki void PrintGraph( int n ) n = 1 1 n = 2 1 n = 2 n = 3 1 2 n = 3 1 2 n = 3 1 2 n = 3 1 2 J. Nawrocki, Wprowadzenie

Testowanie czarnej skrzynki Zupełność McCabe’a r=0; if r>=n goto .. A n = 1 1 n = 2 printf(“”, r); c=0; if c>=n goto .. B 1 n = 2 n = 3 1 2 if !Connected goto.. C printf(“”, c) D n = 3 1 2 c++; E n = 3 1 2 r++; F n = 3 1 2 printf(“\n”); G J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Jerzy Nawrocki Plan wykładu Z pierwszego wykładu.. Jakość oprogramowania Wprowadzenie do testowania Testowanie białej skrzynki Testowanie czarnej skrzynki Raporty testowania J. Nawrocki, Wprowadzenie Doskonalenie Procesów Programowych, Wykład 1

Raporty testowania Tester: ........................ Data: ........... Program: ............... Symbol testu: ..................... Cel testu: ................................................................... ................................................................................... Warunki testowania: ................................................... .................................................................................... Wejście Oczekiwane wyj Faktyczne wyj J. Nawrocki, Wprowadzenie

Raporty testowania Tester: J. Nawrocki Data: 18.01.00 Program: GraphCol Symbol testu: N2Full Cel testu: Sprawdzić program dla grafu składającego się z 2 węzłów. Warunki testowania: - Wejście Oczekiwane wyj 0: 1 1: 0 Faktyczne wyj 0: 1 1: 0 J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Podsumowanie Testowanie jest działalnością destrukcyjną. Testowanie nie może wykazać braku błędów. Testowanie > 30% całkowitego nakładu pracy. Wszystkie testy powinny być powiązane z wymaganiami użytkownika. Testowanie na zasadzie białej i czarnej skrzynki. Wreszcie! J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Literatura W.S. Humphrey, A Discipline for Software Engineering, Addison-Wesley, Reading, 1995. R.S. Pressman, Software Engineering. A Practitioner’s Approach, McGraw-Hill, New York, 1997. J. Nawrocki, W. Complak, Wprowadzenie do przetwarzania tekstów w języku AWK, Pro Dialog 2 (1994), 23-46.  J. Nawrocki, Wprowadzenie

J. Nawrocki, Wprowadzenie Jerzy Nawrocki Zadania domowe Wybierz 5 najważniejszych z Twojego punktu widzenia zasad zarządzania czasem i spróbuj je wdrożyć. Zredaguj afirmację dotyczącą Twoich studiów. Napisz swoją misję. J. Nawrocki, Wprowadzenie Doskonalenie Procesów Programowych, Wykład 1

J. Nawrocki, Wprowadzenie Ocena wykładu 1. Wrażenie ogólne (1 - 6) 2. Za szybko czy za wolno? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić? J. Nawrocki, Wprowadzenie