52-57(1).doc

(231 KB) Pobierz
55

52.Co to jest przypadek testowy, scenariusz testów? Podaj przykłady.

Przypadek testowy (ang. test case) - specyfikacja:

-stan początkowy, czyli stan testowanego systemu (lub jego fragmentu) przed testem,

-dane wejściowe,

-warunki testu,

-dane wyjściowe (oczekiwane wyniki);

-Jakość przypadku testowego :

prawdopodobieństwo znalezienia jeszcze nie wykrytego błędu;

Test zakończony powodzeniem:

WYKRYWA dotychczas nie wykryty błąd;

      [G. Myers, The Art. Of Software Testing, 1979]

Określone w rozporządzeniu ministra nauki i informatyzacji z 19 października 2005:

przypadek testowy — test akceptacyjny obejmujący pojedynczy zestaw danych wejściowych wprowadzanych do oprogramowania testowanego;

scenariusz testowy — zestaw co najmniej dwóch przypadków testowych powiązanych ze sobą w taki sposób, że danymi wejściowymi do każdego kolejnego przypadku testowego są niezmienione dane wyjściowe z poprzedzającego go przypadku testowego;
53.Co to jest macierz przykrycia testów akceptacyjnych? Podaj przykłady.

Macierz przykrycia testów akceptacyjnych jest to macierz opisująca wszystkie funkcjonalności oprogramowania oraz powiązane z nimi przypadki testowe. Pozwala na wykrycie nietestowanych funkcjonalności oraz nadmiarowych testów (nie testujących żadnej funkcjonalności).


54.Omów podstawowe schematy testów integracyjnych. Podaj przykłady.

-Skokowe - grupują wybrane (lub wszystkie) jednostki w celu ich równoczesnego przetestowania

-Przyrostowe - zakładają dołączenie do tworzonej    całości za każdym razem tylko jednej uprzednio przetestowanej jednostki:

        zstępujące (odgórne) - integruje się i testuje się komponenty wysokiego poziomu przed ukończeniem ich projektu i implementacji;

        wstępujące (oddolne) - testuje się i integruje komponenty niskiego poziomu przed ukończeniem  budowy komponentów wyższego poziomu;

-Testowanie interfejsu jest wykonywane po zintegrowaniu modułów lub podsystemów w większe systemy.

-Każdy moduł i podsystem ma zdefiniowany interfejs, który jest wywoływany przez inne komponenty programu, np.:

        Interfejsy parametryczne,

        Interfejs w pamięci dzielonej,

        Interfejsy proceduralne,

        Interfejsy z przekazywaniem komunikatów;

-Celem testowania interfejsu jest wykrycie usterek, które pojawiły się w systemie z powodu błędów w interfejsach lub nieprawdziwych założeniach o interfejsach.


55.Jaka jest istota konstrukcyjnych wzorców projektowych? Przedstaw przykład wzorca konstrukcyjnego.

- służą do pozyskiwania obiektów;

- szczegółowo opisują jaki obiekt może zostać stworzony;

- uniezależniają kod od typów tworzonych obiektów (zależne jest to tylko od parametrów konfiguracyjnych);

 

Przykłady:

-Singelton-

-Zapewnia powołanie tylko jednej instancji obiektu w całej aplikacji i kontrolowany dostęp;

-Obiekt powołany wg tego wzorca jest globalnym punktem dostępu do instancji danej klasy ;

-Wzorzec może być zmodyfikowany do tworzenia określonej liczby instancji danej klasy (>1);

-Funkcje wzorca: utworzenie obiektu, inicjalizacja obiektu, punkt dostępu, modyfikacja obiektu;

-Prostszym rozwiązaniem jest: globalnie dostępna zmienna statyczną przechowująca referencję do obiektu;

-metoda fabrykująca;

              Fabryka nie może przewidzieć, jakie obiekty i w jaki sposób tworzyć;

Klient zna tylko interfejs klasy abstrakcyjnej;

Informacje o sposobie i odpowiedzialność za tworzenie obiektu znajdują się w implementacjach „metody tworzącej” klas pochodnych;

Można tworzyć domyślny produkt, ale też dać użytkownikowi możliwość podstawienia swojej wyspecjalizowanej wersji;

-fabryka abstrakcyjna;

-fabryka;

              -Fabryka nowych obiektów w zdefiniowanych klasach wzorcowych;

Wszystkie klasy wzorcowe mają metody o tej samej nazwie, ale o innych realizacjach;

Zaleta – możliwość modyfikowania klas wzorcowych (tworzących) w jednym miejscu projektu;

Popularne wersje Fabryki: Metoda Fabrykująca, Fabryka Abstrakcji, Budowniczy, Prototyp;

-budowniczy;

-prototyp.

 

Podsumowanie:

Singleton – pojedyncza instancja obiektu;

Metoda Fabrykująca – tworzenie obiektów w klasach pochodnych;

Fabryka Abstrakcyjna – tworzenie rodzin obiektów bez wydzielonych klas fabryk;

Budowniczy – ukrycie szczegółów tworzenia za interfejsem zarządcy;

Prototyp – tworzenie kopii na podstawie w pełni zainicjalizowanej instancji;

 


56.Jaka jest istota strukturalnych wzorców projektowych? Przedstaw przykład wzorca strukturalnego.

§         Stosowany do łączenia obiektów w większe struktury;

§         Zastosowanie np. w implementacji złożonego interfejsu użytkownika;

§         Przykłady:

§         Fasada,

§         Ujednolicony i prostszy interfejs do struktury złożonych podsystemów;

§         Separacja klienta od złożonych podsystemów;

§         Wybór odpowiedniej struktury dla żądania klienta;

§         Możliwości zmian w ukrywanych podsystemach;

§         Przykłady:

§         w bibliotekach Javy: klasy pakietu java.sql (Statement, ResultSet);

§         wejście usług w Service Oriented Architecture (SOA);

§         Adapter,

§         Konwertuje (dopasowuje) interfejsy jednej klasy do interfejsu innej klasy;

§         Umożliwia klasom o różnych interfejsach współpracę w jednym programie;

§         Niewielka elastyczność – adaptacji podlega tylko jedna klasa (Adaptee), bez jej podklas;

§         Zmiana zachowania klasy Adapter może zmienić zachowanie klasy dostosowywanej Adaptee;

§         Dwa sposoby realizacji:

§         dziedziczenie,

§         kompozycja;

§         Most,

§         Kompozyt,

§         System złożony z podsystemów o strukturze drzewiastej ( reprezentacja związku „całość-część”);

§         Wspólny interfejs dla klas węzłów i liści – ujednolicone widzenie kontenerów i obiektów składowanych;

§         Łatwo rozszerzalny o nowe podsystemy implementujące (określony interfejs);

§          

§         Przykłady:

§         Przykład w bibliotekach Javy: kontenery (Panel, JComponent, …);

§         Dekorator,

§         Waga Piórkowa,

§         Zastąpienie wielu obiektów jednym współdzielonym z opisem stanu zubożonym w porównaniu z pierwotnym obiektem;

§         Zamiast przechowywać wewnątrz atrybuty stanu, obiekty dostają wartości z zewnątrz jako parametry wywołania metod;

§         Zalety:

§         Ograniczenie liczby tworzonych instancji obiektów;

§         Przesunięcie części danych z obiektu do przekazywanych parametrów metod;

§         Wady:

§         Zwiększony koszt wywoływania metod obiektów;

§         Uzyskuje się przyspieszenie programów operujących na wielu niezbyt złożonych obiektach;

§         Przykład: zbiory obiektów „znaków literowych”;

§         Proxy;

57.Jaka jest istota czynnościowych wzorców projektowych? Przedstaw przykład wzorca czynnościowego.

§         W celu definiowania komunikacji pomiędzy obiektami;

§         Pomagają kontrolować przepływ danych w złożonym programie;

§         Przykłady:

§         Iterator,

§         Upraszcza przemieszczanie po kolekcji danych (np. liście), z wykorzystaniem standardowego interfejsu;

§         Nie wymaga znajomości wewnętrznej struktury kolekcji danych;

§         Umożliwia równoczesne przeglądanie kilku kolekcji;

§          

§         Przykład:

§         W bibliotekach Javy: iterator w kolekcjach z pakietu java.util;

§         Łańcuch Odpowiedzialności,

§         Zestaw klas obsługuje żądanie w określonej kolejności;

§         Żądanie jest przekazywane pomiędzy klasami w określonym łańcuchu;

§         Czasami ostatni obiekt łańcucha obsługuje wszystkie żądania;

§          

§         Przykład:

§         Realizacja w Javie: Frame -> Panel -> Component;

§         Stan,

§         Tworzy obiekty pochodne z bazowej klasy State dla każdego stanu, w którym może znaleźć się aplikacja;

§         Przełączanie pomiędzy obiektami stanu, gdy zmieni się stan aplikacji;

§         Wraz ze zmianą stanu i tym samym obiektu może zmienić się zachowanie obiektu (inne implementacje metod);

§         Eliminuje złożone instrukcje warunkowe (np. switch) w metodach obiektu;

§         Wada: powstaje wiele małych klas;

§         Zaleta: upraszcza program;

§         Mediator,

§         Mediatora stanowi „zarządcę obiektów”;

§         Wprowadza luźniejsze powiązania pomiędzy klasami – obiekty znają Mediatora a nie koniecznie inne obiekty;

§         Zmiany stanu obiektów są za jego pośrednictwem (odpowiednich metod) propagowane do zainteresowanych obiektów;

§         Często jest specjalizowany dla jednego projektu;

§         Obserwator,

§         Strategia;

§         Potrzeba kilku wariantów algorytmu;

§         Wybór określonego wariantu poprzez powołanie obiektu pochodnego do zdefiniowanego interfejsu  bazowego lub klasy abstrakcyjnej;

§         Każda wersja algorytmu jest implementowana w osobnej klasie;

§         Zalety:

§         algorytm może używać danych, których klient nie zna;

§         hermetyzacja algorytmów w oddzielnych klasach pozwala na ich modyfikację niezależnie od kontekstu;

§         to rozwiązanie zastępuje instrukcje wyboru lub warunkowe;

 

Zgłoś jeśli naruszono regulamin