BYT 2006 Testowanie oprogramowania

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


Wyszukiwarka

Podobne podstrony:
BYT 2003 Testowanie oprogramowania
BYT 2005 Testowanie oprogramowania
BYT 2003 Testowanie oprogramowania
BYT 2006 Software complexity estimation
BYT 2006 Software Life cycles & roles in project team v1
BYT 2006 Software Life cycles & roles in project team v2
BYT 2006 Planowanie zadan i metody ich obrazowania v2
BYT 2006 Communication in Project Management
Testowanie oprogramowania
Projekt plan testowania oprogramowania (2)
BYT 2006 Planowanie zadan i metody ich obrazowania v1
BYT 2006 Quality in IT project
Testowanie oprogramowania
automatyczne testowanie oprogramowania
Sztuka testowania oprogramowania 2
Sztuka testowania oprogramowania

więcej podobnych podstron