Niezawodno± oprogramowania

Podobne dokumenty
Praca Dyplomowa Magisterska

YapS Plan testów. Šukasz Bieniasz-Krzywiec Dariusz Leniowski Jakub Š cki 29 maja 2007

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Analiza wydajno±ci serwera openldap

Chess. Joanna Iwaniuk. 9 marca 2010

Spis tre±ci. 1 Wst p Zawarto± rozdziaªów Projekt LoXiM... 2

1. Wprowadzenie do C/C++

przewidywania zapotrzebowania na moc elektryczn

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

x y x y x y x + y x y

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Metody numeryczne i statystyka dla in»ynierów

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

O autorze... 9 Wprowadzenie... 11

Standardy testowania oprogramowania. Iwona Kocha«ska. January 15, 2016

1. Wprowadzenie do C/C++

Ekonometria. wiczenia 2 Werykacja modelu liniowego. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

1 Bª dy i arytmetyka zmiennopozycyjna

Testowanie oprogramowania. Testowanie oprogramowania 1/34

EGZAMIN MATURALNY 2011 J ZYK ANGIELSKI

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Listy i operacje pytania

Algorytmy zwiazane z gramatykami bezkontekstowymi

Lekcja 9 Liczby losowe, zmienne, staªe

Programowanie wspóªbie»ne

Ukªady równa«liniowych

Programowanie i struktury danych 1 / 44

API transakcyjne BitMarket.pl

Lab. 02: Algorytm Schrage

EMC FORUM Transformacja funkcjonowania systemu backupu dzięki zastosowaniu EMC Avamar i Data Domain

Programowanie funkcyjne. Wykªad 13

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

POLITECHNIKA WROCŠAWSKA WYDZIAŠ ELEKTRONIKI PRACA DYPLOMOWA MAGISTERSKA

EGZAMIN MATURALNY 2013 J ZYK ROSYJSKI

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Testowanie oprogramowania. Piotr Ciskowski

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Macierze i Wyznaczniki

Spis tre±ci. Przedmowa... Cz ± I

Programowanie Zespołowe

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Uniwersytet Rzeszowski

1 Stos: Stack i Stack<T>

ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:

Wojewódzki Konkurs Matematyczny

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Przetwarzanie sygnaªów

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

EGZAMIN MATURALNY 2013 J ZYK ANGIELSKI

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie

Macierze i Wyznaczniki

Komentarz technik ochrony fizycznej osób i mienia 515[01]-01 Czerwiec 2009

Optyka geometryczna. Soczewki. Marcin S. Ma kowicz. rok szk. 2009/2010. Zespóª Szkóª Ponadgimnazjalnych Nr 2 w Brzesku

System kontroli wersji SVN

Bazy danych. Andrzej Łachwa, UJ, /15

Systemy mikroprocesorowe - projekt

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Programowanie wspóªbie»ne

Dokumentacja i systemy jako±ci

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Wykªad 6: Model logitowy

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

Bazy danych, 4. wiczenia

Szukanie najkrótszych dróg z jednym ródłem

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Archiwum Prac Dyplomowych

Rozwi zania klasycznych problemów w Rendezvous

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

Weryfikacja i walidacja. Metody testowania systemów informatycznych

Zastosowania matematyki

Elementy cyfrowe i układy logiczne

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Model obiektu w JavaScript

MiASI. Modelowanie integracji systemów. Piotr Fulma«ski. 26 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Systemy wbudowane Mikrokontrolery

Statystyka opisowa. Wykªad II. Elementy statystyki opisowej. Edward Kozªowski.

Proces certyfikacji ISO 9001:2015. Wydanie normy ISO 9001:2015 dotyczące systemów zarządzania jakością obowiązuje od 15 września 2015 roku.

Jakość w procesie wytwarzania oprogramowania

Przedmiotowe Zasady Oceniania

Uczenie Wielowarstwowych Sieci Neuronów o

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Transkrypt:

Niezawodno± oprogramowania Przemysªaw Wesoªek Instytut Informatyki 24 sty 2010 MiASI @ TWO-SUM

Spis tre±ci 1 Wst p 2 Architektura 3 Testy statyczne Inspekcja kodu 4 Testy dynamiczne Testy jednostkowe MS Zune case study 5 Unikanie bª dów

Denicja wg ANSI software reliability the probability of failure-free software operation for a specied period of time in a specied environment Standard Glossary of Software Engineering Terminology, STD-729-1991, ANSI/IEEE, 1991

J zyk polski niezawodny 1. taki, na którym zawsze mo»na polega 2. dobrze funkcjonuj cy Sªownik J zyka Polskiego, http://sjp.pwn.pl

J zyk polski niezawodny 1. taki, na którym zawsze mo»na polega 2. dobrze funkcjonuj cy Sªownik J zyka Polskiego, http://sjp.pwn.pl Czyli: taki, który nas nie zawiedzie

System, które nas nie zawiedzie jakie s nasze oczekiwania? czy wyrazili±my je wcze±niej (specykacja) realistyczno± wymaga«wymagania pozafunkcjonalne, np. wydajno±

Software vs. hardware system = software + hardware ró»na zmiana niezawodno±ci w czasie hardware software

Specyka oprogramowania przyczyna bª du: gªównie defekt w projekcie oprogramowanie si nie zu»ywa okresowe restarty pomagaj unikn bª dów niezawodno± nie jest funkcj czasu dziaªania czynniki ±rodowiskowe nie maj wpªywu u»ycie wielu kopii nie podnosi niezawodno±ci Keene, S. J., Comparing Hardware and Software Reliability, Reliability Review, 14(4), December 1994, pp. 5-7, 21

Jak mo»na zawie± nie dziaªa bª dna implementacja dziaªa niepoprawnie bª dna implementacja robi co innego ni» powinien specykacja! nie daje odpowiedzi nie wiemy czy dziaªa; bª dna implementacja, za niska wydajno±

Sposoby podnoszenia niezawodno±ci specykowanie wymaga«odpowiednia architektura stosowanie gotowych komponentów dowodzenie poprawno±ci unikanie bª dów testowanie odporno± na bª dy

Znaczenie architektury dziaªanie na poziomie wy»szym ni» oprogramowanie odpowiednia architektura zwi ksza niezawodno± serwer zapasowy sie serwerów

Przykªad rozproszenia: DNS 1 jest@idss-pw:~$ host google.com 2 3 google.com has address 209.85.171.100 4 google.com has address 72.14.205.100 5 google.com has address 74.125.45.100 6 google.com mail is handled by 10 smtp1.google.com. 7 google.com mail is handled by 10 smtp2.google.com. 8 google.com mail is handled by 10 smtp3.google.com. 9 google.com mail is handled by 10 smtp4.google.com.

Rodzaje testów statycznych nie wymagaj uruchamiania programu formalne: dowody poprawno±ci programy analizuj ce (np. data-ow analysis) przegl dy kodu

FindBugs

FindBugs

Cechy inspekcji kodu szybko± ok. 150-200 linii kodu na godzin bardzo efektywna forma testowania wymaga przygotowa«, zespoªu oraz umiej tno±ci czytania kodu

Metody czytania kodu na» danie (as-needed) systematyczna (systematic) kierowana poziomem abstrakcji (abstract-driven) z u»yciem list kontrolnych (checklist)

Metoda systematyczna wybór punktu (lub punktów) startowego analiza w gª b wykonywanie kodu odnotowywanie kontekstu wywoªa«za dokªadne przejrzenie kodu analiza wszystkich zale»no±ci Przeciw du»e skomplikowanie nieznany rozmiar przegl danego kodu

Metoda na» danie wybór zakresu kodu (np. lista klas) analiza kodu, bez wchodzenia do wywoªywanych metod zaªo»enie o poprawno±ci wywoªywanych metod Za przewidywalny rozmiar przegl danego kodu l»ejsza analiza zale»no±ci Przeciw brak nabywania wiedzy o zale»no±ciach w kodzie mo»liwa dezorientacja wywoªaniami nieznanych metod

Metoda kierowana poziomem abstrakcji wybór zakresu kodu (np. lista klas) uporz dkowanie elementów kodu w kolejno±ci od najmniej zale»nego od innych analiza kodu i powi za«na poziomie samych klas analiza kodu na poziomie metod, bez wchodzenia do wywoªywanych metod Za przewidywalny rozmiar przegl danego kodu l»ejsza analiza zale»no±ci Przeciw nakªad czasu zwi zany z organizacj przegl du

Metoda list kontrolnych przegl danie kodu pod k tem wyst pienia konkretnych bª dów odnotowywanie zgodno±ci ka»dej z klas z zaleceniami Za metoda mechaniczna nie wymaga du»ych umiej tno±ci czytania kodu Przeciw brak pozyskiwania wiedzy o zale»no±ciach w kodzie mo»liwo± pomini cia bardziej zaawansowanych bª dów

Przykªad listy kontrolnej bª d zakresu bª dne operacje na zmiennych dynamicznych bª d w wyra»eniu arytmetycznym nie zainicjowane zmienne niezgodno± typów, bª dna konwersja nie uwzgl dnione sytuacje wyj tkowe bª d algorytmiczny

Formalny przegl d 36 osób wst pne przygotowanie: 12 godzin na osob czas trwania: ok. 2 godziny uczestnicy: autor, moderator, recenzenci, sekretarz prezentacja autora decyzja: akceptacja, zwrot do maªych poprawek, zwrot do du»ych poprawek

Przegl dy nieformalne indywidualny przegl d kodu (cudzego lub wªasnego) zespóª QA, na» danie (np. di z repozytorium) praca parami (np. Extreme Programming)

Testy dynamiczne wymagaj uruchomienia programu wiele rodzajów testy akceptacyjne testy jednostkowe testy integracyjne testy GUI testy wydajno±ciowe

Testy akceptacyjne rodzaj testów funkcjonalnych typu black-box (nie wymagaj znajomo±ci kodu) maj na celu akceptacj produktu przez klienta opieraj si na zgodno±ci ze specykacj ªatwo testowalna specykacja dodatkowym plusem wiele wariantów, np. testy beta pojedynczy test opisuje jeden spójny element funkcjonalno±ci

Testy jednostkowe typu black-box albo white-box (strukturalne, wymagaj znajomo±ci kodu) sprawdzaj poprawno± maªych fragmentów kodu, najcz ±ciej metod test = porównanie wyniku dziaªania dla danych testowych z wynikiem wzorcowym ich gªówna siªa polega na testowaniu regresyjnym

Testy integracyjne sprawdzaj poprawno± wi kszych elementów, np. wielu zintegrowanych moduªów znacznie bardziej skomplikowane w skongurowaniu od testów jednostkowych podobne w realizacji do testów jednostkowych, równie» uruchamiane regresyjnie

Testy GUI cz sto element testów akceptacyjnych trudne w automatyzacji du»e pole badawcze w ostatnim okresie Przykªad: Selenium

Testy wydajno±ciowe sprawdzaj speªnienie wymaga«pozafunkcjonalnych wi cej na (wcze±niejszym?) wykªadzie dr. Weissa (?)

Schemat dziaªania dla ka»dej klasy piszemy klas testuj c ka»da metoda klasy testuj cej to jeden test test polega na wywoªaniu metody klasy testowanej dla konkretnych danych i porównaniu otrzymanego wyniku z przewidywanym odpowied¹ jest binarna: test przeszedª lub nie przeszedª gªówny problem i sztuka to konstrukcja danych testowych

Metoda black-box dane testowe dobierane w oparciu o specykacj w przypadku testów jednostkowych: API oraz dokumentacja techniczna metody podziaª danych wej±ciowych na klasy, dla których metoda dziaªa tak samo (ale czy na pewno?) testy dla kilku przypadków z ka»dej klasy testy dla przypadków granicznych testy dla warto±ci nieprawidªowych czy metoda poprawnie rzuca wyj tki

Metoda black-box przykªad Zamówienia o warto±ci powy»ej 10 tys. zª realizowane s w trybie przetargu. Zamówienia na ni»sz kwot realizowane s w trybie zapytania ofertowego. zamówienie poni»ej 10 tys. zª zamówienie o warto±ci 10 tys. zª zamówienie o warto±ci powy»ej 10 tys. zª

Metoda black-box przykªad, c.d. [... ] Sprz t komputerowy jest kupowany zawsze w trybie przetargu. sprz t komputerowy, warto± poni»ej 10 tys. zª sprz t komputerowy, warto± dokªadnie 10 tys. zª sprz t komputerowy, warto± powy»ej 10 tys. zª inne zakupy, warto± poni»ej 10 tys. zª inne zakupy, warto± dokªadnie 10 tys. zª inne zakupy, warto± powy»ej 10 tys. zª

Metoda white-box dane testowe dobrane w oparciu o struktur w przypadku testów jednostkowych: struktur kodu istotne jest jak najwi ksze pokrycie kodu testami kilka kryteriów pokrycia wszystkie instrukcje wszystkie instrukcje warunkowe wszystkie warunki elementarne wszystkie ±cie»ki w programie kryteria mo»na ª czy

Kryterium wszystkich instrukcji przykªad B1 W1 B2 Dwie ±cie»ki potrzebne na zrealizowanie kryterium: W1 B1 W2 B3 B5 W1 B2 W2 B4 B5 W2 B3 B4 B5

Kryterium wszystkich ±cie»ek przykªad B1 W1 W2 B2 Cztery ±cie»ki potrzebne na zrealizowanie kryterium: W1 B1 W2 B3 B5 W1 B1 W2 B4 B5 W1 B2 W2 B3 B5 W1 B2 W2 B4 B5 B3 B4 B5

Testowanie p tli 1 while (W1) { 2 B1; 3 } 4 B2; W1 B1 Mo»liwe ±cie»ki W1 B2 W1 B1 W1 B2 W1 B1 W1 B1 W1 B2... W1 {B1 W1} B2 B2

Testowanie p tli 1 while (W1) { 2 B1; 3 } 4 B2; W1 B1 Dobierz dane tak aby wykona p tl zero razy (je±li to mo»liwe) minimaln, niezerow liczb razy przeci tn liczb razy maksymaln liczb razy B2

Newsy 31 grudnia 2008 r. Faulty software has crippled 30GB rst generation versions of the Microsoft Zune digital media player, aecting thousands of customers worldwide. The company said it was aware of the problem, and oered advice to Zune users on how to solve it. Customers have reported that their devices refuse to boot up, and freeze when the start-screen appears. http://news.bbc.co.uk/2/hi/technology/7806683.stm

Kod z bª dem (?)... 1 #define ORIGINYEAR 1980 2 3 // split total days since Jan 1, ORIGINYEAR into year, month and day 4 5 //... 6 7 int year = ORIGINYEAR; 8 9 while (days > 365) { 10 if (IsLeapYear(year)) { 11 if (days > 366) { 12 days -= 366; 13 year += 1; 14 } 15 } else { 16 days -= 365; 17 year += 1; 18 } 19 } http://pastie.org/349916

Zadanie zaproponuj testy black-box narysuj graf odpowiadaj cy kodowi zaproponuj testy white-box

Kod poprawiony 1 #define ORIGINYEAR 1980 2 3 // split total days since Jan 1, ORIGINYEAR into year, month and day 4 5 //... 6 7 int year = ORIGINYEAR; 8 9 while (days > 365) { 10 if (IsLeapYear(year)) { 11 if (days > 366) { 12 days -= 366; 13 year += 1; 14 } else { 15 break; 16 } 17 } else { 18 days -= 365; 19 year += 1; 20 } 21 } http://pastie.org/349916

Warunki poprawno±ci programowe odpowiedniki sprz towych czujników alarmowych wynikaj z zaªo»enia,»e lepiej przerwa bª dne wykonanie, ni» kontynuowa okre±laj warunki, które zawsze musz by speªnione nie s to warunki dostateczne poprawno±ci programu... w odró»nieniu od testów, nie zale» od danych nie s wyj tkami, które reaguj na bª dy ±rodowiska!

ródªa warunków poprawno±ci ograniczenia dotycz ce danych: zmiennych, pól, parametrów wzrost > 0 placa min placa max i, j : i < j A[i] < A[j] niezmienniki algorytmów