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



Podobne dokumenty
Wprowadzenie do narzędzia MAVEN

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

BUDOWANIE APLIKACJI. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Dokumentacja kompilacji źródeł aplikacji 1.0

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Platformy Technologiczne

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

CI/CD - CO TO? PO CO? JAK?

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Techniki efektywnego testowania kodu dla programistów Java (Spock

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Platformy Technologiczne

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Michał Olejnik. 22 grudnia 2009

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Załącznik 1 instrukcje instalacji

Tworzenie oprogramowania

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Maciej Oleksy Zenon Matuszyk

Narzędzia budowy aplikacji Java

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Wprowadzenie do Behaviordriven

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Testy automatyczne. Korzystające z junit

FASTER IT DRIVES BETTER BUSINESS. Daniel Spica, CEO

1. Wprowadzenie. 2. Instalacja i uruchomienie. 3. Projekt i POM

TESTOWANIE OPROGRAMOWANIA

Wprowadzenie do Doctrine ORM

Program szkolenia: Continuous Integration i Git

Java a średni (?) projekt informatyczny

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Instrukcja instalacji

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

System zarządzający grami programistycznymi Meridius

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Testowanie oprogramowania

Maven II. Jakub Wojtaszczyk Piotr Tabor

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

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

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

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

Testowanie oprogramowania. Piotr Ciskowski

Programowanie poprzez testy z wykorzystaniem JUnit

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Programista do działu testów PDT/1401/T/TBG

Programowanie Zespołowe

Architektura mikroserwisów na platformie Spring IO

Słowa kluczowe jak góry lodowe

Programowanie zespołowe

Narzędzia programistyczne - GIT

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Wymagania: umiejętność modelowania systemów informatycznych z wykorzystaniem UML. umiejętność definiowania i kreatywnego rozwiązywania problemów

Zapytanie ofertowe

Testowanie aplikacji JAVA Laboratorium 8 (Tabele w scenariuszach JBehave. Projekt z podstaw BDD oraz atrap.)

Usługa: Testowanie wydajności oprogramowania

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Feature Driven Development

Continuous Integration z ClickOnce

Programowanie Komponentowe WebAPI

OpenLaszlo. OpenLaszlo

Programowanie niskopoziomowe

Zmiany wprowadzone w pakiecie Projekt PSZ.eDOK Wersja PSZ.eDOK 6.0

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Open Source w służbie developerom

Artifactory Power Pack Pro w procesie wytwarzania oprogramowania. Artifactory Power Pack Plugins Artifactory License Control

Testowanie w procesie Scrum

Program szkolenia: Jenkins - Continuous Integration

Wstęp do testowania : Szymon Ramczykowski

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Testowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage).

Wykorzystanie platformy e-learningowej moodle do szkoleń i zarządzania

Testowanie aplikacji. Kurs języka Ruby

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Praca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Fuzzing OWASP The OWASP Foundation Piotr Łaskawiec J2EE Developer/Pentester

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

szkolenia pod drzewem Wybrane Techniki XP bnd 2008 Tomasz Włodarek. Materiał udostępniany na podstawie licencji Creative Commons (by-nc-nd) 1.00.

Transkrypt:

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 na platformę Java Wtyczki są pobierane automatycznie przy pierwszym wykorzystaniu Sposób budowy aplikacji zawarty jest w pliku POM (ang. Project Object Model) Apache Maven2 jest wydany na The Apache Software License, Version 2.0

Maven 2 źródła oraz instalacja Najnowsze źródła oraz szczegółowy opis instalacji można znaleść pod adresem: http://maven.apache.org/download.html

Maven 2 cykl Ŝycia validate - sprawdzenie, czy projekt jest poprawny i czy wszystkie niezbędne informacje zostały określone compile - kod źródłowy jest kompilowany test - przeprowadzane są testy jednostkowe package - budowana jest paczka dystrybucyjna integration-test - zbudowany projekt umieszczany jest w środowisku testowym, gdzie przeprowadzane są testy integracyjne verify - sprawdzenie, czy paczka jest poprawna install - paczka umieszczana jest w repozytorium lokalnym - może być używana przez inne projekty jako zależność deploy - paczka umieszczana jest w repozytorium zdalnym (opublikowana)

Maven 2 Project Object Model POM, czyli Project Object Model, to dokument xml kompleksowo opisujący projekt. POM nie tylko precyzuje szczegóły budowy produktu, ale też może przechowywać informacje o zespole programistów, zastosowanych systemach wspomagających rozwój oprogramowania. Szczegółowy opis tworzenia pliku pom.xml można znaleźć pod adresem: http://maven.apache.org/guides/introduction/introduction-to-thepom.html

Maven 2 budowa podstawowej aplikacji Wydajemy polecenie: mvn archetype:generate -DgroupId=pl.gadamer.maven.firstApp -DartifactId=FirstApp -Dversion=1.0 -DarchetypeArtifactId=maven-archetypequickstart I czekamy Maven zajmie się resztą

Maven 2 budowa aplikacji webowej cz I Wydajemy polecenie: mvn archetype:generate -DgroupId=pl.gadamer.maven.firstApp -DartifactId=FirstJ2EEApp -Dversion=1.0 -DarchetypeArtifactId=maven-archetype-webapp I czekamy

Maven 2 budowa aplikacji webowej cz II Stworzona zostanie taka struktura katalogów:

Maven 2 - podsumowanie Apache Maven jest narzędziem automatyzującym budowę oprogramowania na platformę Java Zarządzanie zależnościami projektu w jednym pliku Cały etap budowy aplikacji w jednym poleceniu Kompilacja, Testy, Budowa paczki Maven2 + Testy jednostkowe Wykonał Marcin Gadamer

Testy jednostkowe wszyscy testujemy Jak testujemy? System.out.println / cout / loggery: log4j debugujemy przeklikujemy się problemy: jednorazowe, niepowtarzalne, niemierzalne, brak precyzyjnego określenia miejsca, wystąpienia błędu w kodzie, ręczne, kosztowne czasowo, oddzielone od procesu budowania projektu

Rodzaje testów testy: Jednostkowe, Integracyjne, modułowe, funkcjonalne, systemowe, użytkownika, akceptacyjne, itd.

Testy jednostkowe czyli gdzie?

Testy do czego one słuŝą? procent = czesc/calosc; procent = czesc/0; x.gety().getz().dosth(); x.gety().null.dosth(); offset = +perpage; offset += perpage; if (cos > cosinnego) if (cos >= cosinnego)

Testy po co one w projekcie? znajdź błędy nim one cię znajdą, bezproblemowy refaktoring, szybsze tworzenie kodu, spokojny sen, dokumentacja, wyższa jakość kodu, testy jako sposób na design

Test jednostkowy - cechy testujemy zachowania klas, wyniki testów mierzalne, izolacja / niezależność od innych elementów systemu od innych testów prostota, wydajność, wysoka jakość, automatyczne, szybkie, powtarzalne, włączone w proces budowania projektu

Co testować? wartości spodziewane Kilka wartości brzegowe dokładnie! wartości tego na pewno nie wpisze user

Kiedy pisać test? zawsze przed napisaniem kodu (TDD Test-Driven Development) gdy pojawi się błąd, gdy dodajemy nową funkcjonalność jeżeli masz trudność z napisaniem testu, to znaczy że napisałeś zły kod!

TDD najlepsze co moŝe być!

Testy - obiekty współpracujące potrzebuję tylko żeby ten obiekt pomocniczy istniał (Dummy) potrzebuję żeby obiekt pomocniczy coś mi dał (Stub) potrzebuje sprawdzić czy testowany kod wywołuje odpowiednie metody obiektu pomocniczego (Mock / TestSpy)

Podsumowanie testów testy jednostkowe testują klasy w IZOLACJI, testy jednostkowe podstawą życia kodu, testowanie stanu to banał, testowanie zachowania bywa interesujące, obiekty współpracujące dummy, stuby, mocki

Dziękuję za uwagę Proszę o pytania/spostrzeżenia/uwagi Marcin Gadamer marcin.gadamer@gmail.com