audyt_i_inspekcja_w_projekcie_informatycznym

# Audyt i inspekcja w projekcie informatycznym

Inspekcja obejmuje swoim zakresem różne metody wykrywania defektów w dokumentach. Należy ją zaliczyć do grupy metod analizy statycznej. Cechą inspekcji jest wykorzystanie spostrzegawczości i zdolności analitycznych człowieka. Inspekcje dotyczą dowolnej dokumentacji, na którą składa się kolekcja dokumentów obejmująca:

- Plany projektu,
- Specyfikację wymagań,
- Dokumentację projektową,
- Implementację,
- Dokumentację testów,
- Dokumentację użytkownika,
- Kod źródłowy.

Ze względu na swą wysoką efektywność i uniwersalność inspekcja należy do najważniejszych metod zapewnienia jakości. Według standardu IEEE inspekcja to: formalna technika oceny, w ramach, której wymagania dotyczące oprogramowania, projektu lub kodu są poddane badaniu przez osobę lub grupę osób innych niż ich autor, w celu wykrycia błędów, odstępstw od standardów wytwarzania i innych problemów.

Do doraźnych celów inspekcji zaliczyć można:

- wykrywanie i identyfikację defektów w produktach procesów wytwarzania oprogramowania,
- usunięcie tych defektów,
- formalne potwierdzenie jakości produktów.

Cele strategiczne inspekcji obejmują:

- doskonalenie procesu wytwarzania oprogramowania w oparciu o wyniki analizy przyczyn znalezionych defektów,
- obniżenie kosztów wytwarzania,
- zwiększenie jakości produktu,
- doskonalenie samego procesu inspekcji.

Inspekcja to złożone przedsięwzięcie organizacyjne, obejmujące szereg kroków prowadzonych w oparciu o zdefiniowane procedury i dokumenty pomocnicze, z udziałem zespołu kompetentnych specjalistów o jawnie przydzielonych rolach. Najczęściej przeprowadzana jest w końcowych fazach kolejnych etapów procesu wytwarzania. Proces inspekcji rozpoczyna się w chwili zgłoszenia na nią zapotrzebowania (faza inicjalizacji). Lider inspekcji sprawdza czy zgłoszony dokument oraz inne dokumenty źródłowe, na podstawie, których powstał badany dokument, spełniają określone kryteria wejścia (faza wejścia). Kolejna faza – planowanie, obejmuje prace przygotowawcze (ustalenie spotkań kontrolnych, wyznaczenie uczestników, przygotowanie harmonogramu prac). Spotkanie inicjujące wyjaśnia uczestnikom inspekcji jej cele. Pozwala na dystrybucję materiałów i przydział ról. Kontrola indywidualna produktu wykonywana jest osobno przez każdego z kontrolerów. W oparciu o dokumenty źródłowe, procedury kontroli i reguły wytwarzania produktu. Głównym celem pracy kontrolera jest znalezienie jak największej liczby defektów. Po zakończeniu kontroli indywidualnej odbywa się spotkanie kontrolne, na którym następuje udokumentowanie zagadnień wykrytych podczas kontroli, nowych zagadnień oraz sugestii poprawy procesu inspekcji. Kolejny krok – redakcja, ma na celu rozwiązanie problemów udokumentowanych w trakcie spotkań kontrolnych. Etap kontynuacji obejmuje szereg działań lidera inspekcji, takich jak sprawdzenie wyników fazy redakcji. Faza wyjścia – to formalne zatwierdzenie przez lidera wyników inspekcji, w odniesieniu do kryteriów wyjścia. Po zakończeniu tego kroku dokument zostanie oficjalnie udostępniony do dalszego wykorzystania z podaniem szacunkowej liczby pozostałych w nim defektów.

W przypadku inspekcji interesujące są metryki związane z: pracochłonnością, wydajnością, efektywnością czy skutecznością. Np. większe tempo inspekcji prowadzi do zmniejszenia kosztów (poprawa pracochłonności), ale jednocześnie powoduje pozostawienie w produkcie większej liczby defektów (zmniejszenie skuteczności). Dzięki stosowania inspekcji we wszystkich fazach wytwarzania, większość defektów jest usuwana systematycznie.

Cechy inspekcji:

- zaplanowane i przygotowane sesje,
- dokumentacja błędów i problemów,
- wykonywana dla techników przez techników,
- dane nie są wykorzystywane do oceny pracowników.

Korzyści w odniesieniu do całego procesu wytwarzania oprogramowania wynikające z zastosowania inspekcji:

- wzrost produktywności 0 30% - 100 %,
- skrócenie czasu wytwarzania o 10% - 30%,
- 5–10 – krotna redukcja czasu i kosztu testowania,
- redukcja kosztów pielęgnacji o rząd wielkości,
- nieomal „automatyczna” poprawa jakości procesu i produktu,
- eliminacja poślizgów czasowych w dostarczaniu produktów.

Zagrożenia inspekcji:

- ocena osób na podstawie zebranych metryk,
- źle prowadzona daje małą efektywność,
- słabi kontrolerzy,
- skłonność autora do lekceważenia defektów na etapie opracowywania dokumentów.

Rodzaje inspekcji

##### Przegląd

Istotą przeglądu jest przejrzenie treści dokumentu zgodnie z jego logicznym uporządkowaniem. Liczba uczestników przeglądu wynosi co najmniej dwa. Autor prezentuje dokument uczestnikom spotkania. Uczestnicy spotkania mogą brać w nim udział bierny (wysłuchanie wykładu) lub udział aktywny (zgłaszanie uwag na bieżąco). Przeglądy są stosowane do dowolnej dokumentacji, także do kodu źródłowego. Inspekcje są bardziej sformalizowane niż przeglądy i najczęściej uczestniczą w nich osoby spoza danej grupy (eksperci zewnętrzni). Przeglądy oprogramowania mogą mieć postać: przeglądów technicznych, przejść, czy audytów.

Jedną z podstawowych form kontroli jest przegląd techniczny, ukierunkowany na ocenę innych dokumentów niż kod źródłowy pod kątem ich zgodności z celami projektu, wartości technicznej i zgodności z przyjętymi standardami. Przegląd taki może być nieformalny lub formalny, w zależności od tego, czy jego wynikiem jest oficjalny raport dołączony do dokumentów związanych z projektem. Przeglądy stanowią środek umożliwiający kontrolę postępu projektu i odgrywają ważną rolę w zapewnieniu jakości oprogramowania.

##### Recenzje

Odnoszą się do sytuacji, w której kontroler dokonuje indywidualnej oceny całego dokumentu i przedstawia wnioski na piśmie (eliminacja spotkania kontrolnego).

##### Przejście

Polega na ocenie dokumentów, modelu, projektu lub kodu celem zdefiniowania defektów i rozważenia możliwych rozwiązań. Celem wtórnym jest szkolenie i rozwiązywanie problemów stylistycznych.

##### Audyt

Przeprowadzany jest pod kątem spełnienia wybranego standardu. Dokonuje go osoba lub zespół upoważniony do nadania certyfikatu zgodności produktu z konkretną normą, standardem lub przepisami prawa. Audyt jest najczęściej stosowany do produktów dojrzałych celem sprawdzenia ich zgodności z dokumentacją i procedurami prawnymi regulującymi ich stosowanie w praktyce lub ustaleniami zawartymi w umowach cywilnoprawnych. Powinien być przeprowadzany przez odpowiednią organizację, jak np. Polskie Stowarzyszenie Audytu lub przez osoby posiadające licencje/uprawnienia audytorów.

Aspekty audytu:

- analiza stanu projektu,
- analiza celowości,
- analiza procesu wytwórczego,
- analiza dowolnego procesu,
- analiza systemu jakości,
- analiza stosowania systemu jakości.

Ze względu na relacje odbiorca-dostawca wyróżniamy:

- audyt wewnętrzny,
- audyt zewnętrzny,
- audyt trzeciej strony.

Etapy:

- planowanie i przygotowanie,
- raportowanie,
- zamknięcie.