Języki i Techniki Programowania II. Wykład 15. Testowanie

Wielkość: px
Rozpocząć pokaz od strony:

Download "Języki i Techniki Programowania II. Wykład 15. Testowanie"

Transkrypt

1 Języki i Techniki Programowania II Wykład 15 Testowanie

2 Testy "Beware of bugs in the above code; I have only proved it correct, not tried it." Knuth

3 Typy Testów Smoke Tests - odpalenie systemu do wykonania prostego zadania, po dokonaniu jakiejkolwiek zmiany Regression Tests test czy funkcjonalność została zachowana. Problem: BARDZO DUŻO PRACY Rozwiązanie: Zautomatyzowanie procesu Continuous Build proces automatycznego budowania i uruchamiania Load Tests sprawdzanie granic maksymalnego obciążenia Stress Tests testy stabilności pod obciążeniem Performance Testing pomiary wydajności

4 Zakresy Testów Poziomy testów: Acceptance Tests Sprawdzenie zgodności ze specyfikacją (Test Scripts) System Tests Sprawdzenie poprawności współdziałania modułów Sprawdzenie różnych konfiguracji Unit Tests Najprościej: main w każdej klasie Służą jako dokumentacja Warto użyć narzędzi

5 Kategorie Testów Kategorie testów z punktu widzenia testerów: White Box testing testy developerskie Black Box Testing testy dokonane przez QA Gray Box Testing gdy testerzy mają dostęp do konfiguracji. Kategorie testów z punktu widzenia cyklu życia: Alpha Tests Głównie White Box Testing Beta Tests Gray, Black Box Testing u wybranej grupy użytkowników Gamma Tests nieformalne (świadome wady)

6 Test Driven Development Pisząc program i tak na bieżąco testujemy Wiara w to że raz poprawiony błąd się nie powtórzy nie jest niczym uzasadniona Powtarzalne czynności można i trzeba automatyzować Koszt automatyzacji zwraca się bardzo szybko

7 Test Driven Development Testy zwiększają sprawność programisty (ang. mobility) Testerzy na pewno nie stracą pracy Testy są dla ludzi, nie dla programów

8 Test Driven Development Testy zwiększają sprawność programisty (ang. mobility)... a nie dowodzą poprawności programu Testerzy na pewno nie stracą pracy Testy są dla ludzi, nie dla programów... bo przecież testy nie stanowią części produktu końcowego

9 Test Driven Development Zautomatyzowane testy: Pomagają lepiej zarządzać koncentracją (ang. flow) Stanowią naturalne rozszerzenie nawyku kompilujuruchom-pisz-kompiluj-uruchom... Pozwalają wcześnie wyeliminować trywialne błędy te najbardziej zniechęcające Powodują że przyjemne programowanie znowu staje się przyjemne Pozwalają odejść od mentalności Jak działa, nie dotykaj - nie musimy już godzić się na kompromisy - Refactor Mercilessly

10 Reguły Test Driven Development 1. You are not allowed to write any production code unless it is to make a failing unit test pass. 2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures. 3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test. 1. Zaczynamy pisanie od Unit Testu 2. Piszemy tylko tyle ile trzeba, by test mógł przejść (czyli niewiele), przechodzimy do pisania kodu produkcyjnego (brak kompilacji jest traktowany jako niepowodzenie testu) 3. Jeśli tylko test przejdzie, lub się kompiluje przechodzimy do punktu 2

11 Proces Test Driven Development 1. Stwórz test który sprawdza drobną część funcjonalności 2. Doprowadź do stanu by test się nie powiódł 3. Napisz kod który spowoduje że test przejdzie 4. Zrefaktoruj kod, doprowadzając do najprostszej możliwej struktury (Refactor Mercilessly) 5. Idź do punktu 1.

12 Proces Test Driven Development Założenia: Interfejsy oraz przekazywanie wiadomości (message passing) czyli wywoływanie metod - są ważniejsze niż kod proceduralny Testuj co się da W Praktyce: test typowej sytuacji, testy warunków brzegowych, testy sprawdzające poprawność usunięcia każdego buga Wszystkie testy muszą zawsze przechodzić

13 Ograniczenia automatyzacji testów Problemy: Interfejs użytkownika, jego funkcjonalność Interfejs WWW (istnieją do tego narzędzia, ale...) Niedeterministyczne algorytmy heurystyczne algorytmy genetyczne, wyżarzanie (annealing) etc... Systemy rozproszone Testowanie struktury danych (np. zasadniczy element inżynierii Baz Danych)

14 Problemy automatyzacji testów Dla skutecznego testowania, należy: Mieć architekturę systemu która dobrze wspiera rozdzielenie funkcjonalności oraz korzystanie z MockObject-ów (sugerowane: Inversion of Control) Nie mieć logiki w warstwie prezentacji (niekoniecznie może się udać) Zaplanować bardzo intensywne dziedziczenie testów Przemyśleć strategię testowania co chcemy testować, jakie narzędzie chcemy stosować, jaki mamy styl programowania, jaki będzie cykl życiaprojektu nie ma uniwersalnych rozwiązań

15 Ograniczenia automatyzacji testów Problemy: Interfejs użytkownika, jego funkcjonalność Interfejs WWW (istnieją do tego narzędzia, ale...) Niedeterministyczne algorytmy heurystyczne algorytmy genetyczne, wyżarzanie (annealing) etc... Systemy rozproszone Testowanie struktury danych (np. zasadniczy element inżynierii Baz Danych)

16 Automatyzacja testów Testy winny być: Atomiczne kod jest mniej kruchy przy refactoringu Izolowanie i niezależne od porządku uruchomienia Czytelne Proste w konfiguracji Szybkie

17 Automatyzacja testów Luźne uwagi: Książkowe podejście: Unit=jednostka, czyli dokładnie 1 klasa, metoda itp.... ale w praktyce jest to nie Unit Test - ale Programmer Test - test funkcjonalności, nie jednostki Prędkość wykonania testów jest kluczowa nikt nie będzie czekał 30 minut na jedną kompilację + testy Testy działają w trakcie tworzenia software'u. Nie należy jednak zapominać o wersji produkcyjnej: logi i dobrze zaprojektowane wyjątki są nadal konieczne

18 Automatyzacja testów Luźne uwagi cd.: Czy 100% pokrycie testami jest konieczne? NIE Jaka jest prędkość kodowania przy zastosowaniu testów? Pod koniec projektu może nawet być ujemna (refactoring)! Wniosek: Bądź elastyczny, nie daj się zastraszyć metodologiom i metrykom jedynym kryterium oceny jest skuteczność

19 JUnit Twórcy JUnit Kent Beck (XP) i Erich Gamma (GoF Book) Jak stworzyć własny Unit Test: Dziedziczymy po TestCase Przeciążamy runtest Tworzymy własny konstruktor, przekazując String do super(...); Wołamy asserttrue() w metodach testowych metoda testowa musi być: zaczynać się od test (Junit <4.0) publiczna bezparametrowa

20 } JUnit Tworzymy Fixture (Ustawienie) zestaw testów z okre ślonymi danymi np. Mock Objectem/Stubem Dziedziczymy po TestCase Przeci ążamy runtest Zestaw testów: Tworzymy wasny ł konstruktor, przekazuj ąc String do super(...); setup() tworzy nam dane, teardown() niszczy public static Test suite() { TestSuite suite= new TestSuite(); suite.addtest(new MoneyTest("testMoneyEquals")); suite.addtest(anothermoneytest.class); return suite;

21 Junit 4 przed każ dym testem wykonywane s ą wszystkie metody oznaczone a po teś przed wszystkim testami wykonywane s ą wszystkie metody oznaczone a po teś Klasy testów ju ż nie musz ą dziedziczy ć z TestCase Testy stanowi ą metody publiczne bezparametrowe oznaczone Mo żna kontrolowa ć czas (timeout=10) Mo żna kontrolowa ć czy test rzuci ł okre ślony wyj

22 Junit 4 import static org.junit.assert.assertequals; //Java 5 public void simplequery() throws SQLException { Statement stmt; try { stmt = conn.createstatement();resultset rs = null; rs = stmt.executequery("select 1 from data"); if(rs.next()) assertequals("1",rs.getstring(1)); } catch (SQLException e) { e.printstacktrace(); fail("problems with the database"); } }

23 JUnit public static void main(string args[]) { } Tak że: junit.textui.testrunner.run(suite()); java junit.awtui.testrunner java junit.swingui.testrunner Podajemy nazw ę klasy z testem

24 JUnit a Eclipse Eclipse 3.1+ ma wbudowanego JUnit Mo żna dodawa ć do projektu testy dla konkretnych klas Uruchamiamy je poprzez Run As... -> JUnit test

25 Mock vs Stub Mock Object Obiekt testowy pozwalaj ący sprawdzi ć interakcj ę Stub Object Obiekt testowy pozwalaj ący sprawdzi ć poprawno śc danych Fake Object prawie dziaaj ł ący obiekt Dummy Object zapchajdziura - obiekt nigdy nie wykorzystany

26 Stub Object public class OrderStateTester extends TestCase { private static String TALISKER = "Talisker"; private static String HIGHLAND_PARK = "Highland Park"; private Warehouse warehouse = new WarehouseImpl(); protected void setup() throws Exception { warehouse.add(talisker, 50); warehouse.add(highland_park, 25); } public void testorderisfilledifenoughinwarehouse() { Order order = new Order(TALISKER, 50); order.fill(warehouse); asserttrue(order.isfilled()); assertequals(0, warehouse.getinventory(talisker)); }

27 Stub Object public void testorderdoesnotremoveifnotenough() { Order order = new Order(TALISKER, 51); order.fill(warehouse); assertfalse(order.isfilled()); assertequals(50, warehouse.getinventory(talisker)); }

28 The Golden File Jak testowa ć aplikacje dziaaj ł ące z linii komend? Jeś li aplikacja ma dobrze okre ślenie wej ście i wyj ście (np. plik wej ściowy do parsera i wynik parsowania) stosujemy metod ę The Golden File - nagrany plik z wcze śniejszym wynikiem przetwarzania który test tylkoporównuje ze swoim wynikiem Za: Prawdopodobnie stworzenia najszybszy typ testów do stworzenia Przeciw: Trudne do uogólnienia na inne przypadki.pury ści mog ą powiedzie ć że Golden File to jest smell

29 Bazy Danych Jak testowa ć aplikacje korzystaj ąc ą z bazy danych? Istnieje kilka rozwi ąza ń: Korzystamy z bazy danych testowej (tak robi RoR) nale ży tylko piel ęgnowa ć jej struktur ę Korzystamy ze Stubów przechowuj ących dane w pliku konfiguracyjnym (korzystaj ąc np. z DBUnit) Tworzymy dla każ dego testu struktur ę bazy w pami ęci (korzystaj ąc np. z Hibernate oraz JavaDB/Derby) prawdopodobnie dziaaj ł ące najszybciej rozwi ązanie

30 Bazy Danych DBUnit dziedziczymy po DBTestCase public void testme() throws Exception {... IDataSet databasedataset=getconnection().createdataset(); ITable actualtable=databasedataset.gettable("table_name"); IDataSet expecteddataset = new FlatXmlDataSet(new File("expectedDataSet.xml")); ITable expectedtable = expecteddataset.gettable("table_name"); Assertion.assertEquals(expectedTable, actualtable); }

31 Pattern Mock Object Unit Test z zao ł żenia ma sprawdza ć wy łącznie drobn ą cz ęść systemu. W tym celu wszelka interakcja ze światem zewn ętrznym (pozosta łą częś ci ą systemu) musi zosta ć zast ąpiona przez MockObject MockObject powinien: by ć łatwy do stworzenia, łatwy do skonfigurowania, szybki, deterministyczny, bez interfejsu użytkownika, wy łącznie z metodami dost ępowymi ( get )

32 Pattern Mock Object NIE TESTUJ MOCKA Wniosek wszystkie elementy systemu musz ą pochodzi ć z fabryk. Żaden obiekt nie mo że tworzy ć elementów z którymi wspópracuje ł ( żeby mo żna byo ł podmieni ć go pod Mock) To si ę nazywa Inversion Of Control (IoC) istniej ą dedykowane kontenery temat wykracza znacznie poza tematyk ę wykadu ł

33 Mock Object public class OrderInteractionTester extends MockObjectTestCase { private static String TALISKER = "Talisker"; public void testfillingremovesinventoryifinstock() { //setup data Order order = new Order(TALISKER, 50); Mock warehousemock = new Mock(Warehouse.class); //setup expectations warehousemock.expects(once()).method("hasinventory").with(eq(talisker),eq(50)).will(returnvalue(true)); warehousemock.expects(once()).method("remove").with(eq(talisker), eq(50)).after("hasinventory");

34 Mock Object //exercise order.fill((warehouse) warehousemock.proxy()); warehousemock.verify(); asserttrue(order.isfilled()); } public void testfillingdoesnotremoveifnotenoughinstock() { Order order = new Order(TALISKER, 51); Mock warehouse = mock(warehouse.class); warehouse.expects(once()).method("hasinventory").withanyarguments().will(returnvalue(false)); order.fill((warehouse) warehouse.proxy()); assertfalse(order.isfilled());}

35 JMock Istniej ą narz ędzia do tworzenia Mock Object jako proxy mniej kruche ni ż rę cznie tworzone (uwaga: nie testuj Mocka) Sprawdzamy funkcjonalno ść Publisher w modelu Publish(er)/Subscribe(r) import org.jmock.*; class PublisherTest extends MockObjectTestCase { public void testonesubscriberreceivesamessage() { Mock mocksubscriber = mock(subscriber.class); Publisher publisher = new Publisher(); publisher.add((subscriber) mocksubscriber.proxy());

36 JMock final String message = "message"; //oczekiwane warunki mocksubscriber.expects(once()).method("receive").with(0eq(message) ); publisher.11publish(message); } } Jeś li oczekiwane warunki nie zostan ą spenione ł test się nie powiedzie

37 } Fluent Interface private void makenormal(customer customer) { Order o1 = new Order(); customer.addorder(o1); OrderLine line1 = new OrderLine(6, Product.find("TAL")); o1.addline(line1); OrderLine line2 = new OrderLine(5, Product.find("HPK")); o1.addline(line2); OrderLine line3 = new OrderLine(3, Product.find("LGV")); o1.addline(line3); line2.setskippable(true); o1.setrush(true);

38 Fluent Interface private void makefluent(customer customer) { customer.neworder().with(6, "TAL").with(5, "HPK").skippable().with(3, "LGV").priorityRush(); }

39 Fluent Interface Kluczem s ą settery zwracaj ą ce this customer.neworder().with(6, "TAL").with(5, "HPK").skippable().with(3, "LGV").priorityRush(); A czasem inny obiekt (dobre do podpowiedzi w IDE) mock.expects(once()).method("m").with( ); or(stringcontains("hello"),stringcontains("howdy")) W celu walidacji warto mie ć trigger table.select( name ).where( id, equal(6)).query()

40 Testowanie GUI Dla MVC mo żna testowa ć interakcj ę Modelu i Controllerów. Jeś li View ma zo ł żon ą logik ę to mo żna tworzy ć jego fragmenty i je odpytywa ć w trakcie testu. Istnieje mo żliwo ść nagrania klikni ęć i odtworzenie ich (java.awt.robot) ale jest to bardzo kruche rozwi ązanie Mo żna korzysta ć z istniej ących frameworków do testowania GUI np. Abbot

41 Testy są super!!! Niech komputer wyr ęczy Ci ę w nudnej robocie Zostaw debugger pisz testy! Rozwi ąż problem zaczynaj ąc od testów Nie daj si ę przyt łoczy ć testowaniem starego kodu: testuj tylko to co konieczne Dokumentuj testami: swój program, użyte API itp. itd. Wypracuj nawyk testowania. Odrzu ć zasad ę jak dziaa, ł nie dotykaj. Refactor Mercilessly. Znajd ź swój styl metody s ą dla ludzi, a nie ludzie dla metody

Programowanie poprzez testy z wykorzystaniem JUnit

Programowanie poprzez testy z wykorzystaniem JUnit Programowanie poprzez testy z wykorzystaniem JUnit Programowanie ekstremalne (XP) XP zaproponowano w 1999 (K. Beck: Extreme Programming Explained ) XP dedykowane jest do projektów: O małym lub średnim

Bardziej szczegółowo

Testowanie jednostkowe. Jacek Starzyński, ZETiIS PW

Testowanie jednostkowe. Jacek Starzyński, ZETiIS PW Testowanie jednostkowe Jacek Starzyński, ZETiIS PW Testowanie Po co testować? Co testować? Kiedy testować? Jak testować? Narzędzia Po co testować? Testy nie udowadniają poprawności......ale pozwalają wykryć

Bardziej szczegółowo

Sexy unit testy. czyli o kilku praktykach w testach jednostkowych

Sexy unit testy. czyli o kilku praktykach w testach jednostkowych Sexy unit testy czyli o kilku praktykach w testach jednostkowych Agenda sekund o samym sobie KILKA zdań o prezentacji kilka przemyśleń pomysłów na ułatwienie sobie życia pytań od publiczności O mnie Absolwent

Bardziej szczegółowo

Testy automatyczne. Korzystające z junit

Testy automatyczne. Korzystające z junit Testy automatyczne Korzystające z junit Cytaty Kiedy zawiesza się program konkurencji, to jest awaria. Kiedy zawiesza się własny program, to jest drobiazg. Często po awarii pojawia się komunikat typu ID

Bardziej szczegółowo

Wprowadzenie do testów jednostkowych. Marcin Dziedzic, Wiktor Żołnowski

Wprowadzenie do testów jednostkowych. Marcin Dziedzic, Wiktor Żołnowski Wprowadzenie do testów jednostkowych Marcin Dziedzic, Wiktor Żołnowski Część I: Koncepcja testów jednostkowych Co to jest test jednostkowy wg Wiki? Test jednostkowy (ang. unit test) to w programowaniu

Bardziej szczegółowo

TESTOWANIE OPROGRAMOWANIA

TESTOWANIE OPROGRAMOWANIA TESTOWANIE OPROGRAMOWANIA Uważaj na ten program ja tylko udowodniłem jego poprawność, nie testowałem go Donald Knuth Plan prezentacji 1. Testowanie wstęp 2. Refaktoryzacja 3. Pojęcia związane z testowaniem

Bardziej szczegółowo

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH Mirosław Gołda, Programista Java Agenda Kilka słów o języku Groovy Wpięcie Grooviego w projekt Springowy Testy jednostkowe

Bardziej szczegółowo

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Inżynieria Oprogramowania 2013/14 LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Hierarchia klas: TestCase klasa testująca, będąca klasą bazową dla wszystkich przypadków testowych. Zawiera przypadki testowe

Bardziej szczegółowo

JUNIT. Terminologia. Organizacja testów

JUNIT. Terminologia. Organizacja testów JUNIT Terminologia Test coverage zarkes badań testowany kawałek kodu Test lokalny local test badanie pojedynczej klasy itp. Text fixture armatura pomiarowa (wat?) punkt odniesienia do testów Integration

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania:

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

Bardziej szczegółowo

Automatyczne testowanie aplikacji Android

Automatyczne testowanie aplikacji Android Automatyczne testowanie aplikacji Android Arkadiusz Konior! 4developers!! Warszawa 7 kwietnia 2014 Agenda Testowanie Android Testing Framework Robotium Espresso monkey monkeyrunner UIAutomator Robolectric

Bardziej szczegółowo

Testowanie aplikacji Java Servlets

Testowanie aplikacji Java Servlets Borland Developer Days 2004 2-3 czerwca 2004 Testowanie aplikacji Java Servlets Bartosz Walter mailto: Bartek.Walter@man.poznan.pl Agenda Aplikacje Java Servlets TM Jak testować aplikacje internetowe?

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Tomasz Dobek. t.dobek@students.mimuw.edu.pl

Tomasz Dobek. t.dobek@students.mimuw.edu.pl Spring Framework Tomasz Dobek t.dobek@students.mimuw.edu.pl Plan prezentacji Spring z lotu ptaka Kontener Spring IoC Spring AOP Menedżer transakcji w Springu Spring DAO Testy integracyjne Podsumowanie

Bardziej szczegółowo

MVC w praktyce tworzymy system artykułów. cz. 1

MVC w praktyce tworzymy system artykułów. cz. 1 MVC w praktyce tworzymy system artykułów. cz. 1 Tworząc różnego rodzaju aplikacje natrafiamy na poważny problem utrzymania dobrej organizacji kodu przejrzystej oraz łatwej w rozbudowie. Z pomocą przychodzą

Bardziej szczegółowo

Gdzie jest moja tabela?

Gdzie jest moja tabela? Gdzie jest moja tabela? Czyli jak sobie radzić w Javie i SQL gdy zmienia się schemat bazy danych. Tomasz Skutnik 21 Listopada 2011 r UWIELBIAM piratów programować. Dziś koduję sklep internetowy. Jak rozmawiać

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Wpisany przez Piotr Klimek Wtorek, 11 Sierpień 2009 22:36 - Zmieniony Poniedziałek, 03 Czerwiec 2013 03:55

Wpisany przez Piotr Klimek Wtorek, 11 Sierpień 2009 22:36 - Zmieniony Poniedziałek, 03 Czerwiec 2013 03:55 Na początku PHP było przystosowane do programowania proceduralnego. Możliwości obiektowe wprowadzono z językiem C++ i Smalltalk. Obecnie nowy sposób programowania występuje w większości językach wysokopoziomowych

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html JAVA I BAZY DANYCH ZAGADNIENIA: wprowadzenie; JDBC; komunikacja z bazą danych; HSQLDB. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Automatyzacja procesu testowego

Automatyzacja procesu testowego Automatyzacja procesu testowego Prowadzący: Michał Zarzycki Krzysztof Prochowicz 1 Agenda 1. Wprowadzenie Omówienie pojęć związanych z automatyzacją testów 2. Porównanie testów manualnych i automatycznych

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

ZAPOZNANIE SIĘ Z TWORZENIEM

ZAPOZNANIE SIĘ Z TWORZENIEM LABORATORIUM SYSTEMÓW MOBILNYCH ZAPOZNANIE SIĘ Z TWORZENIEM APLIKACJI MOBILNEJ W J2ME I. Temat ćwiczenia II. Wymagania Podstawowe wiadomości z zakresu języka Java Podstawowa znajomość środowiska Eclipse

Bardziej szczegółowo

Zagadnienia. Inżynieria Oprogramowania

Zagadnienia. Inżynieria Oprogramowania Zagadnienia Co to jest extreme Programming (XP) Czym charakteryzują się tzw. lekkie metodyki zarządzania procesem produkcji oprogramowania Reguły i praktyki XP Dlaczego i kiedy można a w jakich przypadkach

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński Wskazówki projektowe Programowanie Obiektowe Mateusz Cicheński Przydatne zasady SOLID Wzorce struktury aplikacji MVC MVP MVVM Metody wytwarzania oprogramowania Manifest Zwinnego Wytwarzania Oprogramowania

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 6

Podstawy programowania III WYKŁAD 6 Podstawy programowania III WYKŁAD 6 Jan Kazimirski 1 Projekt: Katalog książek elektronicznych c.d. 2 Diagram przypadków użycia 3 Iteracja 1 Zaprojektowanie panelu głównego aplikacji Realizacja przypadków

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

JAX-RS czyli REST w Javie. Adam Kędziora

JAX-RS czyli REST w Javie. Adam Kędziora JAX-RS czyli REST w Javie Adam Kędziora Webservice Usługa sieciowa (ang. web service) komponent programowy niezależny od platformy i implementacji, dostarczający określonej funkcjonalności. SOAP,UDDI,XML,WSDL

Bardziej szczegółowo

Programowanie kontraktowe w Javie

Programowanie kontraktowe w Javie 20 maja 2010 Spis treści 1 Programowanie kontraktowe Geneza Założenia Kontrakty w języku Eiffel 2 Definiowanie specyfikacji Weryfikacja poprawności aplikacji 3 Wykorzystanie założeń kontraktów 4 Asercje

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Marcin Werla mwerla@man.poznan.pl PCSS/Poznań JUG Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1. Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

Bardziej szczegółowo

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy

Bardziej szczegółowo

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium Michał Sierzputowski Zautomatyzuj swoje testy automatyczne oparte o Selenium Automatyzacja Testów - wprowadzenie Dostarczanie szybkiej informacji zwrotnej Zapewnianie możliwości wprowadzania bezpiecznych

Bardziej szczegółowo

Testowanie aplikacji. Kurs języka Ruby

Testowanie aplikacji. Kurs języka Ruby Testowanie aplikacji Kurs języka Ruby Rodzaje testów Testy jednostkowe Testy funkcjonalne Testy integracyjne Testy jednostkowe (unit tests) Testy sprawdzające pojedyncze funkcjonalności (metodę, funkcję

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk Automatyzacja testów aplikacji webowych w Selenium podstawy Natalia Krawczyk Automatyzacja testów UI...... czyli symulacja operacji wykonywanych przez użytkownika na interfejsie aplikacji webowej Kiedy

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).

Bardziej szczegółowo

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Automatyzacja narzędziami open source nie musi być trudna

Automatyzacja narzędziami open source nie musi być trudna Automatyzacja narzędziami open source nie musi być trudna Change IT for progress. Jak możemy Wam pomóc? Doradztwo Realizacje Szkolenia Doradztwo Rozpoznanie potrzeb organizacji i dostosowanie narzędzi

Bardziej szczegółowo

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer Maven 2 podstawowe informacje Apache Maven jest narzędziem automatyzującym budowę oprogramowania

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński Co to jest refleksja? [1/2] Możliwość obserwowania lub manipulowania pracą programu od wewnątrz Problem Zazwyczaj niskopoziomowa struktura

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Automaty do zadań specjalnych. Olga Maciaszek-Sharma, Artur Kotow Wersja 1, 13.05.2014

Automaty do zadań specjalnych. Olga Maciaszek-Sharma, Artur Kotow Wersja 1, 13.05.2014 Automaty do zadań specjalnych Olga Maciaszek-Sharma, Artur Kotow Wersja 1, 13.05.2014 Agenda Kilka pytań do publiczności Po co się męczyć? Studium przypadku Olympus Wprowadzenie Opis rozwiązania Wnioski

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 8.1, opracowanie materiału: Piotr Nierebiński, Mateusz Turski (na podstawie materiału oryginalnego

Bardziej szczegółowo

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis, www.erudis.pl

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis, www.erudis.pl Swing Application Framework czyli tam i z powrotem Informacje o mnie Imię: Piotr Nazwisko: Kochański Praca: programista Java, PHP + kilka egzotycznych wynalazków Miejsce pracy: firma Erudis (prawdopodobnie

Bardziej szczegółowo

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Maciej Zakrzewicz PLOUG mzakrz@cs.put.poznan.pl Plan prezentacji Wprowadzenie do architektury zorientowanej na usługi Charakterystyka technologii

Bardziej szczegółowo

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Wykorzystywanie parsera DOM w programach Java i PL/SQL Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring. Zaawansowane aplikacje internetowe - laboratorium Architektura Spring. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej architekturę Spring. Aplikacja składa się z jednego

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Tester oprogramowania 2014/15 Tematy prac dyplomowych Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

Programowanie warstwy klienta w aplikacji JavaEE

Programowanie warstwy klienta w aplikacji JavaEE Programowanie warstwy klienta w aplikacji JavaEE Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej ul. Wólczanska 221/223 budynek B18, 90-924 Łódź mgr inż. Robert Ritter 7. Szablony

Bardziej szczegółowo

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Testowanie oprogramowania cz. 1

Testowanie oprogramowania cz. 1 Testowanie oprogramowania cz. 1 Marian Jureczko Agenda Rodzaje testów Techniki projektowania testów FitNesse Selenium Literatura K. Beck: Test-Driven Development by example. J. Bergin: XP Testing a GUI

Bardziej szczegółowo

Przegląd narzędzi do automatycznego testowania aplikacji internetowych. Jan Płoszczyca SKISR 2006

Przegląd narzędzi do automatycznego testowania aplikacji internetowych. Jan Płoszczyca SKISR 2006 Przegląd narzędzi do automatycznego testowania aplikacji internetowych Jan Płoszczyca SKISR 2006 Plan prezentacji Problemy przy tworzeniu serwisów Definicja zautomatyzowanego testowania Mity i fakty związane

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 13 Marcin Młotkowski 16 stycznia 2013 Plan wykładu Testowanie aplikacji w Ruby on Rails Testowanie modeli Testy funkcjonalne: testowanie kontrolerów Testy integracyjne Testowanie

Bardziej szczegółowo

Testowanie oprogramowania. Marian Jureczko

Testowanie oprogramowania. Marian Jureczko Testowanie oprogramowania Marian Jureczko Agenda Testy jednostkowe JUnit Mock Objects, EasyMock Programowanie przez testy (TDD) Testy akceptacyjne Literatura Kent Beck: Test-Driven Development by example.

Bardziej szczegółowo

Testy aplikacji webowych

Testy aplikacji webowych Testy aplikacji webowych 13 kwietnia 2016 Testy aplikacji webowych 13 kwietnia 2016 1 / 26 1 Ogólnie 2 Django Baza danych Widoki Zaawansowane 3 Selenium 4 Testy wydajno±ciowe 5 Test Driven Developement

Bardziej szczegółowo

Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja...

Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja... Java niezbędnik programisty spotkanie nr 3 Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja... 1 Definicja klasy [modyfikator] class nazwa_klasy { [modyfikator] nazwa_typu

Bardziej szczegółowo

SYSTEM MONITORINGU PARAMETRÓW WĘZŁÓW PRZECHOWYWANIA DANYCH DLA PROJEKTU KRAJOWY MAGAZYN DANYCH PODRĘCZNIK DEWELOPERA

SYSTEM MONITORINGU PARAMETRÓW WĘZŁÓW PRZECHOWYWANIA DANYCH DLA PROJEKTU KRAJOWY MAGAZYN DANYCH PODRĘCZNIK DEWELOPERA SYSTEM MONITORINGU PARAMETRÓW WĘZŁÓW PRZECHOWYWANIA DANYCH DLA PROJEKTU KRAJOWY MAGAZYN DANYCH PODRĘCZNIK DEWELOPERA 1 Spis treści: Wstęp... 3 Opis architektury systemu... 4 Architektura modułu KMD...

Bardziej szczegółowo

2. Składnia, środowisko i konwencje w Javie

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

Testowanie oprogramowania

Testowanie oprogramowania Testowanie oprogramowania 1/17 Testowanie oprogramowania Wykład 01 dr inż. Grzegorz Michalski 13 października 2015 Testowanie oprogramowania 2/17 Dane kontaktowe: Kontakt dr inż. Grzegorz Michalski pokój

Bardziej szczegółowo

Fragmenty są wspierane od Androida 1.6

Fragmenty są wspierane od Androida 1.6 W androidzie można tworzyć dynamiczne interfejsy poprzez łączenie w moduły komponentów UI z aktywnościami. Moduły takie tworzy się za pomocą klasy Fragment, która zachowuje się jak zagnieżdżone aktywności

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

Politechnika Wrocławska

Politechnika Wrocławska Politechnika Wrocławska Wydział Informatyki i Zarządzania Kurs: Projektowanie Oprogramowania Prowadzący: Dr hab. inż. Lech Madeyski Testy funkcjonalne oraz akceptacyjne w środowisku Spring Web-MVC 3.x

Bardziej szczegółowo

Podstawy języka Java. przygotował: pawel@kasprowski.pl

Podstawy języka Java. przygotował: pawel@kasprowski.pl Podstawy języka Java przygotował: pawel@kasprowski.pl Początki: PDA Star7 (*7) PDA do obsługi urządzeń domowych. (1992) (język OAK) Autorzy Javy Green Team Ojciec Javy: James Gosling Poszukiwanie zastosowania

Bardziej szczegółowo

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl Testowanie według modelu (MBT) Bogdan Bereza, Victo MBT testowanie z modelu wersja 2.1 A 1 (48) Pozdrawiam Best regards Med vänliga hälsningar Bogdan Bereza bogdan.bereza@victo.eu +48 519 152 106 Skype:

Bardziej szczegółowo

Automatyzacja Testowania w WEB 2.0

Automatyzacja Testowania w WEB 2.0 Automatyzacja Testowania w WEB 2.0 Wojciech Pająk, Radosław Smilgin XXIV Jesienne Spotkania PTI Wisła, 20-24 października 2008 Agenda Wprowadzenie do automatyzacji testowania Technologie WEB 2.0 Narzędzia

Bardziej szczegółowo

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Zaawansowane Systemy Decyzyjne Laboratorium prowadzący: Andrzej Czajkowski 1 Dostęp do Bazy Danych. 1 Cel ćwiczenia. Celem ćwiczenia

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 1 1 Język JAVA podstawy Język Java to jeden z najbardziej popularnych obiektowych języków programowania. Należy do grupy języków programowania bazujących na C i C++.

Bardziej szczegółowo

Wstęp do testowania : Szymon Ramczykowski 29.04.2014

Wstęp do testowania : Szymon Ramczykowski 29.04.2014 Wstęp do testowania Presented by: Szymon Ramczykowski Date: 29.04.2014 Kainos 10-Jun-14 Gdzie jesteśmy Co robimy Branże Technologie Kainos w Gdańsku Ponad 100 osób zatrudnionych Wiele ciekawych projektów

Bardziej szczegółowo

Wzorce prezentacji internetowych

Wzorce prezentacji internetowych Wzorce prezentacji internetowych 1. Model kontrolera widoku (Model View Controller). 2. Kontroler strony (Page Controller). 3. Kontroler fasady (Front Controller). 4. Szablon widoku (Template View). 5.

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi. Ekspert radzi mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8 Spis treści 1. Zarys rozwiązania...3 1.2 Case study...3 1.3 Wymagania...3 2. Projekt...3

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki LINQ TO XML Celem ćwiczenia jest zapoznanie się z możliwościami przetwarzania dokumentów XML na platformie.net. W toku zadania zostaną przedstawione dwie technologie: LINQ TO XML i XPath. Autor ćwiczenia:

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo