Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Podobne dokumenty
opracowanie Iteracje Rys.1. Przepływ działań w iteracyjno-rozwojowym procesie powstawiania oprogramowania obiektowego udział testowania

Możliwe strategie tworzenia niezawodnego oprogramowania:

Maciej Oleksy Zenon Matuszyk

DOKUMENTACJA. Przeznaczenie dokumentacji użytkowej. Użytkownicy końcowi Administratorzy SKŁADNIKI DOKUMENTACJI. Synteza Dokumentacja.

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Porównanie metod i technik testowania oprogramowania. Damian Ryś Maja Wojnarowska

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

Zasady organizacji projektów informatycznych

testy dynamiczne uruchamianie programu testy statyczne analiza kodu

Języki i metodyka programowania

Inżynieria Programowania Weryfikacja i zatwierdzanie. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki.

Testowanie oprogramowania. Piotr Ciskowski

Testy statystyczne, funkcjonalne, strukturalne, statyczne; testy systemu

Wykładowca Dr inż. Zofia Kruczkiewicz. Zofia Kruczkiewicz Wyklad_INP002017_

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Wykład 7. Projektowanie kodu oprogramowania

ECDL Podstawy programowania Sylabus - wersja 1.0

Jakość w procesie wytwarzania oprogramowania

Inżynieria Programowania Weryfikacja i zatwierdzanie

Techniki komputerowe w robotyce

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Dlaczego testowanie jest ważne?

PRZEWODNIK PO PRZEDMIOCIE

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Systemy zabezpieczeń

Kontrola jakości artefaktów

Testowanie oprogramowania

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Asynchroniczne statyczne układy sekwencyjne

Sterowniki Programowalne (SP)

Ogólne zasady projektowania algorytmów i programowania

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Testowanie oprogramowania. Wykład 1 dlaczego testowanie jest niezbędne czym jest testowanie ogólne zasady testowania

Technologie informacyjne - wykład 12 -

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Podstawy Informatyki. Algorytmy i ich poprawność

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Szablon Planu Testów Akceptacyjnych

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Etapy życia oprogramowania

Pytania sprawdzające wiedzę z programowania C++

Zarządzanie pamięcią operacyjną

Algorytm. a programowanie -

Programowanie komputerów

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Metody Kompilacji Wykład 1 Wstęp

INŻYNIERIA OROGRAMOWANIA TESTOWANIE JEDNOSTKOWE 2015/2016

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Tworzenie przypadków testowych

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Aproksymacja funkcji a regresja symboliczna

Testowanie i walidacja oprogramowania

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Wykład 1 Inżynieria Oprogramowania

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Testowanie systemów informatycznych Kod przedmiotu

Optymalizacja Automatycznych Testów Regresywnych

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

- - Ocena wykonaniu zad3. Brak zad3

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Jakość oprogramowania część 2 Zapewnianie jakości oprogramowania

Podstawy programowania

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

RAPORT. Gryfów Śląski

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Budowa sztucznych sieci neuronowych do prognozowania. Przykład jednostek uczestnictwa otwartego funduszu inwestycyjnego

KARTA KURSU. Wstęp do programowania

Formalna weryfikacja oprogramowania w lotnictwie

Usługa: Audyt kodu źródłowego

PRZEWODNIK PO PRZEDMIOCIE

Podstawy programowania.

Zawód tester, czyli na czym polega testowanie. Katarzyna Łabinska Justyna Sacha - Gawlik

Procedura modelowania matematycznego

Podstawy Informatyki Języki programowania c.d.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Podstawy programowania - 1

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

MODELE I MODELOWANIE

Sukces vs porażka. Sukces. Porażka

Egzamin / zaliczenie na ocenę*

Inżynieria oprogramowania

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Wstęp. Inżynieria wymagań. Plan wykładu. Wstęp. Wstęp. Wstęp. Schemat procesu pozyskiwania wymagań

Podstawy programowania skrót z wykładów:

Transkrypt:

Wykład 8 Testowanie w JEE 5.0 (1) Autor:

1. Rola testowania w tworzeniu oprogramowania Kluczową rolę w powstawaniu oprogramowania stanowi proces usuwania błędów w kolejnych fazach rozwoju oprogramowania na drodze testowania (różne metody testowania dostosowane do stopnia rozwoju oprogramowania). W inżynierii oprogramowania poszukuje się związku między strukturą programu a możliwością powstawania pewnych błędów oraz trudnością ich wykrywania na drodze testowania.

2. Definicje Atestowanie (validation) - testowanie zgodności systemu z rzeczywistymi potrzebami użytkownika (czy zbudowano poprawny produkt). Weryfikacja (verification) - testowanie zgodności systemu z wymaganiami zdefiniowanymi w fazie określania wymagań (czy zbudowano produkt poprawnie w kolejnych fazach życia) Błąd (fault, error, defect) jest niepoprawną konstrukcją znajdującą się w oprogramowaniu, która może prowadzić do niewłaściwego działania. Błędne wykonanie - uszkodzenie (failure) to niepoprawne działanie systemu w trakcie jego pracy na skutek błędów. Takie same błędne wykonanie może pochodzić od różnych błędów. Jednak błędy nie muszą powodować błędnego wykonania programu!

Klasyfikacja błędów błędy wymagań i analizy: złe sformułowanie problemu, zaniedbanie istotnych parametrów, niewłaściwy algorytm, błędy projektowania: błędna interpretacja wymagań, błędy logiczne błędy programowe: błędy opracowania szczegółowej struktury programu: zła interpretacja wymagań dla programu, niepełność struktury programu, nie uwzględnienie przypadków szczególnych, niedostateczne dopracowanie błędów, zlekceważenie warunków czasowych błędy kodowania: syntaktyczne, zazwyczaj rozpoznawane przez kompilator, błędy merytoryczne (nieprawidłowe korzystanie z indeksów i wskaźników, zły przydział pamięci, pominięcie inicjalizacji zmiennych, pomieszanie parametrów funkcji, błąd w pętlach, zamiana wyników decyzji w instrukcjach warunkowych, błędy deklaracji typów i wymiarów danych, błędy zakresów wartości danych, błędy kompilacji i konsolidacji: błędy kompilatora, błędy w zakresach nazw itp.)

Klasyfikacja testów 1. ze względu na cel: 1.1. testy wykrywające błędy 1.2. testy statystyczne, określające przyczyny najczęstszych błędnych wykonań oraz ocena niezawodności systemu 2. ze względu na technikę wykonania: 2.1. testy dynamiczne polegające na wykonaniu fragmentu lub całego programu i porównaniu wyników jego działania z wynikami poprawnymi. Możliwe jest wykonywanie metaprogramów wykonanych w różnych fazach powstawania oprogramowania: testy funkcjonalne: Program traktowany jest jak czarna skrzynka. Znane są jedynie wymagania wobec testowanych funkcji programu. Testuje się program w wybranych podzakresach danych, traktując je jako klasy danych wejściowych testy dla każdej klasy przeprowadza się jedynie dla pewnych wybranych danych w kilku przebiegach, a wnioskuje się o działaniu programu dla całej klasy danych. strukturalne (metaprogramy): Struktura programu jest znana. Dane wejściowe należy dobrać tak, aby każda instrukcja programu była przynajmniej raz wykonana, oraz tak, aby każda instrukcja warunkowa i pętle były przynajmniej raz wykonane i raz nie wykonane (kryterium pokrycia instrukcji warunkowych). 2.2. testy statyczne: inspekcje struktury produktu, udowadnianie poprawności programu (np. logika Hoare), testowanie symboliczne (testowanie oparte na strukturze programu i analizowaniu stanu danych w wyniku wykonania programu dla różnych przebiegów sterowania programem (wykonanie lub nie wykonanie instrukcji warunkowych i pętli podczas przejścia przez program) p. następny wykład) Testy dynamiczne i statyczne mogą służyć do wykrywania różnych błędów.

Ze względu na zakres wyróżnia się następujące testy: testy jednostkowe (modułów) testy integracyjne testy systemu testy akceptacji (testy alfa i beta). Kolejność wykonania testów w procesie powstawiania oprogramowania jest zależna od przyjętej metody testowania i tworzenia oprogramowania

3. Testowalność (niezawodność) [A.Bertolino,L.Strigini:On the Use of Testability Assessment,IEEE TRANSACTION ON SOFTWARE ENGINEERING,vol. 22, no. 2, February 1996] wejście Program wyjście Stan wewnętrzny wyrocznia {dobre, złe} Wyrocznia jest następującą funkcją: Wyrocznia: D R (zbiór_wartości_stanów_programu ) {dobry, zły} gdzie D - dziedzina danych wejściowych, R - dziedzina danych wyjściowych zbiór_wartości_stanów_programu zbiór obserwowanych wartości zmiennych

Związek między liczbą przeprowadzonych Częstotliwość błędnych wykonań testów i niezawodnością 200 [1/h] 20 [1/h] 0 5000 12000 Niezawodność programu jest częstotliwością jego błędnych wykonań. Rośnie ona logarytmicznie wraz ze wzrostem liczby przeprowadzonych testów. Liczba testów

4. Ocena liczby błędów metodą posiewania błędów Na podstawie wszystkich znalezionych błędów oraz błędów sztucznie wprowadzonych do programu można oszacować liczbę błędów w programie. N - liczba wprowadzonych błędów M - liczba wszystkich wykrytych błędów X - liczba wprowadzonych błędów, które zostały wykryte Szacunkowa liczba błędów przed wykonaniem testów: B łędy calk = ( M X ) N Liczba błędów po usunięciu wykrytych, w tym wszystkich sztucznie wprowadzonych: N B ł ęd y P oz = ( M X ) ( 1 ) X Współczynnik X/N opisuje Zofia efektywność Kruczkiewicz wykonywanych testów. X

Metody posiewania błędów: losowe zakłócenia w przypisywaniu danych losowe mutacje kodu - zmiany kodu źródłowego modyfikującego sterowanie lub dane w programie losowe zakłócenia między interfejsami modułów