Post on 06-Jan-2016
description
Inżynieria oprogramowania II
Kontrola jakości
Jerzy Nawrockijerzy.nawrocki@put.poznan.pl
Kontrola jakości płytki krzemu w świetle zielonym
Inżynieria oprogramowania II
Kontrola jakości (2)
Jakość oprogramowania
Jakość = zgodność z wymaganiami
Philip Crosby (1926 – 2001)
Inżynieria oprogramowania II
Kontrola jakości (3)
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
Inżynieria oprogramowania II
Kontrola jakości (4)
Zasady skutecznego działania
Bądź proaktywny Bądź proaktywny
Zaczynaj mając koniec na względzieZaczynaj mając koniec na względzie
Aby rzeczy pierwsze były pierwszeAby rzeczy pierwsze były pierwsze
Myśl o obopólnej korzyściMyśl o obopólnej korzyści
Najpierw staraj się zrozumiećNajpierw staraj się zrozumieć
Dbaj o synergięDbaj o synergię
Ostrz piłęOstrz piłę
Inżynieria oprogramowania II
Kontrola jakości (5)
Zarz. konfiguracją
Testowanie
Przeglądy
Refaktoryzacja
Cztery filary zapewniania jakości
Jakość oprogramowania
Inżynieria oprogramowania II
Kontrola jakości (6)
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ł
Inżynieria oprogramowania II
Kontrola jakości (7)
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.
Inżynieria oprogramowania II
Kontrola jakości (8)
Pracochłonność testowania
Testowanie: ~ % - % całkowitej pracochłonności.
30 40
Testowanie systemów krytycznych: 70% - 80% całkowitej pracochłonności (!)
Roger S. Pressman
Inżynieria oprogramowania II
Kontrola jakości (9)
Rodzaje testowania
Wykonanie ręczne
Wykonanie automat.
Dane ręczneDane automat.TestyTesty
XP
Inżynieria oprogramowania II
Kontrola jakości (10)
Anomalia
http://www.mayoclinic.org/ebsteins-anomaly/abnormalities.htmlSerce z anomalią EbsteinaNormalne serce
Anomalia = Sytuacja różna od oczekiwanej, wynikającej ze specyfikacji, standardów lub czyjegoś doświadczenia.
Inżynieria oprogramowania II
Kontrola jakości (11)
ArtefaktArtefakt
Przegląd
• Przegląd (review) = Ocena artefaktu (np.kodu) realizowana przez grupę osób.
• Inspekcja (inspection) = Ocena artefaktu przeprowadzana przez współpracowników i kierowana przez moderatora.
Inżynieria oprogramowania II
Kontrola jakości (12)
Rola przeglądów
• Zapewnianie jakości• Przekazywanie informacji
Inżynieria oprogramowania II
Kontrola jakości (13)
Inspektor
Spotkanie
Prezen
ter
Inspekcje zgodne z IEEE 1028
Autor
Moderator Sekretarz
Inżynieria oprogramowania II
Kontrola jakości (14)
Inspekcje zgodne z IEEE 1028
1. Omówienie (cały zespół)
2. Przygot. (indywidualnie)
3. Inspekcja (cały zespół)
Inspektor Pre
zent
erAutor
Mod
erat
or Sekretarz
Spotkanie
• Pełna akceptacja• Akceptacja warunkowa• Powtórna inspekcja
Inżynieria oprogramowania II
Kontrola jakości (15)
Inspekcje zgodne z IEEE 1028
1. Omówienie (cały zespół)
2. Przygot. (indywidualnie)
3. Inspekcja (cały zespół)
4. Naprawa
5. Sprawdzenie
Inspektor Pre
zent
erAutor
Mod
erat
or Sekretarz
Spotkanie
Inżynieria oprogramowania II
Kontrola jakości (16)
Inspekcje FaganaP
roje
ktK
odT
est
Specyfikacje zewnętrzne (funkcje)
Specyfikacje wewnętrzne (moduł) - I0
Specyfikacje logiki przetw - I1 inspek projek
Kodowanie (logika) - I2 inspek kodu
Testowanie jednostkowe
Cykl życiaCykl życia
Test funkcji (zewn.), składnika, systemu
Inżynieria oprogramowania II
Kontrola jakości (17)
Inspekcje Fagana
DesignDesign CodeCodeUnit
testUnit
testI1 I2 I3
Oszczędności (godz/KLOC):
I1: 94
I2 : 51
I3 : -20
Inżynieria oprogramowania II
Kontrola jakości (18)
Inspekcje Fagana
1. Omówienie (zespół) 500 niepotrzebne
2. Przygotowanie (indyw.) 100 125
3. Inspekcja (zespół) 130 150
4. Naprawa 50 60
5. Sprawdzenie - -
I1 I2
Prędkość (loc/h)
• Spotkanie inspekcyjne <= 2 godz• 1 - 2 spotkania na dzień
Inżynieria oprogramowania II
Kontrola jakości (19)
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
Mis
sing
Inżynieria oprogramowania II
Kontrola jakości (20)
Szacowanie liczby nie wykrytych defektów
Wstrzykiwanie defektów 2-krotne łowienie
Inżynieria oprogramowania II
Kontrola jakości (21)
Wstrzykiwanie defektów
1 Do artefaktu dodajemy n defektów.
...
kroku
Inżynieria oprogramowania II
Kontrola jakości (22)
Wstrzykiwanie defektów
1 Do artefaktu dodajemy n defektów.
2 Przekazujemy tak spreparowany artefakt do kontroli jakości.
...
kroku
Inżynieria oprogramowania II
Kontrola jakości (23)
Wstrzykiwanie defektów
1 Do artefaktu dodajemy n defektów.
2 Przekazujemy tak spreparowany artefakt do kontroli jakości.
3 Dostajemy raport. Wykryto m + k defektów:
k defektów przez nas dodanych, m defektów nowych.
Defekty:
1 óstawa
2 krokó
Inżynieria oprogramowania II
Kontrola jakości (24)
Wstrzykiwanie defektów
1 Do artefaktu dodajemy n defektów.
2 Przekazujemy tak spreparowany artefakt do kontroli jakości.
3 Dostajemy raport. Wykryto m + k defektów:
k defektów przez nas dodanych, m defektów nowych.
Liczba defektów m n / k
Defekty:
1 óstawa
2 krokó
Inżynieria oprogramowania II
Kontrola jakości (25)
Szacowanie liczby nie wykrytych defektów
Wstrzykiwanie defektów 2-krotne łowienie
Inżynieria oprogramowania II
Kontrola jakości (26)
2-krotne łowienie
Ile ryb jest w stawie?
Inżynieria oprogramowania II
Kontrola jakości (27)
2-krotne łowienie
1 Złap próbkę ryb
Inżynieria oprogramowania II
Kontrola jakości (28)
2-krotne łowienie
1 Złap próbkę ryb2 Oznacz je
Inżynieria oprogramowania II
Kontrola jakości (29)
2-krotne łowienie
1 Złap próbkę ryb2 Oznacz je3 Wypuść je
Inżynieria oprogramowania II
Kontrola jakości (30)
2-krotne łowienie
1 Złap próbkę ryb2 Oznacz je3 Wypuść je4 Złap jeszcze jedną grupę
Inżynieria oprogramowania II
Kontrola jakości (31)
2-krotne łowienie
1 Złap próbkę ryb2 Oznacz je3 Wypuść je4 Złap jeszcze jedną grupę5 Ile oznakowanych?
Inżynieria oprogramowania II
Kontrola jakości (32)
2-krotne łowienie
1 Złap próbkę ryb2 Oznacz je3 Wypuść je4 Złap jeszcze jedną grupę5 Ile oznakowanych?
Inżynieria oprogramowania II
Kontrola jakości (33)
2-krotne łowienie
1 Złap próbkę ryb2 Oznacz je3 Wypuść je4 Złap jeszcze jedną grupę5 Ile oznakowanych?
Total =20 * 30 / 5 =
120
Inżynieria oprogramowania II
Kontrola jakości (34)
2-krotne łowienie
A BC
Liczba defektów A * B / C
Artefakt
Inżynieria oprogramowania II
Kontrola jakości (35)
2-krotne łowienie
A BC
Liczba defektów A * B / CIf C = 0 ...
Artefakt
Inżynieria oprogramowania II
Kontrola jakości (36)
2-krotne łowienie
Więcej niż 2 recenzentów
A B
Znalazł najwięcej unikatowych defektów
Pozostali
Liczba defektów = A * B / C