• Nie Znaleziono Wyników

Testowanie Testowanie oprogramowania oprogramowania

N/A
N/A
Protected

Academic year: 2021

Share "Testowanie Testowanie oprogramowania oprogramowania"

Copied!
30
0
0

Pełen tekst

(1)

Testowanie Testowanie

oprogramowania oprogramowania

Marcin Jerzak Marcin Jerzak

Piotr Fisz

Piotr Fisz

(2)

Testowanie oprogramowania Testowanie oprogramowania

Jest to proces związany z wytwarzaniem oprogramowania. Jest to proces związany z wytwarzaniem oprogramowania.

Celem testowania jest wykrywanie błędów oraz badanie Celem testowania jest wykrywanie błędów oraz badanie

niezawodności systemu.

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ą.

(3)

Cele testowania:

Cele testowania:

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

oprogramowania.

(4)

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.

(5)

Weryfikacja Weryfikacja

► Weryfikacja ma na celu sprawdzenie czy Weryfikacja ma na celu sprawdzenie produkt w danej fazie rozwoju spełnia spełnia

założenia powstałe podczas startu danej założenia powstałe podczas startu danej

fazy.

fazy.

► Przy weryfikacji możemy wykorzystać: Przy weryfikacji możemy wykorzystać:

Przeglądy, inspekcje, testowanie,

sprawdzanie, audytowanie.

(6)

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.

(7)

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 założeniami, - audytu (potwierdzenie zgodności z założeniami,

dokumentami itp. Przez osoby z „zewnątrz dokumentami itp. Przez osoby z „zewnątrz

firmy”).

firmy”).

(8)

Audyt Audyt

► Jest to przegląd i ocena jakości Jest to przegląd i ocena jakości

oprogramowania, która zapewnia zgodność oprogramowania, która zapewnia zgodność

ze standardami i specyfikacjami oraz daje ze standardami i specyfikacjami oraz daje

obraz o stanie całego projektu.

obraz o stanie całego projektu.

► Dla zapewnienia lepszych wyników audyt Dla zapewnienia lepszych wyników audyt powinien być wykonany przez osoby z

powinien być wykonany przez osoby z zewnątrz.

zewnątrz.

(9)

Inspekcje Inspekcje

► Jest to technika polegająca na badaniu kodu przez Jest to technika polegająca na badaniu kodu przez osoby lub grupę osób nie będących autorami

osoby lub grupę osób nie będących autorami programu w celu znalezienia błędów.

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 ludzie.

wymagane są planowanie oraz kompetentni ludzie.

Dodatkowym minusem jest utrudniona analiza Dodatkowym minusem jest utrudniona analiza

kosztów i zysków.

kosztów i zysków.

(10)

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 testów od - Skrócenie kosztu i czasu wykonywania testów od

5 do 10 razy

5 do 10 razy

(11)

Rodzaje testów Rodzaje testów

► Wykrywanie błędów – znajdowanie jak największej Wykrywanie błędów – znajdowanie jak największej ilości błędów

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 poprawnymi programu i porównywanie wyników z poprawnymi

► Testy statyczne – analiza kodu Testy statyczne – analiza kodu

(12)

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

(13)

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

(14)

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

(15)

Testowanie na zasadzie białej Testowanie na zasadzie białej

skrzynki skrzynki

► Metoda polega na testowaniu wewnętrznej logiki Metoda polega na testowaniu wewnętrznej logiki po przez dobranie odpowiednich danych

po przez dobranie odpowiednich danych wejściowych, co umożliwia przetestowanie wejściowych, co umożliwia przetestowanie

wszystkich ścieżek.

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

(16)

Okre Okre ślenie niezawodności ślenie niezawodności oprogramowania

oprogramowania

► Prawdopodobieństwo błędnego wykonania Prawdopodobieństwo błędnego wykonania podczas realizacji tranzakcji. Miarą

podczas realizacji tranzakcji. Miarą

nazywamy częstość wystąpienia błędnych nazywamy częstość wystąpienia błędnych

tranzakcji.

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.

(17)

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, liczbę Pozwala oszacować koszt serwisu, liczbę personelu, liczbę zgłoszeń błędów.

personelu, liczbę zgłoszeń błędów.

► Pozwala ocenić i polepszyć proces Pozwala ocenić i polepszyć proces wytwarzania.

wytwarzania.

(18)

Wykrywanie błędów Wykrywanie błędów

► Testy funkcjonalne – zakładają znajomość Testy funkcjonalne – zakładają znajomość wymagań wobec testowanej funkcji. System wymagań wobec testowanej funkcji. System

traktujemy jak czarną skrzynkę, która traktujemy jak czarną skrzynkę, która

realizuje funkcje w nieznany sposób.

realizuje funkcje w nieznany sposób.

► Testy strukturalne – zakładają znajomość Testy strukturalne – zakładają znajomość

sposobu implementacji testowanych funkcji

sposobu implementacji testowanych funkcji

(19)

Testy funkcjonalne Testy funkcjonalne

► Uniemożliwiają przetestowanie Uniemożliwiają przetestowanie

rzeczywistego systemu ze względu na liczbę rzeczywistego systemu ze względu na liczbę

kombinacji danych wejściowych.

kombinacji danych wejściowych.

► Zakłada się, że jeśli dana funkcja działa dla Zakłada się, że jeśli dana funkcja działa dla kilku danych wejściowych poprawnie to i dla kilku danych wejściowych poprawnie to i dla

reszty też tak będzie.

reszty też tak będzie.

(20)

Testy strukturalne Testy strukturalne

► Dane wejściowe dobiera się na podstawie analizy Dane wejściowe dobiera się na podstawie analizy struktury programu realizującego daną funkcję.

struktury programu realizującego daną funkcję.

► Wyróżniamy kryterium pokrycia wszystkich Wyróżniamy kryterium pokrycia wszystkich

instrukcji, czyli dane wejściowe są tak dobrane by instrukcji, czyli dane wejściowe są tak dobrane by

każda instrukcja wykonała się co najmniej raz oraz każda instrukcja wykonała się co najmniej raz oraz

kryterium pokrycia warunkowego czyli istnieje kryterium pokrycia warunkowego czyli istnieje

możliwość, że dla danych wejściowych nie będą możliwość, że dla danych wejściowych nie będą

spełnione ich wymagania.

spełnione ich wymagania.

(21)

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

(22)

Testy statyczne Testy statyczne

► Testy statyczne p Testy statyczne p olega olega ją na analizie kodu bez jego ją na analizie kodu bez jego uruchamiania.

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 tabeli, niezainicjowanie zmiennych, przepełnienie tabeli, nieprawidłowe urzucie kursorów i wskaźników itp.

nieprawidłowe urzucie kursorów i wskaźników itp.

(23)

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 testujemy Testowanie zstępujące – najpierw testujemy moduły wyższego poziomy a potem

moduły wyższego poziomy a potem niższego.

niższego.

(24)

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 niepoprawnych zaniku prądu, wprowadzenie niepoprawnych

danych itp.

danych itp.

(25)

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.

(26)

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.

(27)

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 . Jest to standard określający formę zbioru 8

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 każdej z testowania oprogramowania. W efekcie każdej z

tych faz tworzony jest 1 dokument wynikowy.

tych faz tworzony jest 1 dokument wynikowy.

Standard ten określa dokładnie format Standard ten określa dokładnie format

dokumentów, jednak nie wymaga aby wszystkie dokumentów, jednak nie wymaga aby wszystkie

były wykonane. Nie zawiera także informacji o tym były wykonane. Nie zawiera także informacji o tym

co dokładnie mają zawierać.

co dokładnie mają zawierać.

(28)

Standardy w testowaniu Standardy w testowaniu

Test Plan – dokument planowania zarządzania projektem, który składa się z informacji o tym, w jaki Test Plan – 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 testowane, jak długo potrwa 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.

cały proces oraz jaki będzie zakres testów.

Test Design Specification – szczegóły na temat warunków testowania, oczekiwanych wyników a Test Design Specification – szczegóły na temat warunków testowania, oczekiwanych wyników a także kryteriach przejścia testu.

także kryteriach przejścia testu.

Test Case Specification – specyfikuje dane testowe do użycia podczas wdrażania warunków Test Case Specification – specyfikuje dane testowe do użycia podczas wdrażania warunków testowania określonych w Test Design Specification.

testowania określonych w Test Design Specification.

Test Procedure Specification – zawiera szczegóły na temat przeprowadzenia każdego testu Test Procedure Specification – zawiera szczegóły na temat przeprowadzenia każdego testu włączając w to założenia oraz poszczególne kroki testów.

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

Test Item Transmittal Report – zawiera raporty na temat czasu przejścia testowanych Test Item Transmittal Report – zawiera raporty na temat czasu przejścia testowanych fragmentów oprogramowania między etapami.

fragmentów oprogramowania między etapami.

Test Log – zawiera informacje o tym, które przypadki testowania zostały użyte, kto je użył i w jakim Test Log – 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.

porządku oraz informacje o ich powodzeniu.

Test Incident Report – zawiera informacje o testach zakończonych niepowodzeniem. Informacje o Test Incident Report – zawiera informacje o testach zakończonych niepowodzeniem. Informacje o wynikach oraz dlaczego dany test nie powiódł się.

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

Test Summary Report – raport ten zawiera wszystkie istotne informacje ujawnione podczas Test Summary Report – raport ten zawiera wszystkie istotne informacje ujawnione podczas

zakończonych testów oraz wyceny jakości procesów testowania, jakości oprogramowania poddanego zakończonych testów oraz wyceny jakości procesów testowania, jakości oprogramowania poddanego testowi, a także statystyki uzyskane z Incident Report. Raport referuje również do typów i czasu testowi, a także statystyki uzyskane z Incident Report. Raport referuje również do typów i czasu trwania wykonanych testów w celu usprawnienia wszelkich planów związanych z testami w trwania wykonanych testów w celu usprawnienia wszelkich planów związanych z testami w

przyszłości. Ostateczna forma dokumentu jest wykorzystywana w celach weryfikacji poprawności przyszłości. Ostateczna forma dokumentu jest wykorzystywana w celach weryfikacji poprawności testowanego systemu względem wymagań zdefiniowanych przez zleceniodawców.

testowanego systemu względem wymagań zdefiniowanych przez zleceniodawców.

(29)

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ówZachowywanie wyników testów

Wymagania sprzętowe i programowe Wymagania sprzętowe i programowe

Znane ograniczenia Znane ograniczenia

(30)

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 projektowy Test plan – niezbędny dokument projektowy

Cytaty

Powiązane dokumenty

Kalafior tworzą różyczki, które wyglądają podobnie jak cały owoc: każda różyczka składa się z mniejszych, te z jeszcze

Osoba pisząca reportaż wybiera autentyczne zdarzenie i udaje się na miejsce aby zebrać materiał.. Rozmawia się ze świadkami, którzy widzieli

Spotkania poszczególnych kierowników z członkami swoich zespołów będą odbywały się w tygodniowych odstępach i będą one miały miejsce w ostatnim dniu

• Wykrywanie błędów, czyli testy, których głównym celem jest wykrycie jak największej liczby błędów w programie.. • Testy statystyczne, których celem jest wykrycie

 Należy dobrać dane wejściowe tak, aby nie została wykonana żadna iteracja pętli, lub jeżeli to nie możliwe została wykonana minimalna liczba iteracji.  Należy dobrać

Spotkania poszczególnych kierowników z członkami swoich zespołów będą odbywały się w tygodniowych odstępach i będą one miały miejsce w ostatnim dniu

dekomponowane jest na tysiące różnych pojedynczych ryzyk, stąd autorki odniosły się do tego rodzaju ryzyka, który ich zdaniem jest najczęściej spotykane. w przedsiębiorstwie i

Czynności muszą być ustawione w pewnym porządku, poprzez przejście do kolejnych stanów, zapewniają wykonanie zadań, a wykonanie zadań jest warunkiem realizacji całego