Modulo II Qualidade de Software com Maven



Similar documents
Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911

Maven or how to automate java builds, tests and version management with open source tools

Build management & Continuous integration. with Maven & Hudson

Software infrastructure for Java development projects

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

Continuous Integration Multi-Stage Builds for Quality Assurance

SA4 Software Developer Survey Survey Specification v2.2

SMZ. SocialMedia. Z olutions

Continuous Integration For Fusion Middleware

Lancelot Bertrand Expert Java J2ee

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Java Software Quality Tools and techniques

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Maven 2 in the real world

Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise. #jenkinsconf. Jenkins User Conference Boston #jenkinsconf

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Software Construction

Rapid Application Development. and Application Generation Tools. Walter Knesel

Continuous Integration

CI/CD Cheatsheet. Lars Fabian Tuchel Date: 18.March 2014 DOC:

Software project management. and. Maven

Sonatype CLM for Maven. Sonatype CLM for Maven

Content. Development Tools 2(63)

Modulo II Software Configuration Management - SCM

Upping the game. Improving your software development process

Continuous Integration

Professional Java Tools for Extreme Programming. Ant, XDoclet, JUnit, Cactus, and Maven

Integrating your Maven Build and Tomcat Deployment

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Installation Guide of the Change Management API Reference Implementation

BIRT Application and BIRT Report Deployment Functional Specification

Operations and Monitoring with Spring

Meister Going Beyond Maven

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

Cross-domain Identity Management System for Cloud Environment

Software project management. and. Maven

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

Introduction to Programming Tools. Anjana & Shankar September,2010

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Java Forum Nord Dirk Mahler

Jenkins TestLink Plug-in Tutorial

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

An Introduction to Globus Toolkit 3

OpenSSO: Simplify Your Single-Sign-On Needs. Sang Shin Java Technology Architect Sun Microsystems, inc. javapassion.com

Continuous Delivery. Alejandro Ruiz

Software Quality Exercise 2

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

SOFTWARE DEVELOPMENT BASICS SED

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Maven2 Reference. Invoking Maven General Syntax: Prints help debugging output, very useful to diagnose. Creating a new Project (jar) Example:

HELIO Storage Service Developers Guide Draft

How to Easily Integrate BIRT Reports into your Web Application

Hudson configuration manual

Triple-E class Continuous Delivery

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

Jenkins: The Definitive Guide

Continuous Integration: Put it at the heart of your development

Developer, team leader

Finally, an agile test strategy (that works)! AS OW Test Model, Objectware

<Insert Picture Here> Oracle Policy Automation System Requirements

CI:IRL. By Beth Tucker Long

About the Tutorial. Audience. Prerequisites. Disclaimer & Copyright. Jenkins

Security Testing of Java web applications Using Static Bytecode Analysis of Deployed Applications

Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon

SOA Solutions & Middleware Testing: White Paper

Open Source Tools. The Magazine for Professional Testers. December 2010

Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.

Delivering Quality Software with Continuous Integration

Project deliverable: Enterprise SOA Showcase initial version

Accenture Software. ALIP Technical Presentation

TeamCity A Professional Solution for Delivering Quality Software, on Time

"Build and Test in the Cloud "

Developing Applications Using Continuous Integration 12c (12.2.1)

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Integrating Online Banking and Top-up Card into Payment Gateway

Hands on exercise for

Tutorial 5: Developing Java applications

GLOBAL JOURNAL OF ENGINEERING SCIENCE AND RESEARCHES

Maven2. Configuration and Build Management. Robert Reiz

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Robotium Automated Testing for Android

BONITA, The Open Source BPM Solution

Nanda Kishor K N. nandakishorkn@gmail.com

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Transcription:

Modulo II Qualidade de Software com Maven Professor Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Linguagem de Programação JAVA Ismael H. F. Santos, Apostila UniverCidade, 2002 The Java Tutorial: A practical guide for programmers Tutorial on-line: http://java.sun.com/docs/books/tutorial Java in a Nutshell David Flanagan, O Reilly & Associates Just Java 2 Mark C. Chan, Steven W. Griffith e Anthony F. Iasi, Makron Books. Java 1.2 Laura Lemay & Rogers Cadenhead, Editora Campos Julho 06 Prof. Ismael H. F. Santos 2 1

Livros Core Java 2, Cay S. Horstmann, Gary Cornell Volume 1 (Fundamentos) Volume 2 (Características Avançadas) Java: Como Programar, Deitel & Deitel Thinking in Patterns with JAVA, Bruce Eckel Gratuito. http://www.mindview.net/books/tij/ Julho 06 Prof. Ismael H. F. Santos 3 Ementa Visão geral do MAVEN Entendendo o POM (Project Object Model) Executando um build MAVEN x ANT Julho 06 Prof. Ismael H. F. Santos 4 2

POO-Java Apache Maven Julho 06 Prof. Ismael H. F. Santos 5 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 6 3

Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 7 Active quality = before the fact Julho 06 Prof. Ismael H. F. Santos 8 4

Passive quality = after the fact Julho 06 Prof. Ismael H. F. Santos 9 Active and Passive quality checks are both required but moving to active is the direction to take Julho 06 Prof. Ismael H. F. Santos 10 5

Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 11 Quality-related plugins In Maven In Mojo In Mojo Sandbox Surefire JUnit and TestNG PMD Checkstyle Verifier Clover Changelog Changes Clirr Cobertura Jalopy JDepend JavaNCSS JDiff Selenium JBoss DBUnit Jardiff JCoverage FindBugs Simian Emma Fit Tomcat WebLogic Elsewhere Cargo Jetty QALab Julho 06 Prof. Ismael H. F. Santos 12 6

Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 13 Coding conventions with Checkstyle build-tools.jar Local Maven Repo Depends on build-tools.jar Build Tools Module Module to be checked Julho 06 Prof. Ismael H. F. Santos 14 7

Coding conventions with Checkstyle Julho 06 Prof. Ismael H. F. Santos 15 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 16 8

Binary compatibility with Clirr Automatically compares previous version API with current sources To try it quickly: mvn clirr:check Can generate reports too: Strategy: Exclude files that have voluntary violations Julho 06 Prof. Ismael H. F. Santos 17 Binary compatibility with Clirr Julho 06 Prof. Ismael H. F. Santos 18 9

Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 19 Automated functional tests with Cargo Cargo: A Java API to manipulate containers (install, configure, start, stop, deploy) Has extensions for Ant, Maven1, Maven2, IntelliJ IDEA*, Netbeans* Currently support J2EE containers Tomcat, Orion, Resin, Jetty, WebLogic, OC4J, Geronimo, Jboss, jo! Upcoming: Glassfish, WebSphere Upcoming: database support Julho 06 Prof. Ismael H. F. Santos 20 10

Automated functional tests with Cargo Install distribution Configure container Install from URL Ex: http://www.caucho.com/download/resin- 3.0.19.zip Either created by Cargo or use an existing configuration Deploy Deploy WAR, EAR, EJBs, etc Start container It s also possible to deploy to an already started container Run tests Use any tool: JUnit, TestNG, Selenium, etc Stop container Julho 06 Prof. Ismael H. F. Santos 21 Automated functional tests with Cargo Demo! Julho 06 Prof. Ismael H. F. Santos 22 11

Full build automation Unit tests Library builds Generate JARs Components builds Generate WARs, EARs, etc Integration tests Databases build Generate databases with schema and data loaded (output is typically ZIP files) Functional tests Containers build Applications build Generate fully configured containers with deployed components (output is typically ZIP files) Generate fully working applications (includes both containers and databases build outputs) Julho 06 Prof. Ismael H. F. Santos 23 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 24 12

Test coverage with Clover Depends on Module 1 Module 2 Build Dependency Build module1-clover.jar module2-clover.jar Depends on Module 3 Build module3-clover.jar Local Repository Julho 06 Prof. Ismael H. F. Santos 25 Test coverage with Clover Reporting Verification Julho 06 Prof. Ismael H. F. Santos 26 13

Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki) Julho 06 Prof. Ismael H. F. Santos 27 Project documentation with a wiki Pros Easier participation and collaboration of everyone Even non-committers Always published; WYSIWYG Dynamic pages Get code snippets from SVN Mini-Applications like on the fly charts for development metrics, etc Cons Versioned separately from the sources More complex to package Difficult to send patches/diffs Cannot work offline Julho 06 Prof. Ismael H. F. Santos 28 14

XWiki demo Julho 06 Prof. Ismael H. F. Santos 29 Questions Me Julho 06 Prof. Ismael H. F. Santos 30 15

Example: http://www.bestventes.com Julho 06 Prof. Ismael H. F. Santos 31 Example: http://www.curriki.org Julho 06 Prof. Ismael H. F. Santos 32 16

Example: http://www.capdigital.com Julho 06 Prof. Ismael H. F. Santos 33 Example: http://www.agrospheres.eu Julho 06 Prof. Ismael H. F. Santos 34 17

Example: http://new.uaic.ro Julho 06 Prof. Ismael H. F. Santos 35 Example: http://wiki.bonita.objectweb.org/ Julho 06 Prof. Ismael H. F. Santos 36 18