Upload
women-in-technology
View
274
Download
0
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
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
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…
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
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ę) !