Inżynieria Oprogramowania 8. Weryfikacja i zatwierdzanie

Slides:



Advertisements
Podobne prezentacje
Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 2
Advertisements

Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Role w zespole projektowym
Testowanie oprogramowania
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 1
Inżynieria Oprogramowania 0. Informacje o zajęciach
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Inżynieria Oprogramowania 6. Projektowanie architektoniczne
Wydział Zastosowań Informatyki i Matematyki SGGW
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Restrukturyzacja oprogramowania l Reorganizowanie i modyfikowanie istniejącego.
Wyszukiwanie błędów Testowanie programów w celu wyszukania błędów.
SOS SYSTEM OBSŁUGI SZKOŁY
Projektowanie Aplikacji Komputerowych
Propozycja metodyki nauczania inżynierii oprogramowania
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Analiza i walidacja wymagań
Cykle życia oprogramowania
Jarosław Kuchta Jakość Systemów Informatycznych
Proces tworzenia oprogramowania
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Dalsze elementy metodologii projektowania. Naszym celem jest...
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 7 Projektowanie kodu oprogramowania
Wykład 2 Cykl życia systemu informacyjnego
Psychologiczne aspekty pracy testera oprogramowania
C.d. wstępu do tematyki RUP
© Victo Testowanie dla menedżerów Wersja TDM Slajd 1 (27) Testowanie oprogramowania dla menedżerów Co menedżerowie i kierownicy naprawdę potrzebują
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Adam Gabryś , v1.1,
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
WebQuest wykonane w ramach projektu BelferOnLine
Microsoft Solution Framework
Zarządzanie jakością projektu
Maszyna wirtualna ang. virtual machine, VM.
Systemy zapewnienia jakości
Podstawy informatyki 2013/2014
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Program Operacyjny Kapitał Ludzki
TESTOWANIE OPROGRAMOWANIA
Proces tworzenia oprogramowania
Podstawy programowania
Algorytmika.
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 – 321 Bydgoszcz
Ewaluacja konferencja 11 czerwca 2014 RODN „WOM” w Katowicach.
PROCESY W SYSTEMACH SYSTEMY I PROCESY.
Waterfall model.
Zarządzanie zagrożeniami
System Zarządzania Bazą Danych
Zarządzanie projektami informatycznymi
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Temat 6: Dokumentacja techniczna urządzeń sieciowych.
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 19Slide 1 Weryfikacja i zatwierdzanie l Przedstawienie weryfikacji i zatwierdzania oprogramowania.
Eksploatacja zasobów informatycznych przedsiębiorstwa.
1 1 / 15 Techniki lokalizacji oprogramowania – wykład 7 Wykład 7: Testowanie projektów lokalizacyjnych dr inż. Agenor Hofmann-Delbor.
Moduł e-Kontroli Grzegorz Dziurla.
Wstęp do programowania Wykład 1
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104.
Zarządzanie projektami informatycznymi
Weryfikacja i zatwierdzanie
Inżynieria Oprogramowania Laboratorium
IV Konferencja Naukowo-Techniczna "Nowoczesne technologie w projektowaniu, budowie.
[Nazwa projektu] Analiza zamknięcia
Cykl życia oprogramowania
Zapis prezentacji:

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

Źródła Materiały dra Waldemara Karwowskiego, wykładowcy w poprzednich semestrach Ian Sommerville, Inżynieria Oprogramowania, WNT, Warszawa 2003

Plan Wstęp Treść  Podsumowanie

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

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ć

Dwie możliwe metody ... Kontrole to: Testowanie: 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

Dwa rodzaje testów Testowanie defektów Testowanie statystyczne 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, ...

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

Usuwanie błędów Ustalanie obecności defektów  usuwanie defektów Wyniki testów Specyfikacja 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, ...

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

Im bardziej krytyczny system, tym więcej tego testowania Planowanie W&Z 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 ustalanie standardów, a nie opisy testów są to dokumenty dla managerów i inżynierów Im bardziej krytyczny system, tym więcej tego testowania

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

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

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

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

Kontrole – Zespół kontrolny ..-4-6-.. 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)

Przed kontrolą upewnij się, że... Istnieje precyzyjna specyfikacja kodu Członkowie zespołu znają standardy firmowe 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

Podczas kontroli... Przygotowania Faza przeglądu 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

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

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

Wydajność kontroli Faza przeglądu Indywidualne przygotowania (1-2 h) 500 w/h Indywidualne przygotowania (1-2 h) 125 w/h Spotkanie (do 2 h) 90-125 w/h Jednorazowo na kontrolę do 2 h – potem spadek wydajności Koszt kontroli ? 0.5 kosztu testowania (zależnie od liczby usterek)

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

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

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

Dziękuję