background image

 

 

 

 

Testowanie 

Testowanie 

oprogramowania

oprogramowania

Marcin Jerzak

Marcin Jerzak

Piotr Fisz

Piotr Fisz

background image

 

 

Testowanie oprogramowania

Testowanie oprogramowania

Jest to proces związany z wytwarzaniem 

Jest to proces związany z wytwarzaniem 

oprogramowania. Celem testowania jest wykrywanie 

oprogramowania. Celem testowania jest wykrywanie 

błędów oraz badanie niezawodności systemu. 

błędów oraz badanie niezawodności systemu. 

Weryfikacja 

(verification)

 - testowanie zgodności systemu 

z wymaganiami zdefiniowanymi w fazie określenia 

wymagań. 

Atestowanie 

(validation)

 - ocena systemu lub 

komponentu podczas lub na końcu procesu jego 

rozwoju na zgodności z wyspecyfikowanymi 

wymaganiami. Atestowanie jest więc weryfikacją 

końcową.

background image

 

 

Cele testowania:

Cele testowania:

O

Oprogramowanie testujemy głównie 
mając na uwadze wykrycie i pozbycie 
się błędów w systemie oraz ocena 
niezawodności oprogramowania.

background image

 

 

Błędy

Błędy

Błąd (failure, error) – jest to niepoprawna 

konstrukcja znajdująca się w programie, która 

może doprowadzić do niewłaściwego działania.

Błędne wykonanie (failure) - niepoprawne 

działanie systemu w trakcie jego pracy.

Należy mieć na uwadze, że te samo błędne 

wykonanie programu może być spowodowane 

przez różne błędy pracy oprogramowania.

background image

 

 

Weryfikacja

Weryfikacja

Weryfikacja ma na celu sprawdzenie 

Weryfikacja ma na celu sprawdzenie 
czy produkt w danej fazie rozwoju

 

 

spełnia założenia powstałe podczas 

spełnia założenia powstałe podczas 

startu danej fazy.

startu danej fazy.

Przy weryfikacji możemy wykorzystać: 

Przy weryfikacji możemy wykorzystać: 
Przeglądy, inspekcje, testowanie, 
sprawdzanie, audytowanie.

background image

 

 

Przeglądy

Przeglądy

Przeglądem nazywamy spotkanie, w 

czasie którego produkt lub jego części 

są prezentowane kierownictwu, 

użytkownikom, klientom lub innym 

osobom mającym kontakt z produktem 

w celu uzyskania opinii i wskazówek.

Rozróżniamy przeglądu formalne i 

nieformalne.

background image

 

 

Przegląd

Przegląd

Przeglądy formalne mogą mieć postać:

Przeglądy formalne mogą mieć postać:

- przeglądu technicznego (ocena zgodności

- przeglądu technicznego (ocena zgodności

  postępu prac względem planu).

  postępu prac względem planu).

- przejść (

- przejść (ocena dokumentów, modeli,

  projektów i kodu w celu znalezienia i

  naprawy błędów

).

).

- audytu (potwierdzenie zgodności z 

- audytu (potwierdzenie zgodności z 

założeniami,

założeniami,

  dokumentami itp. Przez osoby z „zewnątrz

  dokumentami itp. Przez osoby z „zewnątrz

  firmy”).

  firmy”).

background image

 

 

Audyt

Audyt

Jest to przegląd i ocena jakości 

Jest to przegląd i ocena jakości 

oprogramowania, która zapewnia 

oprogramowania, która zapewnia 

zgodność ze standardami i 

zgodność ze standardami i 

specyfikacjami oraz daje obraz o stanie 

specyfikacjami oraz daje obraz o stanie 

całego projektu.

całego projektu.

Dla zapewnienia lepszych wyników 

Dla zapewnienia lepszych wyników 

audyt powinien być wykonany przez 

audyt powinien być wykonany przez 

osoby z zewnątrz.

osoby z zewnątrz.

background image

 

 

Inspekcje

Inspekcje

Jest to technika polegająca na badaniu kodu 

Jest to technika polegająca na badaniu kodu 

przez osoby lub grupę osób nie będących 

przez osoby lub grupę osób nie będących 

autorami programu w celu znalezienia błędów.

autorami programu w celu znalezienia błędów.

Średnia skuteczność wynosi 60%.

Średnia skuteczność wynosi 60%.

Jest to technika rzadko stosowana ponieważ 

Jest to technika rzadko stosowana ponieważ 

wymagane są planowanie oraz kompetentni 

wymagane są planowanie oraz kompetentni 

ludzie. Dodatkowym minusem jest utrudniona 

ludzie. Dodatkowym minusem jest utrudniona 

analiza kosztów i zysków.

analiza kosztów i zysków.

background image

 

 

Inspekcje

Inspekcje

Cechy inspekcji:

Cechy inspekcji:

- Sesje są zaplanowane i przygotowane

- Sesje są zaplanowane i przygotowane

- Błędy i problemy są notowane 

- Błędy i problemy są notowane 

- wykonywane przez techników dla techników

- wykonywane przez techników dla techników

Korzyści inspekcji:

Korzyści inspekcji:

- Wzrost produktywności od 30% do 100%

- Wzrost produktywności od 30% do 100%

- Skrócenie czasu projektu od 10% do 30%

- Skrócenie czasu projektu od 10% do 30%

- Skrócenie kosztu i czasu wykonywania 

- Skrócenie kosztu i czasu wykonywania 

testów od

testów od

  5 do 10 razy  

  5 do 10 razy  

background image

 

 

Rodzaje testów

Rodzaje testów

Wykrywanie błędów – znajdowanie jak 

Wykrywanie błędów – znajdowanie jak 

największej ilości błędów

największej ilości błędów

Testy statystyczne – wykrywanie najczęściej 

Testy statystyczne – wykrywanie najczęściej 

statystycznie występujących błędów oraz ocena 

statystycznie występujących błędów oraz ocena 

niezawodności systemu

niezawodności systemu

Testy dynamiczne – wykonywanie kawałków 

Testy dynamiczne – wykonywanie kawałków 

programu i porównywanie wyników z 

programu i porównywanie wyników z 

poprawnymi

poprawnymi

Testy statyczne – analiza kodu

Testy statyczne – analiza kodu

background image

 

 

Fazy testowania

Fazy testowania

Testy modułów

Testy modułów

Testy systemu

Testy systemu

Testy akceptacji

Testy akceptacji

Wydajność systemu

Wydajność systemu

Interfejs systemu

Interfejs systemu

Własności operacyjne systemu

Własności operacyjne systemu

Testy zużycia zasobów

Testy zużycia zasobów

Zabezpieczenie systemu

Zabezpieczenie systemu

Przenoszalność systemu

Przenoszalność systemu

Niezawodność programu

Niezawodność programu

Odtwarzalność oprogramowania

Odtwarzalność oprogramowania

background image

 

 

Fazy testowania

Fazy testowania

Bezpieczeństwo oprogramowania

Bezpieczeństwo oprogramowania

Kompletność i jakość założonych funkcji 
systemu

Nie przekraczanie ograniczeń

Modyfikowalność oprogramowania

Obciążalność oprogramowania

Skalowność systemu

Akceptowalność systemu

Jakość dokumentacji

background image

 

 

Testowanie na zasadzie czarnej 

Testowanie na zasadzie czarnej 

skrzynki

skrzynki

Metoda polega na testowaniu bez sprawdzania 

Metoda polega na testowaniu bez sprawdzania 

wnętrza programu

wnętrza programu

Powinno się testować dla całego zakresu danych

Powinno się testować dla całego zakresu danych

Dane powinno się podzielić na takie, które mogą 

Dane powinno się podzielić na takie, które mogą 

dawać podobne błędy

dawać podobne błędy

Plusem jest możliwości pokazania brakujących 

Plusem jest możliwości pokazania brakujących 

funkcji

funkcji

background image

 

 

Testowanie na zasadzie białej 

Testowanie na zasadzie białej 

skrzynki

skrzynki

Metoda polega na testowaniu wewnętrznej 

Metoda polega na testowaniu wewnętrznej 

logiki po przez dobranie odpowiednich 

logiki po przez dobranie odpowiednich 

danych wejściowych, co umożliwia 

danych wejściowych, co umożliwia 

przetestowanie wszystkich ścieżek.

przetestowanie wszystkich ścieżek.

Często jest wymagane przygotowanie danych 

Często jest wymagane przygotowanie danych 

testowych spełniających nasze wymagania

testowych spełniających nasze wymagania

Minusem jest brak możliwości pokazania 

Minusem jest brak możliwości pokazania 

brakujących funkcji

brakujących funkcji

background image

 

 

Okre

Okre

ślenie niezawodności 

ślenie niezawodności 

oprogramowania

oprogramowania

Prawdopodobieństwo błędnego 

Prawdopodobieństwo błędnego 

wykonania podczas realizacji tranzakcji. 

wykonania podczas realizacji tranzakcji. 

Miarą nazywamy częstość wystąpienia 

Miarą nazywamy częstość wystąpienia 

błędnych tranzakcji.

błędnych tranzakcji.

Częstotliwość występowania błędnych 

Częstotliwość występowania błędnych 

wykonań.

wykonań.

Średni czas między błędami.

Średni czas między błędami.

Dostępność. Jest to prawdopodobieństwo 

Dostępność. Jest to prawdopodobieństwo 

dostępności systemu w danej chwili.

dostępności systemu w danej chwili.

background image

 

 

Oszacowanie niezawodności

Oszacowanie niezawodności

Ma duży wpływ na koszt konserwacji 

Ma duży wpływ na koszt konserwacji 

oprogramowania.

oprogramowania.

Pozwala oszacować koszt serwisu, 

Pozwala oszacować koszt serwisu, 

liczbę personelu, liczbę zgłoszeń 

liczbę personelu, liczbę zgłoszeń 

błędów.

błędów.

Pozwala ocenić i polepszyć proces 

Pozwala ocenić i polepszyć proces 

wytwarzania.

wytwarzania.

background image

 

 

Wykrywanie błędów

Wykrywanie błędów

Testy funkcjonalne – zakładają 

Testy funkcjonalne – zakładają 

znajomość wymagań wobec testowanej 

znajomość wymagań wobec testowanej 

funkcji. System traktujemy jak czarną 

funkcji. System traktujemy jak czarną 

skrzynkę, która realizuje funkcje w 

skrzynkę, która realizuje funkcje w 

nieznany sposób.

nieznany sposób.

Testy strukturalne – zakładają znajomość 

Testy strukturalne – zakładają znajomość 

sposobu implementacji testowanych 

sposobu implementacji testowanych 

funkcji

funkcji

background image

 

 

Testy funkcjonalne

Testy funkcjonalne

Uniemożliwiają przetestowanie 

Uniemożliwiają przetestowanie 

rzeczywistego systemu ze względu na 

rzeczywistego systemu ze względu na 

liczbę kombinacji danych wejściowych.

liczbę kombinacji danych wejściowych.

Zakłada się, że jeśli dana funkcja 

Zakłada się, że jeśli dana funkcja 

działa dla kilku danych wejściowych 

działa dla kilku danych wejściowych 

poprawnie to i dla reszty też tak 

poprawnie to i dla reszty też tak 

będzie.

będzie.

background image

 

 

Testy strukturalne

Testy strukturalne

Dane wejściowe dobiera się na podstawie 

Dane wejściowe dobiera się na podstawie 

analizy struktury programu realizującego daną 

analizy struktury programu realizującego daną 

funkcję.

funkcję.

Wyróżniamy kryterium pokrycia wszystkich 

Wyróżniamy kryterium pokrycia wszystkich 

instrukcji, czyli dane wejściowe są tak dobrane 

instrukcji, czyli dane wejściowe są tak dobrane 

by każda instrukcja wykonała się co najmniej 

by każda instrukcja wykonała się co najmniej 

raz oraz kryterium pokrycia warunkowego czyli 

raz oraz kryterium pokrycia warunkowego czyli 

istnieje możliwość, że dla danych wejściowych 

istnieje możliwość, że dla danych wejściowych 

nie będą spełnione ich wymagania.

nie będą spełnione ich wymagania.

background image

 

 

Co używamy do testowania:

Co używamy do testowania:

Programy uruchamiające (debuggers)

Programy uruchamiające (debuggers)

Analizatory przykrycia kodu

Analizatory przykrycia kodu

Programy porównujące

Programy porównujące

background image

 

 

Testy statyczne

Testy statyczne

Testy statyczne p

Testy statyczne p

olega

olega

ją na analizie kodu bez 

ją na analizie kodu bez 

jego uruchamiania.

jego uruchamiania.

Dowody poprawności – praktycznie nie używane

Dowody poprawności – praktycznie nie używane

Metody nieformalne – jest to analiza kodu prze 

Metody nieformalne – jest to analiza kodu prze 

programistów. Pozwala znaleźć błędy takie jak: 

programistów. Pozwala znaleźć błędy takie jak: 

niezainicjowanie zmiennych, przepełnienie 

niezainicjowanie zmiennych, przepełnienie 

tabeli, nieprawidłowe urzucie kursorów i 

tabeli, nieprawidłowe urzucie kursorów i 

wskaźników itp.

wskaźników itp.

background image

 

 

Testy systemu

Testy systemu

Testowanie wstępujące – najpierw 

Testowanie wstępujące – najpierw 

testujemy moduły niższego poziomu a 

testujemy moduły niższego poziomu a 

potem wyższego.

potem wyższego.

Testowanie zstępujące – najpierw 

Testowanie zstępujące – najpierw 

testujemy moduły wyższego poziomy a 

testujemy moduły wyższego poziomy a 

potem niższego.

potem niższego.

background image

 

 

Testy pod obciążeniem i 

Testy pod obciążeniem i 

odpornościowe

odpornościowe

Testy obciążeniowe umożliwiają zbadanie 

Testy obciążeniowe umożliwiają zbadanie 

zachowania, wydajności i niezawodności 

zachowania, wydajności i niezawodności 

systemu podczas pracy pod pełnym lub 

systemu podczas pracy pod pełnym lub 

nadmiernym obciążeniem.

nadmiernym obciążeniem.

Testy odpornościowe pokazują jak 

Testy odpornościowe pokazują jak 

zachowuje się system w przypadku np. 

zachowuje się system w przypadku np. 

zaniku prądu, wprowadzenie 

zaniku prądu, wprowadzenie 

niepoprawnych danych itp.

niepoprawnych danych itp.

background image

 

 

Testy akceptacyjne

Testy akceptacyjne

Testy akceptacyjne polegają na przekazaniu 

Testy akceptacyjne polegają na przekazaniu 

oprogramowania klientom docelowym w celu 

oprogramowania klientom docelowym w celu 

zatwierdzenia. Jeżeli oprogramowanie jest 

zatwierdzenia. Jeżeli oprogramowanie jest 

realizowane na zamówienie system przekazywany 

realizowane na zamówienie system przekazywany 

jest do przetestowania przyszłemu użytkownikowi 

jest do przetestowania przyszłemu użytkownikowi 

po stronie zleceniodawcy. Takie testy są nazywane 

po stronie zleceniodawcy. Takie testy są nazywane 

testami alfa. 

testami alfa. 

Dla oprogramowania sprzedawanego rynkowo 

Dla oprogramowania sprzedawanego rynkowo 

przewidziane są testy polegające na nieodpłatnym 

przewidziane są testy polegające na nieodpłatnym 

przekazaniu pewnej liczby kopii systemu grupie 

przekazaniu pewnej liczby kopii systemu grupie 

użytkowników. Testy te są nazywane testami beta.

użytkowników. Testy te są nazywane testami beta.

background image

 

 

Czynniki sukcesu

Czynniki sukcesu

Na czynniki sukcesu wpływa:

Na czynniki sukcesu wpływa:

Określenie fragmentów o szczególnej 

Określenie fragmentów o szczególnej 

niezawodności

niezawodności

Właściwa motywacja testerów

Właściwa motywacja testerów

Poprawa znalezionych błędów

Poprawa znalezionych błędów

Oszacowanie niezawodności i kosztów 

Oszacowanie niezawodności i kosztów 

konserwacji.

konserwacji.

background image

 

 

Standardy w testowaniu

Standardy w testowaniu

Podstawowym standardem dla testowania 

Podstawowym standardem dla testowania 

oprogramowania jest 

oprogramowania jest 

IEEE 829 – 1998 (829 

IEEE 829 – 1998 (829 

Standard for Software Test Documentation)

Standard for Software Test Documentation)

Jest to standard określający formę zbioru 8 

Jest to standard określający formę zbioru 8 

dokumentów potrzebnych w każdej z faz 

dokumentów potrzebnych w każdej z faz 

testowania oprogramowania. W efekcie 

testowania oprogramowania. W efekcie 

każdej z tych faz tworzony jest 1 dokument 

każdej z tych faz tworzony jest 1 dokument 

wynikowy. Standard ten określa dokładnie 

wynikowy. Standard ten określa dokładnie 

format dokumentów, jednak nie wymaga aby 

format dokumentów, jednak nie wymaga aby 

wszystkie były wykonane. Nie zawiera także 

wszystkie były wykonane. Nie zawiera także 

informacji o tym co dokładnie mają zawierać. 

informacji o tym co dokładnie mają zawierać. 

background image

 

 

Standardy w testowaniu

Standardy w testowaniu

Test Plan

Test Plan

 – dokument planowania zarządzania projektem, który składa się z informacji o 

 – dokument planowania zarządzania projektem, który składa się z informacji o 

tym, w jaki sposób będą prowadzone testy, kto będzie je przeprowadzał, co będzie 

tym, w jaki sposób będą prowadzone testy, kto będzie je przeprowadzał, co będzie 

testowane, jak długo potrwa cały proces oraz jaki będzie zakres testów.

testowane, jak długo potrwa cały proces oraz jaki będzie zakres testów.

Test Design Specification

Test Design Specification

 – szczegóły na temat warunków testowania, oczekiwanych 

 – szczegóły na temat warunków testowania, oczekiwanych 

wyników a także kryteriach przejścia testu.

wyników a także kryteriach przejścia testu.

Test Case Specification

Test Case Specification

 – specyfikuje dane testowe do użycia podczas wdrażania 

 – specyfikuje dane testowe do użycia podczas wdrażania 

warunków testowania określonych w Test Design Specification.

warunków testowania określonych w Test Design Specification.

Test Procedure Specification

Test Procedure Specification

 – zawiera szczegóły na temat przeprowadzenia każdego 

 – zawiera szczegóły na temat przeprowadzenia każdego 

testu włączając w to założenia oraz poszczególne kroki testów.

testu włączając w to założenia oraz poszczególne kroki testów.

Test Item Transmittal Report

Test Item Transmittal Report

 – zawiera raporty na temat czasu przejścia testowanych 

 – zawiera raporty na temat czasu przejścia testowanych 

fragmentów oprogramowania między etapami.

fragmentów oprogramowania między etapami.

Test Log

Test Log

 – zawiera informacje o tym, które przypadki testowania zostały użyte, kto je 

 – zawiera informacje o tym, które przypadki testowania zostały użyte, kto je 

użył i w jakim porządku oraz informacje o ich powodzeniu.

użył i w jakim porządku oraz informacje o ich powodzeniu.

Test Incident Report

Test Incident Report

 – zawiera informacje o testach zakończonych niepowodzeniem. 

 – zawiera informacje o testach zakończonych niepowodzeniem. 

Informacje o wynikach oraz dlaczego dany test nie powiódł się.

Informacje o wynikach oraz dlaczego dany test nie powiódł się.

Test Summary Report

Test Summary Report

 – raport ten zawiera wszystkie istotne informacje ujawnione 

 – raport ten zawiera wszystkie istotne informacje ujawnione 

podczas zakończonych testów oraz wyceny jakości procesów testowania, jakości 

podczas zakończonych testów oraz wyceny jakości procesów testowania, jakości 

oprogramowania poddanego testowi, a także statystyki uzyskane z Incident Report. 

oprogramowania poddanego testowi, a także statystyki uzyskane z Incident Report. 

Raport referuje również do typów i czasu trwania wykonanych testów w celu 

Raport referuje również do typów i czasu trwania wykonanych testów w celu 

usprawnienia wszelkich planów związanych z testami w przyszłości. Ostateczna forma 

usprawnienia wszelkich planów związanych z testami w przyszłości. Ostateczna forma 

dokumentu jest wykorzystywana w celach weryfikacji poprawności testowanego systemu 

dokumentu jest wykorzystywana w celach weryfikacji poprawności testowanego systemu 

względem wymagań zdefiniowanych przez zleceniodawców.

względem wymagań zdefiniowanych przez zleceniodawców.

background image

 

 

Test plan - zawartość

Test plan - zawartość

Opis

Opis

Odwzorowanie testów na wymagania

Odwzorowanie testów na wymagania

 

 

(ang. requirements traceability)

(ang. requirements traceability)

Weryfikacja pokrycia wymagań

Weryfikacja pokrycia wymagań

Wyszczególnienie co będzie podlegać testowaniu

Wyszczególnienie co będzie podlegać testowaniu

Plan czasowy

Plan czasowy

Procedury przeprowadzania testów

Procedury przeprowadzania testów

Zachowywanie wyników testów

Zachowywanie wyników testów

Wymagania sprzętowe i programowe

Wymagania sprzętowe i programowe

Znane ograniczenia

Znane ograniczenia

background image

 

 

Podsumowanie

Podsumowanie

Weryfikacja != walidacja

Weryfikacja != walidacja

Cel testowania: stwierdzenie błędów w 

Cel testowania: stwierdzenie błędów w 

systemie

systemie

Testowanie musi być uwzględnione od 

Testowanie musi być uwzględnione od 

początku w planach projektu

początku w planach projektu

Również w alokacji zasobów do projektu

Również w alokacji zasobów do projektu

Test plan – niezbędny dokument 

Test plan – niezbędny dokument 

projektowy

projektowy


Document Outline