9 Poprawność programów

background image

Poprawność

Poprawność

programów.

programów.

Błąd, źródła błędów.

Błąd, źródła błędów.

background image

BUG

BUG

• to w żargonie informatycznym,

wyrażenie oznaczające pewien

błąd

,

usterkę

– niepożądane, powtarzające

się przy zajściu określonych czynników

działanie programu, wynikające z

błędu człowieka na jednym z etapów

tworzenia oprogramowania, zwykle na

etapie projektowania lub tworzenia

kodu źródłowego.

background image

Pochodzenie nazwy „BUG”

Pochodzenie nazwy „BUG”

• Wprowadzenie do

użycia
wspomnianego
terminu
angielskiego jest
przypisywane
admirał

Grace

Brewster Murray
Hopper

background image

Pochodzenie nazwy „BUG”

Pochodzenie nazwy „BUG”

• Podczas prowadzonych w

1945

lub

1947

r

. pracach z prymitywnym

komputerem

Harvard Mark II

operator stwierdził jego nieprawidłowe
działanie i po poszukiwaniach
przyczyny znalazł pomiędzy gołymi
przewodami przekaźnika drobnego
insekta (ang.

bug

) ćmę, która

powodowała spięcie.

background image

DEBUGERY

DEBUGERY

Bug jako nazwa błędu programistycznego

występuje w nazwach programów

pomagających usuwać błędy, tzw.

debugerów

• Programy te pozwalają śledzić wartości

określonych

zmiennych

i

rejestrów

wykorzystywanych w programie do momentu

wystąpienia

błędu

celem

znalezienia

dokładnego miejsca w

kodzie źródłowym

,

które należy zmienić, by bug się nie pojawiał.

background image

Systemy zbierania informacji o

usterkach

i niedogodnościach w

programach

BUGZILLA

W systemie Bugzilla błąd może zgłosić
każdy, przez określenie warunków, w
jakich się pojawia. Zgłoszenie jest
następnie przydzielane określonemu
programiście,

a

system

zawiera

aktualne informacje o postępach w
naprawianiu usterki.

background image

Ilość bugów na linijkę kodu jest w
przybliżeniu niezależna od języka,
czyli

program

o

tej

samej

funkcjonalności napisany w języku
wyższego poziomu (np.

Perl

czy

Python

) będzie miał mniej bugów

niż w języku niższego poziomu
(

Java

,

C

, czy

asembler

).

background image

Ilość błędów można

znacząco ograniczyć

poprzez:

pisanie testów

pisanie testów -

-

testy te powinny być

w miarę możliwości zautomatyzowane –

komputer potrafi przeprowadzić o kilka

rzędów wielkości więcej testów na
godzinę niż człowiek

ręczne audyty kodu

ręczne audyty kodu

-

-

jawne opisanie

założeń jakie przyjmuje kod (np. co do

typów danych wejściowych, czy
spodziewanego sposobu użycia)

background image

Ilość błędów można

znacząco ograniczyć

poprzez:

unikanie trudnych w analizie

unikanie trudnych w analizie

konstrukcji

konstrukcji

(jak słynne goto, czy

ewaluacja kodu w trakcie wykonania)

używanie narzędzi

używanie narzędzi

wykrywających podejrzane

wykrywających podejrzane

fragmenty kodu

fragmenty kodu

(lint, ostrzeżenia

kompilatora).

background image

TESTOWANIE PROGRAMÓW

TESTOWANIE PROGRAMÓW

• Czasem bugi wykrywa się przez

karmienie programu losowymi
danymi i sprawdzanie
otrzymywanych odpowiedzi.
Ponieważ typowe bugi dotyczą
wielu danych, wykrywa się w ten
sposób większość bugów.

background image

TESTOWANIE PROGRAMÓW

TESTOWANIE PROGRAMÓW

• zwykle testuje się osobno podzespoły

programu, oraz program w całości
(zakładając przy tym, że podzespoły
działają poprawnie)

• testowanie w środowisku sztucznym, za

pomocą emulatorów sprzętu, sieci czy
sztucznego karmienia programu
wydarzeniami udającymi użytkowników

background image

TESTOWANIE PROGRAMÓW

TESTOWANIE PROGRAMÓW

• Testy pisze się zwykle w późnej fazie

rozwoju oprogramowania.

• W metodologii

extreme programming

testy pisze się zanim rozpocznie się
pisanie danej części oprogramowania, co
ma zmniejszyć liczbę błędów.

• Do tworzenia testów i zarządzania nimi

istnieje wiele systemów, tzw.

testing

frameworks

, takich jak

XUnit

.

background image

OGÓLNY BŁĄD

OGÓLNY BŁĄD

OCHRONY

OCHRONY

• (ang.

general

protection

fault

)

w

architekturze

Intel

x86

jest

błędem

pojawiającym się, gdy bieżąco wykonywany

program komputerowy w jakiś sposób

narusza zasady sprzętu, na którym jest

wykonywany.

• Błędy, które powodują wystąpienie ogólnego

błędu ochrony, są zazwyczaj nieodwracalne i

uważa się, że najbezpieczniejszą reakcją na

nie jest przerwanie programu.

background image

PRZYCZYNY BŁĘDÓW

PRZYCZYNY BŁĘDÓW

background image

Wyróżnia się cztery typy
zdarzeń, które powodują
powstanie błędu:

• Błędy pamięci

• Błędy braku uprawnień

• Błędne zachowanie

• Błędy formatu

background image

Błędy pamięci

Błędy pamięci

• Ten przypadek zachodzi, gdy

program próbuje wykonać operację
na

części pamięci komputera

,

do której nie powinien mieć
dostępu.

background image

Błąd pamięci obejmuje:

Błąd pamięci obejmuje:

• Pisanie do

pamięci tylko do odczytu

(ang.

read-only)

• Próbę wykonania bajtów z pamięci, która

nie jest przeznaczona na instrukcje

• Próbę odczytania danych z pamięci

przeznaczonej na instrukcje

• Inne konflikty pomiędzy przeznaczeniem

pamięci a jej użytkowaniem przez
program

background image

Błędy braku uprawnień

Błędy braku uprawnień

• W komputerze są obszary, które są

zarezerwowane do wyłącznego
użytku

systemu operacyjnego

• Jeśli program, który nie jest częścią

systemu operacyjnego próbuje użyć
któregoś z nich, może spowodować
to powstanie błędu ochrony

background image

Błędne zachowanie

Błędne zachowanie

• Specyfikacja architektury

Intela

zawiera

pewne konwencje, do których programy
powinny się stosować, przeważnie ze
względu na ochronę poprawności
danych w programach i pomiędzy nimi.

• Program, który ich nie przestrzega,

może spowodować powstanie ogólnego
błędu ochrony.

background image

Błędy formatu

Błędy formatu

• Ogólny błąd ochrony może się pojawić,

jeśli instrukcja załadowana przez

procesor

jest nieprawidłowa lub zbyt

długa.

background image

Ogólny błąd ochrony może

zostać wywołany z wielu różnych

powodów:

• błędy naruszenia segmentacji poprzez

przekroczenie granic segmentu

• błędy naruszenia segmentacji poprzez

złamanie reguł dostępu do segmentu

• nieprawidłowa zawartość rejestrów

segmentowych

• dostęp do pamięci przy użyciu DS, ES, FS,

lub GS, gdy zawierają one zerowy selektor

• przełączanie zadań (TSS)

background image

Z A D A N I A

Z A D A N I A

Start
...

background image

1. Co w języku informatyków oznacza

wyrażenie „bug”?

a)

a)

Kod źródłowy

Kod źródłowy

b)

b)

Błąd, usterka

Błąd, usterka

2.

2.

Nazwa „bug” wprowadzona została

Nazwa „bug” wprowadzona została

przez:

przez:

a)

a)

Grace Murray Hopper

Grace Murray Hopper

b)

b)

Aleksandra Kopers’a

Aleksandra Kopers’a

DALE
J

WYJD
Ź

background image

3. Debugery to:

a) Błędy pamięci
b) Programy usuwające błędy

4. Wskaż zdanie prawdziwe:

a) Program napisany w języku

wyższego poziomu będzie mieć

więcej błędów niż napisany w języku

niższego poziomu.

b) Błędy powstają głównie na etapie

tworzenia kodu źródłowego.

DALE
J

WYJD
Ź

WSTEC
Z

a

b

background image

5. W metodologii extreme

programming testy pisze się zanim
rozpocznie się pisanie danej części
oprogramowania, co ma
zmniejszyć liczbę błędów.

6. Czym jest ogólny błąd ochrony?

PRAWDA

FAŁSZ

WSTEC
Z

DALE
J

WYJD
Ź

background image

7. Jeśli instrukcja załadowana przez

procesor

jest nieprawidłowa lub zbyt

długa mamy do czynienia z błędem:

a) Braku uprawnień
b) Formatu

8. Co to jest i do czego służy Bugzilla?

WSTEC
Z

DALE
J

WYJD
Ź

background image

9. Jeśli program, który nie jest

częścią systemu operacyjnego
próbuje użyć obszarów, które są
zarezerwowane do wyłącznego
użytku

systemu

operacyjnego

,

wtedy nie może to spowodować
powstania błędu ochrony.

WSTEC
Z

KONIE
C

background image

DOBRA ODPOWIEDŹ

DOBRA ODPOWIEDŹ

POWRÓT

POWRÓT

background image

ZŁA ODPOWIEDŹ

ZŁA ODPOWIEDŹ

POWRÓT

POWRÓT

background image

OGÓLNY BŁĄD

OGÓLNY BŁĄD

OCHRONY

OCHRONY

• (ang.

general protection fault

) w

architekturze

Intel x86

jest błędem

pojawiającym się, gdy bieżąco
wykonywany

program

komputerowy

w

jakiś

sposób

narusza zasady sprzętu, na którym
jest wykonywany.

background image

W systemie Bugzilla błąd może

zgłosić każdy, przez określenie
warunków, w jakich się pojawia.

Zgłoszenie

jest

następnie

przydzielane

określonemu

programiście, a system zawiera
aktualne informacje o postępach w
naprawianiu usterki.

BUGZILLA

background image

KONIEC

KONIEC


Document Outline


Wyszukiwarka

Podobne podstrony:
poprawiony program wychowawczy, Materiały dydaktyczne EFS
Matematyka dyskretna 2002 11 Poprawność programów
Referat Poprawno¶ć programów[1] Bł±d,Ľródła błędów Anetka
SYMULACJA CYFROWA (PRZEMYSŁAW ANDRZEJEWSKI) poprawiony program
Matematyka dyskretna 2002 11 Poprawność programów
pw sc2, WAT, IV SEM, PW, koloPW, Programowanie Wspólbieżne, pw poprawa
Program syganlizacj poprawiony
PROGRAM PROFILAKTYCZNY DOTYCZĄCY ZWALCZANIA AGRESJI WŚRÓD UCZNIÓW SZKOŁY PODSTAWOWEJ ( do poprawek )
PROGRAM PROFILAKTYCZNY DOTYCZĄCY ZWALCZANIA AGRESJI WŚRÓD UCZNIÓW SZKOŁY PODSTAWOWEJ ( do poprawek )
Program poprawy?ektywności 1
Wstęp do programu z poprawką, bierzmowanie
Promowana jest wartosc?ukacji Program poprawy?ektywności
wskazwki jak poprawi odbir programw analogowej telewizji naziemnej
Programowanie strukturalne i obiektowe Podrecznik do nauki zawodu technik informatyk Wydanie II popr
Program nauczania a poprawność językowa w zakresie form liczebnika
Programowanie strukturalne i obiektowe Podrecznik do nauki zawodu technik informatyk Wydanie II popr
Programowanie Teoria i praktyka z wykorzystaniem C Wydanie II poprawione 2
Programowanie strukturalne i obiektowe Podrecznik do nauki zawodu technik informatyk Wydanie II popr

więcej podobnych podstron