InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: 01.08.2005 – 31.07.2007 Testowanie akceptacyjne.

Slides:



Advertisements
Podobne prezentacje
PREZENTACJA SYSTEMU eDokumenty
Advertisements

Migrating Desktop Podsumowanie projektu
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Marcin Piotrowski. Najpopularniejszymi darmowymi przeglądarkami są Internet Explorer, Opera, Mozilla Firefox, Google Chrome.
Rodzaje testów oprogramowania
Programowanie w Środowiskach Zintegrowanych
Bezpieczeństwo aplikacji WWW
WEB SERVICE Stefan Rutkowski.
Support.ebsco.com Przewodnik Wyszukiwanie zaawansowane w ekranie EBSCOhost z wieloma frazami.
Support.ebsco.com Przewodnik Czytanie artykułu EBSCOhost.
Wyszukiwanie błędów Testowanie programów w celu wyszukania błędów.
FIT Środowisko Testów Integracyjnych
SOS SYSTEM OBSŁUGI SZKOŁY
Projektowanie Aplikacji Komputerowych
Arkadiusz Twardoń ZTiPSK
Maciej Gabor, SCR 2002 Testowanie eXtremalne i narzędzia xUnit M. Gabor, J. Nawrocki, B. Walter Instytut Informatyki Politechnika Poznańska.
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Wzorce projektowe w J2EE
Interaktywny serwer WWW zrealizowany na platformie mikrokontrolera
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Analiza, projekt i częściowa implementacja systemu obsługi kina
Konfiguracja kont w programie Adobe Dreamweaver
Instrukcja MILO moduł klienta.
Google Testing Radosław Smilgin, , TestWarez.
Autor: Kamil Szafranek
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
Internetowe surfowanie
Specjalizacja "Dziennikarstwo On-line„ asynchroniczny JavaScript i XML – AJAX Część 6 Prowadzący: Dariusz Jaruga
Platforma analizy wizualnej - VisNow Szkolenie Platforma analizy wizualnej - VisNow Szkolenie 15 maja 2013, Sesja sprawozdawcza KDM Krzysztof S. Nowiński.
Sieć oparta o serwer Ubuntu 12.10
Integracja iStore z programem Subiekt GT
Zawansowane techniki programistyczne
Jak dodać funkcjonalność płatności internetowej PayU do strony WWW
Poznaj… nowy, ulepszony… e-katalog.
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Projektowanie stron WWW
Aplikacje internetowe
Diagramy przypadków użycia ALINA SUCHOMSKA. Przypadki użycia systemu  technika wyznaczania funkcjonalnych wymagań systemu  opisują typowe interakcje.
Nieograniczone źródło informacji
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1.
Jak aplikować w Programie Europa dla Obywateli Jak aplikować w Programie Europa dla Obywateli.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Projekt z Technologii Internetowych
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Podstawy języka skryptów
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Znajdowanie pokoju i wchodzenie do niego Skorzystaj z funkcji wyszukiwania programu Lync w celu znalezienia pokojów, do których masz dostęp. 1.W oknie.
GENERATOR WNIOSKÓW O DOFINANSOWANIE. Generator wniosków o dofinansowanie umożliwia przygotowywanie i edycję wniosków o dofinansowanie. Jest to pierwszy.
EBSCOhost Collection Manager Konto osoby proponującej książki do zakupu Przewodnik support.ebsco.com.
EBSCOhost Collection Manager Konto osoby akceptującej zakupy książek Przewodnik support.ebsco.com.
Portal edukacyjny J A V A S C R I P T JĘZYK PROGRAMOWANIA STRON HTML Opracowała: Anna Śmigielska.
Przewodnik Bazy Business Source Wyszukiwanie podstawowe
Przewodnik Tworzenie powiadomień dotyczących wyszukiwania w EBSCOhost
EBSCOhost Mobile Przewodnik
Aplikacje Baz Danych ASP.NET
HTML.  Wprowadzenie  Protokół HTTP  Język HTML  Definicja typu dokumentu  Nagłówek strony  Formatowanie treści dokumentu  Definiowanie struktury.
 Podstawowy składnik.NET Framework  Technologia tworzenia w pełni dynamicznych stron internetowych działających po stronie serwera  Zorientowanie na.
Temat: Tworzenie bazy danych
1. Promotor i skład zespołu menedżerskiego 2. Rozwiązywany problem 3. Wymagania 4. Wybór zespołu programistów 5. Narzędzia / Technologie 6. Przypadki.
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Innowacyjne metody.
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
WOLTERS KLUWER S.A. NAJWIĘKSZY WYDAWCA PUBLIKACJI PRAWNICZYCH I BIZNESOWYCH NA RYNKU POLSKIM.
DynaMed Plus Przewodnik
AJAX w PHP.
Sieci komputerowe Usługi sieciowe 27/09/2002.
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5
Aplikacje i usługi internetowe
Korespondencja elektroniczna
Czy mój serwis internetowy jest dostępny dla wszystkich?
Zapis prezentacji:

InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Testowanie akceptacyjne Bartosz Walter Marcin Werla Szkolenie finansowane ze środków Europejskiego Funduszu Społecznego (75%) i budżetu państwa (25%) w ramach Zintegrowanego Programu Operacyjnego Rozwoju Regionalnego

Model V Specyfikacja wymagań Kodowanie Projekt Testy integracyjne Testy akceptacyjne Testy jednostkowe

Model V Specyfikacja wymagań Testy akceptacyjne Projekt Testy integracyjne Kodowanie Testy jednostkowe Klient

Programowanie Ekstremalne Programowanie sterowane testami Testy akceptacyjne: klient Automatyczne testy akceptacyjne: klient + tester Pomiary postępu bazujące na testach akceptacyjnych

Programowanie Ekstremalne Testy akceptacyjne jako miara postępów

Rodzaje testów Sum=0; for (i=0; i<n; i++) Sum+= a[i]; White box testing (testowanie szklanej skrzynki) Black box testing (testowanie czarnej skrzynki)

Testy akceptacyjne  Testy akceptacyjne są wykonywane przez klienta lub w jego imieniu przed akceptacją oprogramowania  Testy akceptacyjne nie mają na celu znalezienia błędów w oprogramowaniu  Służą do udowodnienia, że aplikacja działa w założony sposób

Na czym polega automatyzacja testowania? To proste! 1. Kup automat testujący 2. Nagraj testy. 3. Odtwarzaj je, kiedykolwiek będziesz miał ochotę. „Just as there is more to software design than knowing a programming language, there is more to automating testing than knowing a testing tool.” -- M. Fewster & D. Graham

Testy ręczne czy automatyczne? Pracochłonność automatyzacji testów: 2 – 10 razy tyle co ręczne wykonanie testów (!)

Automatyzacja wykonywania testów  Skrypty automatyczne nie są podobne do skryptów ręcznych  Nie automatyzuj testowania przez proste nagrywanie testów  Automatyczne wykonywanie z ‘ręczną’ weryfikacją?  Ile porównywać (wszystko czy tylko część)?  Dynamiczne porównywanie i porównywanie po wykonaniu  Wyniki porównania automatycznego muszą być ręcznie sprawdzane  Testy uruchomione drugi raz – zawodzą

Czynności testowania Zidentyfikuj warunki testowania (‘co’ testować) i priorytety Zaprojektuj scenariusze testowe (‘jak’ testować) Zbuduj przypadki testowe (skrypty, dane etc.) Przeprowadź testy Porównaj faktyczne wyniki z oczekiwanymi

Przykład scenariusza testowego 1. Wprowadź frazę "Zbigniew Herbert" do pola wyszukiwania Wyświetlona zostaje lista pasujących książek 2. Wybierz pozycję piątąWyświetlona zostaje strona z opisem książki 3. Kliknij klawisz "Dodaj do koszyka" Wyświetlona zostaje ponownie lista z umieszczoną książką w koszyku 4. Kliknij klawisz "Twój koszyk"Wyświetlona zostaje zawartość koszyka z jedną pozycją 5. Wprowadź wartość "2" w polu "Liczba", kliknij klawisz "Przelicz" Wartość zakupu wynosi dwa razy więcej 6. Kliknij klawisz usuńWyświetlony zostaje pusty koszyk

Testowanie aplikacji internetowych Serwer WWW HTML Klient HTTP HttpUnit, jWebUnit Klient odwołuje się jedynie do interfejsu WWW

jWebUnit  Wysokopoziomowa biblioteka służąca do testowania aplikacji internetowych po stronie klienta  Uproszczone API w stosunku do HTTPUnit  Możliwość wykorzystania HTTPUnit  Testy nie zależą od implementacji serwera  Interfejsem komunikacyjnym jest HTTP 

Architektura HttpUnit/jWebUnit Web Server HTML Klient HTTP Parser HTML TestCase Odpowiedź Żądanie HttpUnit

Przypadek testowy jWebUnit YYYTest.java + testXXX() + tearDown () + setUp () Klient getTestContext().setBaseUrl(URL aplikacji) beginAt(dokładny URL); Wskazanie adresu aplikacji

Przypadek testowy jWebUnit FormTest.java + testXXX() + tearDown () + setUp () Klient clickLinkWithText("Formularz"); setFormElement("imie", "Janek"); submit(); assertTextPresent("Wiek: 20 lat"); assertLinkWithTextPresent("Powrót"); Nawigacja i asercje

 assertFramePresent (ID)  assertWindowPresent (ID)  assertTitleEquals(oczekiwany)  assertTextPresent(tekst)  assertLinkPresent(ID)  assertLinkPresentWithText(ID)  assertLinkPresentWithImage(ID) OGÓLNE Asercje jWebUnit  assertFormPresent (ID)  assertFormElementPresent (ID)  assertFormElementPresentWithLabel(etykieta)  assertFormElementEquals(oczekiwany, faktyczny)  assertCheckboxSelected(ID)  assertButtonPresent(ID)  assertRadioOptionPresent(ID)  assertOptionsEqual(nazwa, wzorce[]) FORMULARZETABELE  assertTablePresent (ID)  assertTableEquals(ID, tabela[][])  assertTextInTable (ID, tekst)  assertTableRowsEqual(ID, wierszPoczątkowy, oczekiwana)

HttpUnit  Złożona biblioteka do testów akceptacyjnych aplikacji internetowych  Wbudowany parser HTML  Wbudowane wsparcie dla JavaScript (rhino)  Integracja z jWebUnit 

WebRequest, WebResponse  WebRequest  Obiekt reprezentujący żądanie HTTP  Specyficzne podklasy obsługują metody GET, POST & PUT  WebResponse  Obiekt reprezentujący odpowiedź HTTP  Można go przetwarzać zarówno jako zwykły tekst lub DOM WebConversation wc = new WebConversation(); WebRequest request = new GetMethodWebRequest( " WebResponse response = wc.getResponse(request);

Wybrane metody klasy WebRequest WebRequest  void setParameter (String name, String value)  void setParameter (parameterName, UploadFileSpec[] files)  void setHeaderField(String name, String value)  java.util.Dictionary getHeaders()  void selectFile(String name, File file)  java.net.URL getUrl()

Wybrane metody klasy WebResponse WebResponse  String getContentType()  org.w3c.dom.Document getDOM()  HTMLElement[] getElementsWithName(String name)  HTMLElement getElementWithId(String id)  WebForm getFirstMatchingForm (HTMLElementPredicate predicate, Object criteria)  WebLink getFirstMatchingLink (HTMLElementPredicate predicate, Object criteria)  WebTable getFirstMatchingTable (HTMLElementPredicate predicate, Object criteria)

Nawigacja: Linki HTML WebLink getLinkWithText() link.click() link.mouseOver() Do formularza WebRequest link.getRequest()

Nawigacja: Tabele HTML WebTable[] getTables() table.getCellAsText(row, col) table.getRowCount() table.getColumnCount() ala34

Nawigacja: Formularze HTML WebForms[] getForms() Imię: form.getMethod() Wyślij form.submit() form.getAction() form.setParameter()

Księgarnia elektroniczna

Zadanie Napisz testy akceptacyjne z wykorzystaniem bibliotek jWebUnit i HttpUnit, które zweryfikują podany przykład scenariusza Zakup książki 1. Klient wyszukuje książki dostępne w księgarni. 2. Klient wkłada do koszyka wybraną książkę. 3. Klient przegląda zawartość koszyka i zwiększa liczbę egzemplarzy 4. System aktualizuje cenę zakupu 5. Klient zwiększa liczbę egzemplarzy, tak aby kwota przekroczyła 150 PLN 6. System wyświetla informację o gratisowej dostawie 7. Klient klika klawisz "Do kasy" 8. System przekierowuje formularz na bezpieczne połączenie https Wyjątki 3a. Klient chce rozważyć możliwość zakupu jeszcze jednej książki. 3a1. Następuje powrót do kroku 1. 3b. Klient chce zrezygnować z zakupu książki, którą ma w koszyku. 3b1. Klient usuwa książkę z koszyka

Podsumowanie Testy akceptacyjne są tworzone pod dyktando klienta Testy akceptacyjne są b.dobrym miernikiem postępów Testy akceptacyjne pasują do przypadków użycia Testy akceptacyjne można automatyzować, ale trzeba uważać

Q&A