30
Testowanie Testowanie oprogramowania oprogramowania Marcin Jerzak Marcin Jerzak Piotr Fisz Piotr Fisz

Testowanie oprogramowania

Embed Size (px)

DESCRIPTION

Testowanie oprogramowania. Marcin Jerzak Piotr Fisz. Testowanie oprogramowania. Jest to proces związany z wytwarzaniem oprogramowania. Celem testowania jest wykrywanie błędów oraz badanie niezawodności systemu. - PowerPoint PPT Presentation

Citation preview

Page 1: Testowanie oprogramowania

Testowanie Testowanie oprogramowaniaoprogramowania

Marcin JerzakMarcin JerzakPiotr FiszPiotr Fisz

Page 2: Testowanie oprogramowania

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

Page 3: Testowanie oprogramowania

Cele testowania:Cele testowania:

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

Page 4: Testowanie oprogramowania

BłędyBłę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.

Page 5: Testowanie oprogramowania

WeryfikacjaWeryfikacja

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

Page 6: Testowanie oprogramowania

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

Page 7: Testowanie oprogramowania

PrzeglądPrzeglą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”).

Page 8: Testowanie oprogramowania

AudytAudyt

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

Page 9: Testowanie oprogramowania

InspekcjeInspekcje

► 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 autorami programu w celu znalezienia błędów.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 ludzie. Dodatkowym minusem jest utrudniona analiza kosztów i zysków.utrudniona analiza kosztów i zysków.

Page 10: Testowanie oprogramowania

InspekcjeInspekcje

► 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 odtestów od 5 do 10 razy 5 do 10 razy

Page 11: Testowanie oprogramowania

Rodzaje testówRodzaje testów

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

► Testy statystyczne – wykrywanie najczęściej Testy statystyczne – wykrywanie najczęściej statystycznie występujących błędów oraz statystycznie występujących błędów oraz ocena niezawodności systemuocena 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 poprawnymipoprawnymi

► Testy statyczne – analiza koduTesty statyczne – analiza kodu

Page 12: Testowanie oprogramowania

Fazy testowaniaFazy testowania

► Testy modułówTesty modułów► Testy systemuTesty systemu► Testy akceptacjiTesty akceptacji► Wydajność systemuWydajność systemu► Interfejs systemuInterfejs systemu► Własności operacyjne systemuWłasności operacyjne systemu► Testy zużycia zasobówTesty zużycia zasobów► Zabezpieczenie systemuZabezpieczenie systemu► Przenoszalność systemuPrzenoszalność systemu► Niezawodność programuNiezawodność programu► Odtwarzalność oprogramowaniaOdtwarzalność oprogramowania

Page 13: Testowanie oprogramowania

Fazy testowaniaFazy testowania

► Bezpieczeństwo oprogramowaniaBezpieczeństwo oprogramowania►Kompletność i jakość założonych funkcji

systemu►Nie przekraczanie ograniczeń►Modyfikowalność oprogramowania►Obciążalność oprogramowania►Skalowność systemu►Akceptowalność systemu► Jakość dokumentacji

Page 14: Testowanie oprogramowania

Testowanie na zasadzie czarnej Testowanie na zasadzie czarnej skrzynkiskrzynki

►Metoda polega na testowaniu bez sprawdzania Metoda polega na testowaniu bez sprawdzania wnętrza programuwnętrza programu

► Powinno się testować dla całego zakresu Powinno się testować dla całego zakresu danychdanych

►Dane powinno się podzielić na takie, które Dane powinno się podzielić na takie, które mogą dawać podobne błędymogą dawać podobne błędy

► Plusem jest możliwości pokazania brakujących Plusem jest możliwości pokazania brakujących funkcjifunkcji

Page 15: Testowanie oprogramowania

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

►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 Często jest wymagane przygotowanie danych testowych spełniających nasze danych testowych spełniających nasze wymaganiawymagania

►Minusem jest brak możliwości pokazania Minusem jest brak możliwości pokazania brakujących funkcjibrakujących funkcji

Page 16: Testowanie oprogramowania

OkreOkreślenie niezawodności ślenie niezawodności oprogramowaniaoprogramowania

►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 Dostępność. Jest to

prawdopodobieństwo dostępności prawdopodobieństwo dostępności systemu w danej chwili.systemu w danej chwili.

Page 17: Testowanie oprogramowania

Oszacowanie niezawodnościOszacowanie 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.

Page 18: Testowanie oprogramowania

Wykrywanie błędówWykrywanie 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ą Testy strukturalne – zakładają znajomość sposobu implementacji znajomość sposobu implementacji testowanych funkcjitestowanych funkcji

Page 19: Testowanie oprogramowania

Testy funkcjonalneTesty 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.

Page 20: Testowanie oprogramowania

Testy strukturalneTesty 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.

Page 21: Testowanie oprogramowania

Co używamy do testowania:Co używamy do testowania:

►Programy uruchamiające (debuggers)Programy uruchamiające (debuggers)

►Analizatory przykrycia koduAnalizatory przykrycia kodu

►Programy porównująceProgramy porównujące

Page 22: Testowanie oprogramowania

Testy statyczneTesty statyczne

► Testy statyczne pTesty statyczne polegaolegają na analizie kodu bez ją na analizie kodu bez jego uruchamiania.jego uruchamiania.

► Dowody poprawności – praktycznie nie używaneDowody 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.

Page 23: Testowanie oprogramowania

Testy systemuTesty 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.

Page 24: Testowanie oprogramowania

Testy pod obciążeniem i Testy pod obciążeniem i odpornościoweodpornościowe

►Testy obciążeniowe umożliwiają Testy obciążeniowe umożliwiają zbadanie zachowania, wydajności i zbadanie zachowania, wydajności i niezawodności systemu podczas pracy niezawodności systemu podczas pracy pod pełnym lub nadmiernym pod pełnym lub nadmiernym obciążeniem.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.

Page 25: Testowanie oprogramowania

Testy akceptacyjneTesty 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 realizowane na zamówienie system przekazywany jest do przetestowania przyszłemu przekazywany jest do przetestowania przyszłemu użytkownikowi po stronie zleceniodawcy. Takie użytkownikowi po stronie zleceniodawcy. Takie testy są nazywane testami alfa. testy są nazywane testami alfa.

►Dla oprogramowania sprzedawanego rynkowo Dla oprogramowania sprzedawanego rynkowo przewidziane są testy polegające na przewidziane są testy polegające na nieodpłatnym przekazaniu pewnej liczby kopii nieodpłatnym przekazaniu pewnej liczby kopii systemu grupie użytkowników. Testy te są systemu grupie użytkowników. Testy te są nazywane testami beta.nazywane testami beta.

Page 26: Testowanie oprogramowania

Czynniki sukcesuCzynniki 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ściniezawodności►Właściwa motywacja testerówWłaściwa motywacja testerów►Poprawa znalezionych błędówPoprawa znalezionych błędów►Oszacowanie niezawodności i kosztów Oszacowanie niezawodności i kosztów

konserwacji.konserwacji.

Page 27: Testowanie oprogramowania

Standardy w testowaniuStandardy 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ć.

Page 28: Testowanie oprogramowania

Standardy w testowaniuStandardy w testowaniu► Test PlanTest 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 SpecificationTest 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 SpecificationTest 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 SpecificationTest 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 ReportTest 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 LogTest 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 ReportTest 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 ReportTest 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.

Page 29: Testowanie oprogramowania

Test plan - zawartośćTest plan - zawartość► OpisOpis► Odwzorowanie testów na wymaganiaOdwzorowanie testów na wymagania

(ang. requirements traceability)(ang. requirements traceability) Weryfikacja pokrycia wymagańWeryfikacja pokrycia wymagań

► Wyszczególnienie co będzie podlegać testowaniuWyszczególnienie co będzie podlegać testowaniu

► Plan czasowyPlan czasowy► Procedury przeprowadzania testówProcedury przeprowadzania testów

Zachowywanie wyników testówZachowywanie wyników testów

► Wymagania sprzętowe i programoweWymagania sprzętowe i programowe► Znane ograniczeniaZnane ograniczenia

Page 30: Testowanie oprogramowania

PodsumowaniePodsumowanie

►Weryfikacja != walidacjaWeryfikacja != walidacja►Cel testowania: stwierdzenie błędów w Cel testowania: stwierdzenie błędów w

systemiesystemie►Testowanie musi być uwzględnione od Testowanie musi być uwzględnione od

początku w planach projektupoczątku w planach projektu Również w alokacji zasobów do projektuRównież w alokacji zasobów do projektu Test plan – niezbędny dokument Test plan – niezbędny dokument

projektowyprojektowy