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;
§ 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ł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;
§ 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;
§ 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;
§ 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;
ewao