Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKlaudia Chybowski Został zmieniony 10 lat temu
1
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io Inżynieria oprogramowania II Wykład 3
2
J.Nawrocki, Kontrola jakości... Plan wykładu Pojęcie jakości Pojęcie jakości Testowanie Testowanie Przeglądy Przeglądy Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
3
J.Nawrocki, Kontrola jakości... Plan wykładu Pojęcie jakości Testowanie Przeglądy Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
4
J.Nawrocki, Kontrola jakości... Jakość oprogramowaniaCrosby: Jakość = zgodność z wymaganiami Prewencja > Sprawdzanie Philip Crosby (1926 – 2001)
5
J.Nawrocki, Kontrola jakości... Koszt naprawy błędu Względny czas identyfikacji błędu ( IBM ): w trakcie przeglądu projektu: 1 w trakcie przeglądu projektu: 1 w trakcie inspekcji kodu: 20 w trakcie inspekcji kodu: 20 w trakcie testów maszynowych: 82 w trakcie testów maszynowych: 82
6
J.Nawrocki, Kontrola jakości... Zasady skutecznego działania Bądź proaktywny Zaczynaj mając koniec na względzie Aby rzeczy pierwsze były pierwsze Myśl o obopólnej korzyści Najpierw staraj się zrozumieć Dbaj o synergię Ostrz piłę
7
J.Nawrocki, Kontrola jakości... Jakość oprogramowania Jakość projektu (wymagania a projekt) Jakość wykonania (projekt a implementacja)
8
J.Nawrocki, Kontrola jakości... Osiem wymiarów jakości 1. Wydajność (szybkość,..) 2. Niezawodność (częst. błędów) 3. Wytrzymałość (jak długo) 4. Łatwość naprawy 5. Estetyka 6. Cechy funkcjonalne 7. Reputacja 8. Zgodność ze standardami i wymaganiami D.A. Garvin, Competing in the Eight Dimensions of Quality, Harvard Business Review, Sept.-Oct. 1987. David A. Garvin Harvard Business School
9
J.Nawrocki, Kontrola jakości... Refaktoryzacja Cztery filary zapewniania jakości Testowanie Zarz. konfiguracją Przeglądy Jakość oprogramowania
10
J.Nawrocki, Kontrola jakości... Przetargi dot. kontroli jakości SI Platforma Wyborcza: ok. 1 mln zł SI GIIF (MF): kilkaset tysięcy złotych System Zintegrowanej Taryfy Celnej ISZTAR2: 600 godz. x 300 zł/godz. 200 tys. zł
11
J.Nawrocki, Kontrola jakości... Plan wykładu Pojęcie jakości Testowanie Przeglądy Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
12
J.Nawrocki, Kontrola jakości... Cele testowania wg Glena Myersa (1979) Testowanie = Jakość przypadku testowego : Udany test : wykonanie programu celem znalezienia błędu. prawdopodob. znalezienia jeszcze nie wykrytego błędu. taki, który wykrywa jeszcze nie wykryty błąd.
13
J.Nawrocki, Kontrola jakości... 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 Roger S. Pressman
14
J.Nawrocki, Kontrola jakości... Rodzaje testowania Wykonanie ręczne XPWykonanie automat. Dane ręczneDane automat.Testy
15
J.Nawrocki, Kontrola jakości... Rodzaje testowania Wykonanie ręczne XPWykonanie automat. Dane ręczneDane automat. Testy
16
J.Nawrocki, Kontrola jakości... Rodzaje testowania Wykonanie ręczne XPWykonanie automat. Dane ręczneDane automat. Testy
17
J.Nawrocki, Kontrola jakości... Jeden program w dwóch plikach #include "liczbacy.c" void main() { int X, C; scanf("%d", &X); C= LiczbaCyfr(X); printf("%d ma cyfr: %d \n", X, C); return; } int LiczbaCyfr(int n) { int C, G; C= 1; G= 10; while (n >= G) { C= C + 1; G= G * 10; } return C; } liczbacy.c
18
J.Nawrocki, Kontrola jakości... Organizacja plików Testowana funkcja Oprogramowanie korzystające z tej funkcji #include... Program testujący #include...
19
J.Nawrocki, Kontrola jakości... Prosty program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik, Blad; int Blad=0; n=0; oWynik=1; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } n=10; oWynik=2; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; }
20
J.Nawrocki, Kontrola jakości... Prosty program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik, Blad; int Blad=0; n=0; oWynik=1; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } n=10; oWynik=2; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; } Dane wejściowe Oczekiwane wyniki Faktyczne wyniki
21
J.Nawrocki, Kontrola jakości... Prosty program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik, Blad; int Blad=0; n=0; oWynik=1; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } n=10; oWynik=2; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; } Oczekiwane wyniki Faktyczne wyniki
22
J.Nawrocki, Kontrola jakości... Prosty program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik, Blad; int Blad=0; n=0; oWynik=1; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } n=10; oWynik=2; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; }
23
J.Nawrocki, Kontrola jakości... Prosty program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik, Blad; int Blad=0; n=0; oWynik=1; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } n=10; oWynik=2; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; }
24
J.Nawrocki, Kontrola jakości... Prosty program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik, Blad; int Blad=0; n=0; oWynik=1; fWynik= LiczbaCyfr(n); if (fWynik != oWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } n=10; oWynik=2; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; }
25
J.Nawrocki, Kontrola jakości... Wada prostego programu testującego #include "liczbacy.c" void main() { int n, fWynik, oWynik, Blad; int Blad=0; n=0 ; oWynik=1 ; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } n=10 ; oWynik=2 ; fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; }
26
J.Nawrocki, Kontrola jakości... Testowanie sterowane danymi Testowana funkcja Oprogramowanie korzystające z tej funkcji #include... Program testujący #include... Dane testowe
27
J.Nawrocki, Kontrola jakości... Testowanie sterowane danymi – Program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik; int Blad=0; while (scanf("%d %d", &n, &oWynik)>0){ fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; }
28
J.Nawrocki, Kontrola jakości... Testowanie sterowane danymi – Program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik; int Blad=0; while (scanf("%d %d", &n, &oWynik)>0){ fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; } Jest w pliku jeszcze jeden przypadek testowy
29
J.Nawrocki, Kontrola jakości... Testowanie sterowane danymi – Program testujący #include "liczbacy.c" void main() { int n, fWynik, oWynik; int Blad=0; while (scanf("%d %d", &n, &oWynik)>0){ fWynik= LiczbaCyfr(n); if (oWynik != fWynik){ printf("LiczbaCyfr(%d)=%d a nie %d.\n", n, fWynik, oWynik); Blad=1; } if (Blad == 0) { printf("Wszystko OK. Brawo!\n"); } return; }
30
J.Nawrocki, Kontrola jakości... Wszystko OK. Brawo! Dane testowe dla LiczbaCyfr Testowana funkcja Program testujący #include... 0 1 1 1 2 1 9 1 10 2 11 2 99 2 100 3 999 3
31
J.Nawrocki, Kontrola jakości... Rodzaje testów { n+=NF; } { n+=NF; } END { print n; } Testy systemowe Testy integracyjne Testy jednostkowe
32
J.Nawrocki, Kontrola jakości... Kto testuje? { n+=NF; } { n+=NF; } END { print n; } Programista Tester dostawcy Klient/użytkownik
33
J.Nawrocki, Kontrola jakości... 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).
34
J.Nawrocki, Kontrola jakości... 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ę.
35
J.Nawrocki, Kontrola jakości... Słabości testowania Testowaniem nie można wykazać braku błędów, można w ten sposób jedynie wykazać ich obecność. -- E.W................ Powiedzenie Dijkstra Dijkstry
36
J.Nawrocki, Kontrola jakości... Plan wykładu Pojęcie jakościPojęcie jakości TestowanieTestowanie Przeglądy Przeglądy Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
37
J.Nawrocki, Kontrola jakości... Artefakt Przegląd Przegląd (review) = Analiza artefaktu (np.kodu, dokumentu) realizowana przez grupę osób. Inspekcja (inspection) = Najbardziej sformalizowana postać przeglądu
38
J.Nawrocki, Kontrola jakości... Rola przeglądów Zapewnianie jakości Przekazywanie informacji
39
J.Nawrocki, Kontrola jakości... Projektant Inspekcje FaganaImplementator Moderator Tester Sesja przeglądu
40
J.Nawrocki, Kontrola jakości... Inspekcje Fagana 1. Omówienie (cały zespół) 2. Przygot. (indywidualnie) 3. Inspekcja (cały zespół) 4. Naprawa 5. Sprawdzenie Proktant Implem. Moderator Tester Review session
41
J.Nawrocki, Kontrola jakości... Inspekcje FaganaProjekt Kod Test Specyfikacje zewnętrzne (funkcje) Specyfikacje wewnętrzne (moduł) - I 0 Specyfikacje logiki przetw - I 1 inspek projek Kodowanie (logika) - I 2 inspek kodu Testowanie jednostkowe Cykl życia Test funkcji (zewn.), składnika, systemu
42
J.Nawrocki, Kontrola jakości... Inspekcje FaganaDesignDesignCodeCodeUnittestUnittest I1I1 I2I2 I3I3 Oszczędności (godz/KLOC): I 1 : 94 I 2 : 51 I 3 : -20
43
J.Nawrocki, Kontrola jakości... Inspekcje Fagana Omówienie (zespół) 500 niepotrzebne Przygotowanie (indyw.) 100 125 Inspekcja (zespół) 130 150 Naprawa 50 60 Sprawdzenie - - I1I1I1I1 I2I2I2I2 Prędkość (loc/h) Spotkanie inspekcyjne <= 2 godz 1 - 2 spotkania na dzień
44
J.Nawrocki, Kontrola jakości... Inspekcje Fagana Czy wszystkie stałe są zdefiniowane? Czy w trakcie manipulacji kolejką może wystąpić przerwanie? Jeśli tak, to czy kolejka jest ujęta w rejon krytyczny? Czy rejestry są odtwarzane przy wyjściu? Czy wszystkie liczniki są odpowiednio inicjowane (0 lub 1)? Czy są literały numeryczne, które powinny być zastąpione stałymi symbolicznymi? Czy wszystkie bloki na schemacie są potrzebne Lista kontrolna dla inspekcji projektu Ex Wr Missing
45
J.Nawrocki, Kontrola jakości... Plan wykładu Pojęcie jakości Pojęcie jakości Testowanie Testowanie Przeglądy Przeglądy Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe
46
J.Nawrocki, Kontrola jakości... Zapewnianie jakości Pewien dyrektor w Sopocie Pracując w PZJ-cie Chcąc robić coś w robocie Wymyślał standardy na krocie Za co dostanie w XXXX po robocie. -- Anonim Ostrzeżenie
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.