21
Testowanie nauka, czy sztuka? łagodne wprowadzenie do testowania oprogramowania na przykładzie epickich awarii Adam Roman Instytut Informatyki UJ Women in Technology Kraków, sierpień 2015

Testowanie- nauka czy sztuka? - Adam Roman

Embed Size (px)

Citation preview

Testowanie – nauka, czy sztuka? łagodne wprowadzenie do testowania oprogramowania na przykładzie epickich awarii Adam Roman Instytut Informatyki UJ Women in Technology Kraków, sierpień 2015

Testowanie integracyjne

system komunikacja system pokładowy kontroli naziemnej

projekt statku $ 193 000 000 orbiter $ 125 000 000 lądownik $ 202 000 000 wystrzelenie $ 91 000 000 operacje $ 42 000 000 RAZEM $ 653 000 000

Techniki pokrycia grafowego pokrycie instrukcyjne

Ile przypadków testowych potrzeba?

Syberia czerwiec, 1982

Race condition

A

B

B

A

Therac-6: 6 MeV Therac-20: 20 MeV Therac-25: 25 MeV

Analiza statyczna

#include <stdio.h>

int main() {

char c;

while (c!='x'); {

c=getchar();

if (c='x') return 0;

switch(c) {

case '\n':

case '\r':

printf("Newline\n");

default:

printf("%c",c);

}

}

Therac-6: 6 MeV Therac-20: 20 MeV Therac-25: 25 MeV

Ariane 5 koszt misji: $ 7 000 000 000, w tym rakieta $ 500 000 000 czas projektu: 10 lat czas lotu: 40 sekund…

Przeglądy i inspekcje

AT&T blackout

1 while (bufor odbieranych połączeń niepusty and

bufor pomocniczy niepusty) do

2 inicjalizuj wskaźnik na pierwszy komunikat w

buforze pomocniczym lub buforze połączeń

3 pobierz kopię bufora

4 switch (komunikat)

5 case (incoming_message):

6 if (przekźnik nie działa) then

7 if (bufor zapisu pusty) then

8 wyślij komunikat "in service"

9 else

10 break

11 end if

12 end if

13 przetwórz przychodzący komunikat,

ustaw wskaźniki na opcjonalne parametry

14 break

15 end switch

16 przetwórz opcjonalne parametry

Analiza wymagań

Funkcja X musi działać szybko W sytuacji X system musi

wykonać Y. Jeśli tego nie zrobi, to Z

System powinien być dostępny 24/7

Rakiety Patriot

„Reboot the system every so often to reset the clocks”

Gry Wojenne (film)

Gry Wojenne (tyle, że naprawdę)

płk. Stanisław Pietrow

Testowanie kombinatoryczne

tc system operacyjny komputer procesor

1 Win95 IBM Thinkpad AMD

2 Win95 Dell Intel

3 Win95 Sony VAIO Intel

4 Win98 IBM ThinkPad Intel

5 Win98 Dell AMD

6 Win98 Sony VAIO AMD

2 systemy operacyjne x 3 typy komputerów x 2 typy procesora = 12 możliwych kombinacji Minimalna liczba testów spełniająca kryterium pairwise = ?

Inne przykłady:

• przepełnienie bufora w unixowym fingerd • błąd w Excel 2007 (850 * 77.1 = 65535, ale wg Excela 100000) • błąd w procesorze Pentium (arytmetyka) • katastrofa sondy Mariner I (przez kreskę we wzorze) • Cobalt-60 (historia podobna do Therac-25, 15 lat później)

i wiele, wiele, wieeeeeeele innych…!

Podsumowanie

TECHNIKI TESTOWANIA

(umowny podział)

czarnoskrzynkowe białoskrzynkowe

„sztuka” „nauka”

w testowaniu każdy może znaleźć coś dla siebie (swoją niszę) !

Testowanie się opłaca Bycie testerem też się opłaca

KONIEC ?