Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03

Slides:



Advertisements
Podobne prezentacje
Rodzaje testów oprogramowania
Advertisements

Projektowanie w cyklu życia oprogramowania
Opis metodyki i procesu produkcji oprogramowania
Programowanie Ekstremalne
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Zarządzanie przedsięwzięciami i PRINCE2
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Projektowanie Aplikacji Komputerowych
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Jerzy Nawrocki Piotr Pawałowski Krzysztof Pospiech
Próba eksperymentalnej oceny metody PROBE
Na Etapie Inżynierii Wymagań
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Inżynieria oprogramowania Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Inżynieria oprogramowania II Wykład 12 Projekty dyplomowe
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Obliczalność i złożoność obliczeniowa
Copyright © Jerzy R. Nawrocki Standardy serii ISO Inżynieria oprogramowania II Wykład.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Inżynieria Oprogramowania Copyright, 2002 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
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
Dyscyplina i zwinność w projektach informatycznych (cz. 2)
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Bazy danych Wprowadzenie do informatyki Wykład 9
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Testowanie oprogramowania
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Komunikacja poprzez Internet
Zarządzanie przedsięwzięciami i PRINCE2
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Pomiary w inżynierii oprogramowania
Pomiary w inżynierii oprogramowania
Rational Unified Process
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Analiza, projekt i częściowa implementacja systemu obsługi kina
Projekt i implementacja aplikacji wspomagającej testowanie
TESTOWANIE OPROGRAMOWANIA
C.d. wstępu do tematyki RUP
Gramatyki i translatory
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Waterfall model.
Zarządzanie zagrożeniami
Zarządzanie projektami informatycznymi
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Inżynieria oprogramowania
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
(c) Jerzy Nawrocki Jerzy Nawrocki
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Zarządzanie wdrożeniem oprogramowania w organizacji w oparciu o metodykę ITIL Michał Majewski s4440 Praca magisterska napisana pod kierunkiem dr inż. Tomasza.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Inżynieria oprogramowania
Zarządzanie projektami informatycznymi
Inżynieria Oprogramowania Laboratorium
Kontrola jakości Inżynieria oprogramowania II
Zapis prezentacji:

Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/opp Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03 Podsumowanie Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/opp

Plan wykładu Struktura pracy inżynierskiej Ocena wykładów Uwagi i pytania do wykładów Testowanie oprogramowania

Struktura pracy inżynierskiej Plan wykładu Struktura pracy inżynierskiej Ocena wykładów Uwagi i pytania do wykładów Testowanie oprogramowania

Struktura pracy inżynierskiej (cd.) 4. Specyfikacja wymagań 4.1. Problemy i wizje klienta 4.2. Wymagania funkcjonalne 4.3. Wymagania pozafunkcjonalne 4.4. Interfejs użytkownika 4.5. Testy akceptacyjne 5. Projekt systemu 5.1. Architektura systemu diagramy obiektów, komponentów, rozmieszczenia 5.2. Komunikacja między elementami systemu diagramy współpracy, stanów, sekwencji, czynności 5.3. Budowa systemu diagramy klas, komponentów, rozmieszczenia

Struktura pracy inżynierskiej (cd.) 6. Implementacja systemu 6.1. Moduł A 6.1.1. Opis interfesju 6.1.2. Testy jednostkowe 6.1.3. Algorytmy i struktury danych 6.2. Moduł B 7. Zebrane doświadczenia 8. Plan oceny przedsięwzięcia 9. Zakończenie (pomiary produktu, co dalej z produktem) Literatura Dodatki A. Słownik terminów i skrótów B. Opinia przedstawiciela klienta C. Standard kodowania D. Kod źródłowy systemu

Ocena wykładów Plan wykładu Struktura pracy inżynierskiej Uwagi i pytania do wykładów Testowanie oprogramowania

Ocena wykładów „Wszystko zawsze można zrobić lepiej niż się to robi obecnie.” (-) Henry Ford

Ocena wykładów

Oceny wykładów’02

Uwagi i pytania do wykładów Plan wykładu Struktura pracy inżynierskiej Ocena wykładów Uwagi i pytania do wykładów Testowanie oprogramowania

Programowanie Ekstremalne (4,91) Dlaczego ten przedmiot nie jest realizowany od razu po przedmiocie „Inżynieria oprogramowania”? Stary program studiów na to nie pozwalał. W nowym programie zagadnienia te będą prezentowane na „Inż. oprogramowania” II. Bardzo ciekawa organizacja przedmiotu jako krótkiego kursu. Nie było to łatwe, ale trzeba eksperymentować z nowymi sposobami kształcenia. Przez dwa semestry uczyłem się rzeczy niepotrzebnych  Mogą się jeszcze okazać potrzebne! (przynajmniej niektóre)

Programowanie Ekstremalne (4,91) Przedmiot ten powinien być ogólny dla całego roku. Będzie obowiązkowy od przyszłego roku, chociaż jestem zwolennikiem przedmiotów obieralnych. Zasady skutecznego działania

Programowanie Ekstremalne (4,91) Dlaczego metodykę XP uznaje się za najlepszą, przedmiot ‘kultu’ (tak sądzę z wykładu). Tom DeMarco "XP is the most important movement in our field today." Małe przedsięwzięcia programistyczne (do 10 osób). Podstawowe czynniki ryzyka: brak dokumentacji – pielęgnacja produktu, problemy z dostępnością klienta, tylko 1 przedstawiciel klienta.

Zasady skutecznego działania (5,07) Szkoda, że na początku lub na końcu nie ma literatury. Stephen R. Covey, „7 nawyków skutecznego działania”, Diogenes, Warszawa, 2001. Lothar J. Seiwert, Zarządzanie czasem, Placet, Warszawa 1998. Joseph Murphy, Potęga podświadomości, Świat Książki, Warszawa, 1997. Jose Silva, Philip Miele, Samokontrola umysłu metodą Silvy, Ravi, Łódź, 1996. Daniel Gross i inni, Forbes o największych sukcesach w świecie biznesu, WNT, Warszawa, 1999.

Zarządzanie zmianami (4,10) Jak często w praktyce dokonuje się zmian? Zmiany swobodne – Baseline – Zmiany kontrolowane Zmiana wymagań Zmiana interfejsu Zmiana implementacji Podstawowy problem: aktualizacja artefaktów Specyfikacja wymagań Projekt Kod Przypadki testowe Dokumentacja użytkownika

Testowanie oprogramowania Plan wykładu Struktura pracy inżynierskiej Ocena wykładów Uwagi i pytania do wykładów Testowanie oprogramowania

Testowanie oprogramowania (4,15) Może trochę bardziej szczegółowo o planowaniu testów, przygotowywaniu przypadków, przykłady użycia narzędzi. Przykłady użycia narzędzi były na ćw. laboratoryjnych. Omówić narzędzia do testowania oprogramowania. Trochę więcej!

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

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

Wprowadzenie do testowania Zasady testowania Testowanie należy planować na długo przed jego rozpoczęciem. W przypadku testowania obowiązuje zasada Pareto (80 /20). Testowanie należy przeprowadzać “od dołu do góry”.

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

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

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

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”);

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”);

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

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

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

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

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

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

Testowanie białej skrzynki if r>=n goto .. A Test dla: 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

Testowanie czarnej skrzynki Cele Niepoprawne lub brakujące funkcje Błędy interfesju Błędy w strukturach danych Błędy dotyczące wydajności Błędy inicjowania i kończenia Testowanie w oparciu o wymagania Analiza wartości granicznych

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

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

Rational TestStudio Rational Robot nagrywanie i odtwarzanie przypadków testowych; raporty o wykrytych awariach Rational TestFactory Generacja skryptów dla przypadków testowych (maksymalizacja ilości wykonanego kodu i minimalizacja liczby kroków). TestRobot wykonuje skrypty TestFactory. Rational PureCoverage Rational LoadTest

Nareszcie! Podsumowanie Zasady skutecznego działania Programowanie Ekstremalne Testowanie Zarządzanie zmianami Projektowanie oprogramowania Aplikacje internetowe Struktura pracy inżynierskiej Nareszcie!

Sprawdzian - plany 19.III.03 Sala 208 11:45 grupy I1 + I2 12:30 grupy I3 + I4 Szczegóły na stronie: www.cs.put.poznan.pl/jnawrocki/opp

Prośba Adres e-mailowy całego roku?

Pytania? ?

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ć?