Inżynieria oprogramowania II Kontrola jakości

Download Report

Transcript Inżynieria oprogramowania II Kontrola jakości

Inżynieria oprogramowania II
Kontrola jakości
Jerzy Nawrocki
[email protected]
 Kontrola jakości płytki krzemu w świetle zielonym
Inżynieria oprogramowania II
Jakość oprogramowania
Jakość = zgodność z wymaganiami
Philip Crosby (1926 – 2001)
Kontrola jakości (2)
Inżynieria oprogramowania II
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
Kontrola jakości (3)
Inżynieria oprogramowania II
Zasady skutecznego działania
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
Kontrola jakości (4)
Inżynieria oprogramowania II
Cztery filary zapewniania jakości
Jakość oprogramowania
Refaktoryzacja
Przeglądy
Testowanie
Zarz. konfiguracją
Kontrola jakości (5)
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ł
Kontrola jakości (6)
Inżynieria oprogramowania II
Cele testowania wg Glena Myersa (1979)
Testowanie :
wykonanie programu celem znalezienia błędu.
Udany test :
taki, który wykrywa jeszcze nie wykryty błąd.
Jakość przypadku testowego:
prawdopodob. znalezienia jeszcze nie wykrytego błędu.
Kontrola jakości (7)
Inżynieria oprogramowania II
Pracochłonność testowania
Testowanie: ~
% - 40
%
30
całkowitej pracochłonności.
Testowanie systemów krytycznych:
70% - 80% całkowitej pracochłonności (!)
Roger S. Pressman
Kontrola jakości (8)
Inżynieria oprogramowania II
Rodzaje testowania
Testy
Wykonanie
automat.
Dane
automat.
Dane ręczne
XP
Wykonanie
ręczne
Kontrola jakości (9)
Inżynieria oprogramowania II
Anomalia
Anomalia = Sytuacja różna od oczekiwanej, wynikającej
ze specyfikacji, standardów lub czyjegoś doświadczenia.
Normalne serce
Serce z anomalią Ebsteina
http://www.mayoclinic.org/ebsteins-anomaly/abnormalities.html
Kontrola jakości (10)
Inżynieria oprogramowania II
Przegląd
Artefakt
• 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.
Kontrola jakości (11)
Inżynieria oprogramowania II
Rola przeglądów
• Zapewnianie jakości
• Przekazywanie informacji
Kontrola jakości (12)
Inżynieria oprogramowania II
Inspekcje zgodne z IEEE 1028
Spotkanie
Kontrola jakości (13)
Inżynieria oprogramowania II
Inspekcje zgodne z IEEE 1028
Spotkanie
1. Omówienie (cały zespół)
2. Przygot. (indywidualnie)
3. Inspekcja (cały zespół)
• Pełna akceptacja
• Akceptacja warunkowa
• Powtórna inspekcja
Kontrola jakości (14)
Inżynieria oprogramowania II
Inspekcje zgodne z IEEE 1028
Spotkanie
1. Omówienie (cały zespół)
2. Przygot. (indywidualnie)
3. Inspekcja (cały zespół)
4. Naprawa
5. Sprawdzenie
Kontrola jakości (15)
Inżynieria oprogramowania II
Inspekcje Fagana
Projekt
Specyfikacje zewnętrzne (funkcje)
Specyfikacje wewnętrzne (moduł) - I0
Specyfikacje logiki przetw - I1 inspek projek
Kod
Kodowanie (logika) - I2 inspek kodu
Testowanie jednostkowe
Test
Cykl życia
Test funkcji (zewn.), składnika, systemu
Kontrola jakości (16)
Inżynieria oprogramowania II
Inspekcje Fagana
Design
I1
Code
I2
Unit
test
I3
Oszczędności (godz/KLOC):
I1: 94
I2 : 51
I3 : -20
Kontrola jakości (17)
Inżynieria oprogramowania II
Inspekcje Fagana
Prędkość (loc/h)
I1
1.
2.
3.
4.
5.
Omówienie (zespół)
Przygotowanie (indyw.)
Inspekcja (zespół)
Naprawa
Sprawdzenie
500
100
130
50
-
I2
niepotrzebne
125
150
60
-
• Spotkanie inspekcyjne <= 2 godz
• 1 - 2 spotkania na dzień
Kontrola jakości (18)
Inżynieria oprogramowania II
Inspekcje Fagana
Ex Wr
Missing
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
Kontrola jakości (19)
Inżynieria oprogramowania II
Szacowanie liczby nie wykrytych defektów
Wstrzykiwanie defektów
2-krotne łowienie
Kontrola jakości (20)
Inżynieria oprogramowania II
Wstrzykiwanie defektów
1 Do artefaktu dodajemy n
defektów.
Kontrola jakości (21)
Inżynieria oprogramowania II
Wstrzykiwanie defektów
1 Do artefaktu dodajemy n
defektów.
2 Przekazujemy tak spreparowany
artefakt do kontroli jakości.
Kontrola jakości (22)
Inżynieria oprogramowania II
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.
Kontrola jakości (23)
Inżynieria oprogramowania II
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
Kontrola jakości (24)
Inżynieria oprogramowania II
Szacowanie liczby nie wykrytych defektów
Wstrzykiwanie defektów
2-krotne łowienie
Kontrola jakości (25)
Inżynieria oprogramowania II
2-krotne łowienie
Ile ryb jest w
stawie?
Kontrola jakości (26)
Inżynieria oprogramowania II
2-krotne łowienie
1 Złap próbkę ryb
Kontrola jakości (27)
Inżynieria oprogramowania II
2-krotne łowienie
1 Złap próbkę ryb
2 Oznacz je
Kontrola jakości (28)
Inżynieria oprogramowania II
2-krotne łowienie
1 Złap próbkę ryb
2 Oznacz je
3 Wypuść je
Kontrola jakości (29)
Inżynieria oprogramowania II
2-krotne łowienie
1 Złap próbkę ryb
2 Oznacz je
3 Wypuść je
4 Złap jeszcze jedną grupę
Kontrola jakości (30)
Inżynieria oprogramowania II
2-krotne łowienie
1 Złap próbkę ryb
2 Oznacz je
3 Wypuść je
4 Złap jeszcze jedną grupę
5 Ile oznakowanych?
Kontrola jakości (31)
Inżynieria oprogramowania II
2-krotne łowienie
1 Złap próbkę ryb
2 Oznacz je
3 Wypuść je
4 Złap jeszcze jedną grupę
5 Ile oznakowanych?
Kontrola jakości (32)
Inżynieria oprogramowania II
2-krotne łowienie
Total =
20 * 30 / 5 =
120
1 Złap próbkę ryb
2 Oznacz je
3 Wypuść je
4 Złap jeszcze jedną grupę
5 Ile oznakowanych?
Kontrola jakości (33)
Inżynieria oprogramowania II
2-krotne łowienie
Artefakt
A
C
B
Liczba defektów  A * B / C
Kontrola jakości (34)
Inżynieria oprogramowania II
2-krotne łowienie
Artefakt
A
C
B
Liczba defektów  A * B / C
If C = 0 ...
Kontrola jakości (35)
Inżynieria oprogramowania II
2-krotne łowienie
Więcej niż 2 recenzentów
B
A
Znalazł najwięcej
unikatowych defektów
Pozostali
Liczba defektów = A * B / C
Kontrola jakości (36)