Testowanie oprogramowania

Transkrypt

Testowanie oprogramowania
Testowanie oprogramowania
Wykład 02
dr inż. Grzegorz Michalski
20 października 2015
Testowanie oprogramowania 1/19
Test “białej skrzynki“
wgląd do kodu źródłowego,
systematyczne sprawdzanie elementów tego kodu,
można przeprowadzić w sposób statyczny lub dynamiczny
Testowanie oprogramowania 2/19
Analiza pokrycia kodu
metoda dynamiczna w testowaniu metodą białej skrzynki,
pozwala na przetestowanie stanu programu oraz przepływów
sterowania pomiędzy tymi stanami,
sprawdzane jest wejście i wyjście każdego bloku programu,
celem jest wykonanie każdego wiersza programu i każdej możliwej
ścieżki programu,
pozwala na znalezienie znaczącej liczby błędów we fragmentach
rzadko wykonywanych,
wyjątkowe sytuacje często są pomijane przez projektantów systemów,
fragmenty z założenia rzadko wykonywane mogą rzeczywiście
znacząco obciążać system,
do analizy kodu wykorzystuje się programy śledzące, pozwalające na
generowanie szczegółowych raportów. Raporty takie pozwalają na
wykrycie fragmentów kodu nie pokrytych zastosowanymi testami.
Testowanie oprogramowania 3/19
Pokrycie kodu
Pokrycie kodu realizowane jest poprzez:
wykonanie przynajmniej jednokrotnie każdej instrukcji w programie –
pokrycie wiersza kodu,
wykonanie jak największej liczby ścieżek programu – testowanie
ścieżek,
uwzględnienie złożonych warunków logicznych instrukcji warunkowej –
analiza pokrycia warunków logicznych.
Testowanie oprogramowania 4/19
Statyczna analiza kodu.
Elementy wspierające statyczną analizę kodu:
Standardy kodowania – jawnie określają zestawy instrukcji jakich nie
wolno lub nie powinno się w danym projekcie używać oraz narzucają
zestaw obligatoryjnych instrukcji. Z reguły nie ma odstępstw od
standardów. Stworzone, aby wyeliminować tymczasowe rozwiązania.
Reguły kodowania – wskazówki/sugestie dotyczące sposobu
wytwarzania kodu źródłowego. Ułatwiają czytelność kodu, a co z tym
związane jego zrozumienie.
Testowanie oprogramowania 5/19
Test “czarnej skrzynki“
”Czarna skrzynka”
testowanie nakierowane na wymagania funkcjonalne oprogramowania,
umożliwia weryfikację zgodności programu z wymaganiami
użytkownika,
stosowane najczęściej na zakończenie procesu testowania,
pozwala na wykrycie pominiętych lub niepoprawnie
zaimplementowanych funkcjonalności określonych w specyfikacji.
Testowanie oprogramowania 6/19
Zasady testowania oprogramowania.
Zasada 1.
Dla każdego przypadku testowego należy koniecznie określić spodziewany
wynik. Każdy przypadek testowy musi zawierać dwa elementy:
opis danych wejściowych,
precyzyjny opis poprawnego wyniku, który program powinien
wyprodukować dla określonych w danym przypadku danych.
Testowanie oprogramowania 7/19
Zasady testowania oprogramowania.
Zasada 2.
Programiści powinni unikać testowania tworzonych przez siebie programów.
Testowanie oprogramowania 8/19
Zasady testowania oprogramowania.
Zasada 3.
Firmy/zespoły programistyczne nie powinny testować swych własnych
produktów.
Testowanie oprogramowania 9/19
Zasady testowania oprogramowania.
Zasada 4.
Wyniki każdego przypadku testowego powinny być starannie analizowane.
Testowanie oprogramowania 10/19
Zasady testowania oprogramowania.
Zasada 5.
Przypadku testowe powinny uwzględniać zarówno dane wejściowe
niepoprawne i nieoczekiwane przez program, jak i dane prawidłowe pod
każdym względem.
Testowanie oprogramowania 11/19
Zasady testowania oprogramowania.
Zasada 6.
Weryfikacja programu pod kątem realizowania przezeń pożądanych funkcji
to jedynie połowa zadania. Równie istotne jest to, czy program nie
realizuje funkcji niepożądanych z punktu widzenia specyfikacji.
Testowanie oprogramowania 12/19
Zasady testowania oprogramowania.
Zasada 7.
Nalęzy bezwzględnie unikać tworzenia ulotnych przypadków testowych,
chyba że testowany program sam jest tworem o charakterze ulotnym.
Testowanie oprogramowania 13/19
Zasady testowania oprogramowania.
Zasada 8.
Nie można planować strategii testowania oprogramowania przy milczącym
założeniu, że testowany program wolny jest od błędów.
Testowanie oprogramowania 14/19
Zasady testowania oprogramowania.
Zasada 9.
Prawdopodobieństwo wykrycia kolejnego błędu w testowanym fragmencie
programu jest proporcjonalne do liczby błędów już w tym fragmencie
wykrytych.
Testowanie oprogramowania 15/19
Zasady testowania oprogramowania.
Zasada 10.
Testowanie oprogramowania jest czynnością w ogromnym stopniu twórczą
i stanowi niezwykłe wyzwanie intelektualne. Często też jest czynnością
deprecjonowaną przez inne osoby pracujące nad oprogramowaniem.
Testowanie oprogramowania 16/19
Zasady testowania oprogramowania.
A tak w skrócie:
Testowanie jest zespołem czynności wykonywanych w celu wykrycia
błędów w oprogramowaniu.
Dobrym przypadkiem testowym jest taki, który z wysokim
prawdopodobieństwem doprowadzić może do wykrycia nowego błędu.
Jeżeli przypadek testowy doprowadził do wykrycia nowego błędu w
oprogramowaniu, można określić że jest to pomyślny przypadek
testowy.
Testowanie oprogramowania 17/19
Przypadek testowy
Definicja IEEE–610
Zbiór danych wejściowych, wstępnych warunków wykonania, oczekiwanych
rezultatów i końcowych warunków wykonania opracowany w określonym
celu lub dla warunku testowego jak wykonanie pewnej ścieżki programu w
celu zweryfikowania zgodności z pewnym wymaganiem.
Przypadek testowy niskiego poziomu
Przypadek testowy z konkretnymi (na poziomie implementacji)
wartościami wejściowymi i wynikami oczekiwanymi. Logiczne operatory z
przypadków testowych wysokiego poziomu są zamieniane na konkretne
wartości, które odpowiadają celom logicznych operatorów.
Przypadek testowy wysokiego poziomu
Przypadek testowy bez konkretnych (poziom implementacji) wartości
danych wejściowych i oczekiwanych rezultatów. Używane są operatory
logiczne; rzeczywiste wartości nie są jeszcze zdefiniowane i/lub dostępne.
Testowanie oprogramowania 18/19
Dobry przypadek testowy.
Dobry przypadek testowy powinien być zbudowany z wartości:
unikalny identyfikator,
nazwa,
krótki opis,
warunki wstępne,
poszczególne kroki do wykonania,
oczekiwany rezultat,
warunek końcowy,
Opcjonalnie dobrze jest opisać go wartościami:
dane testowe; środowisko testowe; identyfikator wymagania, którego
dotyczy; priorytet; autor; numer wersji; kategoria;
Testowanie oprogramowania 19/19

Podobne dokumenty