TESTOWANIE I JAKOŚĆ OPROGRAMOWANIA – LABORATORIUM
Transkrypt
TESTOWANIE I JAKOŚĆ OPROGRAMOWANIA – LABORATORIUM
TESTOWANIE I JAKOŚĆ OPROGRAMOWANIA – LABORATORIUM NR 8 Testowanie webservice’ów Zadanie 1. Na podstawie wymagao dostarczonych przez klienta, stworzono specyfikację funkcjonalną produktu. Dokonaj inspekcji specyfikacji (zwłaszcza pod kątem zgodności z wymaganiem i możliwości tworzenia testów). W przypadku niedociągnięd specyfikacji, należy ją poprawid. Wymagania Stworzyd usługę sieciową, realizującą podstawowe funkcje arytmetyczne i trygonometryczne dla liczb dowolnej wielkości (ilośd cyfr przed przecinkiem) i precyzji (ilośd cyfr po przecinku). Dostęp do części funkcji powinien byd możliwy tylko dla wybranych użytkowników. Specyfikacja funkcjonalna WebService obliczeo dowolnej precyzji. Funkcje Usługa sieciowa będzie realizowad następujące operacje wykorzystując arytmetykę dowolnej precyzji (znaczenie operatorów jak w standardowych językach programowania) + * / % ^ (**) sin cos tan exp log Działanie Dostęp do usługi realizowany będzie wykorzystując protokół HTTP. Usługa oczekuje następujących parametrów wejściowych (w nawiasach klamrowych * + zapisano nazwy parametrów opcjonalnych) OpCode – kod operacji do wykonania (kody zostaną ustalone w późniejszym etapie produkcji) Argument0 – pierwszy argument operacji Arg1 – drugi argument operacji [UserName] – nazwa użytkownika [Haslo] – hasło użytkownika Usługa będzie zwracad wynik w postaci obiektu JSON z jednym z poniższych pól 1. ReturnValue – wartośd wyniku w przypadku powodzenia operacji 2. ErrorMessage – informacja o błędzie w przypadku niepowodzenia operacji (rodzaje/teksty informacji o błędach powinny byd zidentyfikowane i zaproponowane przez dział kontroli jakości asap) Przykład działania Request – ?OpCode=SIN&Argument1=0 Response – {ReturnValue:1} Zadanie 2. Napisad powtarzalny (zautomatyzowany) zestaw testów dla zdefiniowanej usługi sieciowej. Zadanie 3 Pokazad, że napisane testy `działają`. W tym celu stworzyd metodę która będzie symulowad żądania do usługi i nią zastąpid metodę wykonywającą rzeczywiste żądania. Zadanie 4 Pokazad, że napisane testy `działają`. W tym celu stworzyd namiastkę usługi sieciowej (.php/.aspx/.jsp/ROR/inne ) Selenium Zadanie 5. Na podstawie poniższej specyfikacji funkcjonalnej stworzono aplikację (w załączniku). W oparciu o platformę Selenium (http://seleniumhq.com) stwórz dla niej automatyczny zestaw testów. Specyfikacja Funkcjonalnośd Napisad graficzny interfejs użytkownika dla usługi zdefiniowanej w poprzednim etapie. Interfejs powinien przypominad standardowy kalkulator (jak np. kalkulator systemu Windows). Dostępne powinny byd następujące funkcje: dodawanie odejmowanie mnożenie dzielenie sinus cosinus exponent (e do potęgi x) logarytm (przy podstawie e) Interfejs powinien umożliwiad wprowadzanie dowolnie dużych liczb (ilośd cyfr przed i po przecinku). Powinien też umożliwiad cofanie ostatniej wpisanej cyfry jak i anulowanie całej operacji. Konfiguracja Aplikacja powinna mied możliwośd podania adresu usługi sieciowej (z którą GUI komunikuje się przy pomocy AJAX'a), z której będzie korzystad. Dla korzystania z funkcji sinus,cosinus,exponent i logarytm wymagane jest podanie danych uwierzytelniających (login i hasło). Dodatkowe wymagania W przypadku błędów usługi - błąd powinien zostad wyświetlony jako komunikat. Nie dopuszczalne są jakiekolwiek nieprzechwycone błędy konsoli JavaScript Jeśli naciśnięcie jakiś przycisku kalkulatora jest błędne z punktu widzenia jego stanu (np. naciśnięcie przecinka, podczas gdy wprowadzana liczba posiada już przecinek) - taki przycisk powinien byd wyłączony lub po jego naciśnięciu powinien pojawid się odpowiedni komunikat strzeżenia Pomoc Przydatne linki: Strona domowa Selenium http://seleniumhq.org/ Wtyczki do Firefox'a o Selenium IDE https://addons.mozilla.org/pl/firefox/addon/2079 o Firebug https://addons.mozilla.org/pl/firefox/addon/1843 Uwaga: w GUI jest niezamierzony błąd, który może minimalnie utrudnid sprawdzenie poprawności pisanych testów. Mianowicie GUI oczekuje odpowiedzi w formacie JSON ale w otoczeniu nawiasów. (Np. {ReturnValue:3} będzie błędnie zewaluowane i pojawi się błąd (alert("undefined")). Dla GUI poprawną odpowiedzą będzie ({ReturnValue:3}) (wówczas 3 zostanie wyświetlone na wyświetlaczu.) Zadanie 6 Zidentyfikowad możliwie najwięcej błędów w dostarczonym GUI. Zidentyfikowane błędy dokładnie opisad (w szczególności podad nazwę testu który doprowadził do znalezienia błędu). soapUI Zadanie 7. Korzystając z soapUI napisad zestaw testów dla zadanej usługi sieciowej (opis w formacie WSDL). W tym celu w szczególności należy stworzyd mock'a usługi. Pomoc http://www.soapui.org/