modulo ii qualidade de software com maven - puc-rioismael/cursos/senac_mtsw/... · modulo ii...

18
1 April 05 Prof. Ismael H. F. Santos - [email protected] 1 Modulo II Qualidade de Software com Maven Professor Ismael H F Santos – [email protected] Julho 06 Prof. Ismael H. F. Santos 2 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 Bibliografia

Upload: votu

Post on 24-Nov-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

1

April 05 Prof. Ismael H. F. Santos - [email protected] 1

Modulo II Qualidade de Software com Maven

Professor Ismael H F Santos – [email protected]

Julho 06 Prof. Ismael H. F. Santos 2

Linguagem de Programação JAVAIsmael H. F. Santos, Apostila UniverCidade, 2002

The Java Tutorial: A practical guide for programmersTutorial on-line: http://java.sun.com/docs/books/tutorial

Java in a NutshellDavid Flanagan, O´Reilly & Associates

Just Java 2Mark C. Chan, Steven W. Griffith e Anthony F. Iasi, Makron

Books.Java 1.2

Laura Lemay & Rogers Cadenhead, Editora Campos

Bibliografia

2

Julho 06 Prof. Ismael H. F. Santos 3

LivrosCore Java 2, Cay S. Horstmann, Gary Cornell

Volume 1 (Fundamentos)Volume 2 (Características Avançadas)

Java: Como Programar, Deitel & DeitelThinking in Patterns with JAVA, Bruce Eckel

Gratuito. http://www.mindview.net/Books/TIJ/

Julho 06 Prof. Ismael H. F. Santos 4

Ementa

Visão geral do MAVENEntendendo o POM (Project Object Model)Executando um buildMAVEN x ANT

3

Julho 06 Prof. Ismael H. F. Santos 5

Apache Maven

POO-Java

Julho 06 Prof. Ismael H. F. Santos 6

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

4

Julho 06 Prof. Ismael H. F. Santos 7

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

Julho 06 Prof. Ismael H. F. Santos 8

Active quality = before the fact

5

Julho 06 Prof. Ismael H. F. Santos 9

Passive quality = after the fact

Julho 06 Prof. Ismael H. F. Santos 10

Active and Passive quality checks are both required…

… but moving to active is the direction to take

6

Julho 06 Prof. Ismael H. F. Santos 11

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

Julho 06 Prof. Ismael H. F. Santos 12

● Surefire● JUnit and

TestNG

● PMD● Checkstyle● Verifier● Clover● Changelog● Changes

In Maven In Mojo In Mojo Sandbox

Quality-related plugins

● Cargo

● Jetty

● QALab

● Clirr

● Cobertura

● Jalopy

● JDepend

● JavaNCSS

● JDiff

● Selenium

● JBoss

● DBUnit

● Jardiff

● JCoverage

● FindBugs

● Simian

● Emma

● Fit

● Tomcat

● WebLogic

Elsewhere

7

Julho 06 Prof. Ismael H. F. Santos 13

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

Julho 06 Prof. Ismael H. F. Santos 14

Local Maven Repo

Local Maven Repo

Build ToolsModule

Build ToolsModule

Module to be checkedModule to be checked

build-tools.jar

Depends onbuild-tools.jar

Coding conventions with Checkstyle

8

Julho 06 Prof. Ismael H. F. Santos 15

Coding conventions with Checkstyle

Julho 06 Prof. Ismael H. F. Santos 16

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

9

Julho 06 Prof. Ismael H. F. Santos 17

Binary compatibility with ClirrAutomatically compares previous version API withcurrent sourcesTo try it quickly: mvn clirr:check

Can generate reports too:

Strategy: Exclude files that have voluntaryviolations

Julho 06 Prof. Ismael H. F. Santos 18

Binary compatibility with Clirr

10

Julho 06 Prof. Ismael H. F. Santos 19

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

Julho 06 Prof. Ismael H. F. Santos 20

Automated functional tests with CargoCargo: A Java API to manipulate containers (install, configure, start, stop, deploy)Has extensions for Ant, Maven1, Maven2, IntelliJIDEA*, Netbeans*Currently support J2EE containers

Tomcat, Orion, Resin, Jetty, WebLogic, OC4J, Geronimo, Jboss, jo!Upcoming: Glassfish, WebSphereUpcoming: database support

11

Julho 06 Prof. Ismael H. F. Santos 21

Automated functional tests with Cargo

Install distributionInstall distribution

Configure containerConfigure container

DeployDeploy

Start containerStart container

Run testsRun tests

Stop containerStop container

Install from URLEx: http://www.caucho.com/download/resin-3.0.19.zip

Either created by Cargo or use an existingconfiguration

Deploy WAR, EAR, EJBs, etc

Use any tool: JUnit, TestNG, Selenium, etc

It’s also possible to deploy to an alreadystarted container

Julho 06 Prof. Ismael H. F. Santos 22

Automated functional tests with Cargo

Demo!

12

Julho 06 Prof. Ismael H. F. Santos 23

Full build automation

Library buildsLibrary builds Generate JARs

Components buildsComponents builds Generate WARs, EARs, etc

Databases buildDatabases build Generate databases with schema and data loaded (output is typically ZIP files)

Containers buildContainers buildGenerate fully configured containers withdeployed components (output is typicallyZIP files)

Applications buildApplications buildGenerate fully working applications (includes both containers and databasesbuild outputs)

Unit tests

Functionaltests

Integrationtests

Julho 06 Prof. Ismael H. F. Santos 24

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

13

Julho 06 Prof. Ismael H. F. Santos 25

Test coverage with Clover

Module 1Module 1

Module 2Module 2

Module 3Module 3

Depends on

Local Repository

module1-clover.jarmodule1-clover.jar

module2-clover.jarmodule2-clover.jar

module3-clover.jarmodule3-clover.jar

Build

Dependency

Depends on

Build

Build

Julho 06 Prof. Ismael H. F. Santos 26

Test coverage with CloverReporting Verification

14

Julho 06 Prof. Ismael H. F. Santos 27

Agenda

Active Quality vs Passive QualityReview of Quality-related pluginsCoding conventions with CheckstyleBinary compatibility with ClirrAutomated functional tests with CargoTest coverage with CloverProject documentation with a wiki (Demo of XWiki)

Julho 06 Prof. Ismael H. F. Santos 28

Project documentation with a wikiPros

Easier participation and collaboration of everyoneEven non-committers

Always published; WYSIWYGDynamic pages

Get code snippets from SVNMini-Applications like on the fly charts for developmentmetrics, etc

ConsVersioned separately from the sourcesMore complex to packageDifficult to send patches/diffsCannot work offline

15

Julho 06 Prof. Ismael H. F. Santos 29

XWiki demo

Julho 06 Prof. Ismael H. F. Santos 30Me

Questions

16

Julho 06 Prof. Ismael H. F. Santos 31

Example: http://www.bestventes.com

Julho 06 Prof. Ismael H. F. Santos 32

Example: http://www.curriki.org

17

Julho 06 Prof. Ismael H. F. Santos 33

Example: http://www.capdigital.com

Julho 06 Prof. Ismael H. F. Santos 34

Example: http://www.agrospheres.eu

18

Julho 06 Prof. Ismael H. F. Santos 35

Example: http://new.uaic.ro

Julho 06 Prof. Ismael H. F. Santos 36

Example: http://wiki.bonita.objectweb.org/