Kontrola jakości Inżynieria oprogramowania II (c) Jerzy Nawrocki Wykład 2 Inżynieria oprogramowania II Kontrola jakości Jerzy.Nawrocki@put.poznan.pl Adam.Wojciechowski@put.poznan.pl Copyright, 2004 © Jerzy R. Nawrocki Inżynieria oprogramowania II
Jakość oprogramowania (c) Jerzy Nawrocki Wykład 2 Jakość oprogramowania Philip Crosby’83: zgodność z wymaganiami Jakość projektu (wymagania a projekt) Jakość wykonania (projekt a implementacja) Copyright (c) 2004 by J. Nawrocki Inżynieria oprogramowania II
Osiem wymiarów jakości D.A. Garvin, Competing in the Eight Dimensions of Quality, Harvard Business Review, Sept.-Oct. 1987. A gdzie cena? 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 Copyright (c) 2004 by J. Nawrocki
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 Copyright (c) 2004 by J. Nawrocki
Cztery filary zapewniania jakości (c) Jerzy Nawrocki Wykład 2 Wprowadzenie Cztery filary zapewniania jakości Jakość oprogramowania Zarz. konfiguracją Testowanie Przeglądy Refaktoryzacja Copyright (c) 2004 by J. Nawrocki Inżynieria oprogramowania II
Copyright (c) 2004 by J. Nawrocki (c) Jerzy Nawrocki Wykład 2 Wprowadzenie Koszt naprawy błędu Względny czas identyfikacji błędu (IBM ): w trakcie przeglądu projektu: 1 w trakcie inspekcji kodu: 20 w trakcie testów maszynowych: 82 Copyright (c) 2004 by J. Nawrocki Inżynieria oprogramowania II
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ł Copyright (c) 2004 by J. Nawrocki
Nawyki skutecznego działania .. a sprawa testowania Ostrz piłę Dbaj o synergię Najpierw staraj się zrozumieć Myśl o obopólnej korzyści Aby rzeczy pierwsze były pierwsze Zaczynaj mając koniec na względzie Bądź proaktywny Copyright (c) 2004 by J. Nawrocki
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 Copyright (c) 2004 by J. Nawrocki
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 Copyright (c) 2004 by J. Nawrocki
Jakość oprogramowania Testowanie Testy systemowe Testy akceptacyjne Testy integracyjne Testy jednostkowe { n+=NF; } END { print n; } Copyright (c) 2004 by J. Nawrocki
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). Copyright (c) 2004 by J. Nawrocki
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ę. Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Wprowadzenie Przegląd Przegląd (review) = Analiza artefaktu (np.kodu, dokumentu) realizowana przez grupę osób. Inspekcja (inspection) = Najbardziej sformalizowana postać przeglądu Artefakt Copyright (c) 2004 by J. Nawrocki
Modele doskonalenia procesów CMM: Capability Maturity Model Zarządzanie wymaganiami Planowanie przedsięwzięcia Śledzenie postępów Zarządzanie podzleceniami Zapewnianie jakości Zarządzanie konfiguracją Pomiary i analiza 5. Optymalizujący 4. Zarządzany ilościowo 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki (c) Jerzy Nawrocki Wykład 2 Zapewnianie jakości Zdolność 1. Istnieje grupa SQA odpowiedzialna za koordynację i implementację zapewniania jakości oprogramowania w przedsięwzięciu. Copyright (c) 2004 by J. Nawrocki Inżynieria oprogramowania II
Copyright (c) 2004 by J. Nawrocki Zapewnianie jakości Działanie 4. Grupa SQA realizuje przeglądy działań dot. inżynierii oprogramowania celem weryfikacji ich zgodności z SDP, wybranymi standardami i procedurami. QA Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Zapewnianie jakości Działanie 5. Grupa SQA realizuje audyty wybranych produktów oprogramowania aby zweryfikować ich zgodność z przyjętymi standardami i wymaganiami zawartymi w kontrakcie. QA if (a < b) a+= b; Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Wprowadzenie Rola przeglądów Zapewnianie jakości Przekazywanie informacji Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki (c) Jerzy Nawrocki Wykład 2 Plan wykładu Wprowadzenie Analiza przypadku Formalny przegląd techniczny Inspekcje Fagana Przeglądy aktywne i inspekcje fazowe Copyright (c) 2004 by J. Nawrocki Inżynieria oprogramowania II
Copyright (c) 2004 by J. Nawrocki Procedura FTR Wprowadzenie FTR = Formal Technical Review (Formalny przegląd techniczny) Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Procedura FTR Osoby Producent Kierownik projektu Kierownik przeglądu Recenzent (recenzenci) Sekretarz Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Procedura FTR Kroki (I) Producent informuje kierownika projektu + kierownika przeglądu, że produkt jest gotowy i śle im jego kopię Kierownik przeglądu ustala, w porozumieniu ze wszystkimi uczestnikami przeglądu datę spotkania (najlepiej w ciągu 3 dni). Przesyła też recenzentom kopie produktu. Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Procedura FTR Kroki (II) Kierownik przeglądu opracowuje agendę spotkania. Spotkanie FTR Sekretarz przygotowuje raport przeglądu i wysyła go do uczestników spotkania. Jego kopia idzie też do kierownika projektu. Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Spotkanie FTR Propozycja agendy (I) Kierownik przeglądu: Przedstawienie agendy. Uczestnicy mogą proponować zmiany. Sekretarz: Zbieranie kopii formularzy przygotowawczych. Producent: Prezentacja produktu. Recenzenci mogą zadawać pytania. Sekretarz notuje problemy i wykryte błędy. Copyright (c) 2004 by J. Nawrocki
Propozycja agendy (II) Spotkanie FTR Propozycja agendy (II) Sekretarz: Podsumowuje problemy i błędy. Wszyscy uczestnicy oprócz producenta: Tajne głosowanie wstępne. Sekretarz: Zbiera głosy i prezentuje wyniki. Producent: “Ostatnie słowo” Wszyscy uczestnicy oprócz pro-ducenta: Ostateczne głosowanie Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Spotkanie FTR Decyzja Akceptacja. Żadne modyfikacje nie są konieczne. Akceptacja warunkowa. Są drobne błędy ale dodatkowy przegląd nie jest konieczny (kierownik projektu sprawdzi wersję końcową). Odrzucenie. Są istotne błędy i dodatkowy przegląd jest konieczny. Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Spotkanie FTR Decyzja Jeśli decyzja recenzentów nie jest jasna (niektórzy proponują Akceptację a inni Odrzucenie), ostateczna decyzja należy do . . . . . . . . . . . . . Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Formularz recenzji Nagłówek Nazwa produktu i jego wersja: .......... Producent: ........................................... Recenzent: ........................................... Produkt otrzymano: ............................ Spodziewany czas przygot.: .............. Faktyczny czas przygot.: ................... Termin spotkania: ............................... Wstępna decyzja: ................................ Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Formularz recenzji Część zasadnicza Poważne błędy i problemy (np. ukryte problemy, niejednoznacz-ność, niezrozumienie) Opis problemu (rodzaj) Drobne problemy (np. ortografia, gramatyka, format) Opis problemu (rodzaj) Copyright (c) 2004 by J. Nawrocki
Rodzaje - Główne przyczyny błędów Formularz recenzji Rodzaje - Główne przyczyny błędów “Two” or “too”? Edukacja: brak rozumienia Komunikacja: brak poinformowanie Przeoczenie: wiedziałem, że mam zrobić ale zapomniałem Transkrypcja: wiedziałem, ale pomyliłem się Proces: winna jest procedura Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki (c) Jerzy Nawrocki Wykład 2 Plan wykładu Wprowadzenie Analiza przypadku Formalny przegląd techniczny Inspekcje Fagana Przeglądy aktywne i inspekcje fazowe Copyright (c) 2004 by J. Nawrocki Inżynieria oprogramowania II
Copyright (c) 2004 by J. Nawrocki Inspekcje Fagana Cykl życia Specyfikacje zewnętrzne (funkcje) Specyfikacje wewnętrzne (moduł) - I0 Specyfikacje logiki przetw - I1 inspek projek Projekt Kodowanie (logika) - I2 inspek kodu Testowanie jednostkowe Kod Test Test funkcji (zewn.), składnika, systemu Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Inspekcje Fagana Implementator Sesja przeglądu Projektant Moderator Tester Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Inspekcje Fagana Proktant Implem. Moderator Tester Review session 1. Omówienie (cały zespół) 2. Przygot. (indywidualnie) 3. Inspekcja (cały zespół) 4. Naprawa 5. Sprawdzenie Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Inspekcje Fagana Prędkość (loc/h) I1 I2 Omówienie (zespół) 500 niepotrzebne Przygotowanie (indyw.) 100 125 Inspekcja (zespół) 130 150 Naprawa 50 60 Sprawdzenie - - Spotkanie inspekcyjne <= 2 godz 1 - 2 spotkania na dzień Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Inspekcje Fagana Lista kontrolna dla inspekcji projektu 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 Missing Wr Ex Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki (c) Jerzy Nawrocki Wykład 2 Plan wykładu Wprowadzenie Analiza przypadku Formalny przegląd techniczny Inspekcje Fagana Przeglądy aktywne i inspekcje fazowe Copyright (c) 2004 by J. Nawrocki Inżynieria oprogramowania II
Copyright (c) 2004 by J. Nawrocki Przeglądy aktywne Parnas i Weiss, 1985 Pytania formułowane przez autorów - zachęta do dokładnej recenzji Kilka krótkich przeglądów skupiających się na części produktu (dokumentu) Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Inspekcje fazowe 1 Zgodność ze standardem dokumentu. Także sprawdzenie ortografii i gramatyki. 2. Struktura kodu źródłowego. 3. Czytelność. 4. Dobre praktyki programistyczne (skoki, globalne zmienne, ..). 5. Właściwe użycie konstrukcji programistycznych (aktualizacja zmiennych sterujących pętli, zamykanie plików, ...). 6. Poprawność funkcjonalna. Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Podsumowanie Inspekcja = przegląd + lista kontrolna Problemy z listami kontrolnymi Inspekcja i przegląd może ale nie musi zawierać prezentacji (różne zdania) Może być przegląd bez recenzji (ale z prezentacją) Czasochłonność inspekcji: ok. 20 godz. / KLOC na osobę Szacowanie liczby błędów Wreszcie! Copyright (c) 2004 by J. Nawrocki
Copyright (c) 2004 by J. Nawrocki Zapewnianie jakości Ostrzeżenie 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 Copyright (c) 2004 by J. Nawrocki