Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Inżynieria Oprogramowania 8. Weryfikacja i zatwierdzanie Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW www.lchmiel.pl.

Podobne prezentacje


Prezentacja na temat: "Inżynieria Oprogramowania 8. Weryfikacja i zatwierdzanie Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW www.lchmiel.pl."— Zapis prezentacji:

1 Inżynieria Oprogramowania 8. Weryfikacja i zatwierdzanie Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW

2 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 2/24 Źródła Materiały dra Waldemara Karwowskiego, wykładowcy w poprzednich semestrach Ian Sommerville, Inżynieria Oprogramowania, WNT, Warszawa 2003

3 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 3/24 Plan Wstęp Treść Podsumowanie

4 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 4/24 Informacje wstępne Zatwierdzanie: Czy budujemy odpowiedni produkt? czy produkt odpowiada oczekiwaniom klienta: czy robi to, czego się oczekuje działanie ogólne Weryfikacja: Czy odpowiednio budujemy produkt? czy budujemy zgodnie ze specyfikacją: wymagania! działanie bardziej szczegółowe Mają miejsce w całym procesie tworzenia oprogramowania

5 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 5/24 Dwie możliwe metody W i Z Kontrole (inspekcje) oprogramowania analiza i sprawdzenie reprezentacji systemu: wymagania, diagramy, kod,... można częściowo realizować automatycznie to metoda statyczna system nie musi istnieć Testowanie oprogramowania uruchomienie implementacji dane testowe badanie wyników badanie zachowania to metoda dynamiczna system musi działać

6 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 6/24 Dwie możliwe metody... Kontrole to: kontrole oczne programów automatyczna analiza kodu źródłowego analiza formalna nie można stwierdzić efektywności, niezawodności Testowanie: zawsze jest potrzebne, w jakimś zakresie obecnie nadal dominuje choć jest droższe i zawodne

7 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 7/24 Dwa rodzaje testów Testowanie defektów aby znaleźć niezgodność ze specyfikacją testy przygotowane ze względu na wykrycie usterek, a nie symulację działania specjalne dane, np. rzadkie, skrajne Testowanie statystyczne aby zbadać efektywność i niezawodność, działanie w normalnych warunkach testy przygotowane tak, aby odzwierciedlały prawdziwe dane i ich częstotliwość mierzymy czas, liczymy awarie,...

8 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 8/24 Poziom zaufania do oprogramowania Funkcja oprogramowania jak bardzo krytyczny? Oczekiwania użytkowników akceptują (niestety) awarie pod warunkiem wyższości korzyści nad wadami jednak, tolerancja na wady maleje od 90 Środowisko rynkowe konkurencja cena czas

9 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 9/24 Usuwanie błędów Ustalanie obecności defektów usuwanie defektów Wyniki testówSpecyfikacja Przypadki testowe Zlokalizuj błąd Zaprojektuj sposób naprawy Napraw błąd Ponownie testuj program Nie znaleziono błędu Umiejętność złożona wiedza o dziedzinie, języku, dobór danych,... powtarzanie awarii, śledzenie wykonania usterka często daleko od miejsca awarii naprawy są niepełne, usunięcie jednej usterki ujawnia inne,...

10 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 10/24 Testowanie regresywne Ponieważ usunięcie jednej usterki często ujawnia inne, należałoby po każdej naprawie powtarzać wszystkie testy Jest to testowanie regresywne W praktyce zbyt kosztowne w 100% Znając zależności między komponentami, można po naprawie testować tylko komponent poprawiony i zależne od niego

11 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 11/24 W dużych systemach W&Z pochłania do 50% koszów – warto dobrze planować Planowanie: równowaga: statyczne dynamiczne standardy, procedury kontroli, listy kontrolne plany testów Planowanie: ustalanie standardów, a nie opisy testów są to dokumenty dla managerów i inżynierów Planowanie W&Z Im bardziej krytyczny system, tym więcej tego testowania

12 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 12/24 Elementy planu Proces testowania: Fazy Wymagania: Każde testujemy oddzielnie Testowane byty: Co testujemy Harmonogram: Czas, zasoby, ludzie Procedury zapisu wyników Sprzęt i oprogramowanie Ograniczenia: Zasoby krytyczne

13 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 13/24 Struktura procesu: model V Specyfikacja wymagań Specyfikacja systemu Projekt systemu Projekt szczegółowy Test akceptacyjny Plan testów akceptacyjnych Plan testów integracji systemu Plan testów integracji podsystemu Testy modułów i jednostek Test integracji systemu Test integracji podsystemu Działanie Plan testów jest dokumentem dynamicznym zmienia się wraz z rozwojem systemu osobom mające testować niegotowe elementy przydziela się inne zadania

14 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 14/24 Kontrole statyczne są efektywne Kontrole nieformalne: >60% błędów Kontrole ścisłe, formalne: 90% błędów Testuje się także atrybuty nieformalne: standardy, przenośność, zdatność do pielęgnacji Jedna sesja kontroli – wykrycie wielu błędów w dynamicznym – zazwyczaj jednego Recenzenci znają typowe błędy

15 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 15/24 Kontrole – przykład kontroli programu (Nie tylko programy można kontrolować) Pierwsze sformalizowane kontrole: IBM 70 Podstawowa literatura: M.E. Fagan, 76, 86; dalszy rozwój metodologii

16 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 16/24 Kontrole – Zespół kontrolny osób – role uczestników mogą się pokrywać autor (właściciel) – usunie defekty kontroler – znajduje błędy, pominięcia, niespójności; również szersze zagadnienia pisarz – notuje rezultaty spotkania kontrolnego moderator – zarządza i ułatwia kontrolę naczelny moderator – odpowiada za proces, aktualizuje listy kontrolne, opracowuje standardy,... (czytelnik – głośno interpretuje kod)

17 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 17/24 Przed kontrolą upewnij się, że... 1.Istnieje precyzyjna specyfikacja kodu 2.Członkowie zespołu znają standardy firmowe 3.Mamy poprawną składniowo wersję kodu Uwaga: współczesne kompilatory wykonują kontrolę automatyczną na poziomie odpowiadającym temu, jaki w latach 90 wykonywały specjalne narzędzia (lint dla języka C, Unix) nie zaleca się wyłączać ostrzeżeń kompilatora (a już z pewnością nie błędów) poprawność składniowa mniej błędów

18 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 18/24 Podczas kontroli... Przygotowania spotkanie przygotowuje moderator, odpowiada za wybór osób, przygotowanie materiałów, miejsca Faza przeglądu autor kodu objaśnia, co program ma robić Indywidualne przygotowania członkowie studiują specyfikację i kod, szukają błędów Spotkanie kontrolne przedstawienie defektów – nie inne rozmowy Powtórne prace autor usuwa defekty Uzupełnienie moderator decyduje, czy powtórzyć kontrolę; jeśli nie, to aprobuje dokument do publikacji

19 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 19/24 Zalecenia Podstawą procesu jest lista kontrolna częstych błędów programistów, przygotowana z udziałem doświadczonego personelu, aktualizowana Osobne listy dla różnych języków Firmy robią własne listy

20 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 20/24 Przykładowa lista kontrolna Usterki danych inicjacja zmiennych, stałe nazwane, rozmiary tablic (n-1?), możliwość przepełnienia buforów Usterki sterowania warunki, zakończenia pętli, nawiasy instrukcji złożonych, zupełność instrukcji wyboru, break; Usterki we-wy czy wszystkie dane są używane, czy każdy wynik ma przypisaną wartość, nieoczekiwane dane wejściowe Usterki interfejsu zgodność wywołań funkcji: liczba, typy, kolejność parametrów, organizacja pamięci dzielonej Usterki zarządzania pamięcią zgodność wiązań podczas zmian w strukturach wskaźnikowych, poprawność przydzielania pamięci, poprawność i zgodność zwalniania pamięci Usterki obsługi wyjątków obsługa wszystkich możliwych wyjątków

21 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 21/24 Wydajność kontroli Faza przeglądu 500 w/h Indywidualne przygotowania (1-2 h) 125 w/h Spotkanie (do 2 h) w/h Jednorazowo na kontrolę do 2 h – potem spadek wydajności Koszt kontroli ? 0.5 kosztu testowania (zależnie od liczby usterek)

22 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 22/24 Metoda Cleanroom Warunki ścisła specyfikacja formalna znany profil działania Metoda polega na tworzeniu przyrostowym (prawie) bez defektów, dzięki elementom: wymagania po wyspecyfikowaniu zamraża się ściśle strukturalne programowanie, które jest formalnym przekształcaniem specyfikacji w kod, z uzasadnieniem poprawności ścisła weryfikacja formalna każdego przyrostu – nie ma testowania modułów statystyczne testowanie zintegrowanych przyrostów, na podstawie profilu działania Bardzo mała liczba błędów Koszty porównywalne z kosztami innych metod Bardzo duże wymagania względem zespołów

23 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 23/24 Organizacja i czynniki międzyludzkie Jeśli menedżerowie są wrażliwi na zagadnienie, firmy rezygnują z dużej części testów Kontrole są bardziej publiczne, niż prywatne przeglądy menedżerowie muszą zapewnić jasny podział między wynikami kontroli a awansem wyniki kontroli nigdy nie mogą służyć do oceny inżynierów moderatorzy zespołów muszą być dobrze przeszkoleni w zarządzaniu procesem i tworzeniu kultury kontroli po wykryciu błędów należy oferować wsparcie, nie oskarżać w związku z wykrytymi błędami

24 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 24/24 Podsumowanie Weryfikacja: program spełnia specyfikację Zatwierdzanie: program spełnia oczekiwania Plany testowania: opis testowanych bytów, harmonogram, procedury, zasoby, ograniczenia Weryfikacja statyczna: analiza kodu, stosowana jest razem z testowaniem Kontrole to skuteczna metoda; podstawa: kontrolna lista usterek Kod jest systematyczne sprawdzany przez niewielki zespół: moderator, autor, tester, (czytelnik) Nie wyłączaj ostrzeżeń i błędów kompilatora Konieczne jest budowanie kultury kontroli kodu Dla kodu krytycznego rozważ metodę Cleanroom

25 Inżynieria oprogramowania 8. Weryfikacja i zatwierdzanie 25/24 Dziękuję


Pobierz ppt "Inżynieria Oprogramowania 8. Weryfikacja i zatwierdzanie Leszek J Chmielewski Wydział Zastosowań Informatyki i Matematyki SGGW www.lchmiel.pl."

Podobne prezentacje


Reklamy Google