Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03"— Zapis prezentacji:

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

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

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

4

5

6 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

7 Struktura pracy inżynierskiej (cd.)
6. Implementacja systemu 6.1. Moduł A Opis interfesju Testy jednostkowe 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

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

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

10 Ocena wykładów

11 Oceny wykładów’02

12 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

13 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)

14 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

15 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.

16 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.

17 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

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

19 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!

20 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

21 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

22 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”.

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

24 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.

25 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

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

27 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) = = 4 printf(“\n”);

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

38 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

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

40 Sprawdzian - plany 19.III.03 Sala 208 11:45 grupy I1 + I2 12:30 grupy I3 + I4 Szczegóły na stronie:

41 Prośba Adres owy całego roku?

42 Pytania? ?

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


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

Podobne prezentacje


Reklamy Google