31
Integração Contínua com Hudson, Selenium e Sonar Arthur Cesar Oreana [email protected] @arthur_oreana

Integração Contínua com Hudson, Selenium e Sonar

Embed Size (px)

DESCRIPTION

Integração Contínua com Hudson, Selenium e Sonar

Citation preview

Page 1: Integração Contínua com Hudson, Selenium e Sonar

Integração Contínua com Hudson, Selenium e Sonar

Arthur Cesar [email protected]

@arthur_oreana

Page 2: Integração Contínua com Hudson, Selenium e Sonar

A Equipe…

Page 3: Integração Contínua com Hudson, Selenium e Sonar

Trabalha unida…

Page 4: Integração Contínua com Hudson, Selenium e Sonar

Na construção de um software…

Page 5: Integração Contínua com Hudson, Selenium e Sonar

Vai para Produção? Pendrive nele!

Page 6: Integração Contínua com Hudson, Selenium e Sonar

Super computador de Produção

Page 7: Integração Contínua com Hudson, Selenium e Sonar

Experiência dos usuários

Page 8: Integração Contínua com Hudson, Selenium e Sonar

Erro no sistema

Page 9: Integração Contínua com Hudson, Selenium e Sonar

Algo está errado…

Page 10: Integração Contínua com Hudson, Selenium e Sonar
Page 11: Integração Contínua com Hudson, Selenium e Sonar

• Integração fica para o último estágio do desenvolvimento

• Testes feitos apenas com o software pronto

• Síndrome “mas funcionou na minha máquina!”

• “Ah, qualidade do software é responsabilidade do time de QA!”

• Riscos são sub-estimados

Page 12: Integração Contínua com Hudson, Selenium e Sonar

• Interpretação errada de requisitos

• Incompatibilidade entre interfaces

• Muitos bugs na fase de integração

• Testes demoram demais

• Atraso na entrega

Page 13: Integração Contínua com Hudson, Selenium e Sonar

HA!

Page 14: Integração Contínua com Hudson, Selenium e Sonar
Page 15: Integração Contínua com Hudson, Selenium e Sonar
Page 16: Integração Contínua com Hudson, Selenium e Sonar

“Integração Contínua é uma prática de desenvolvimento de software onde os membros de um time integram seu trabalho freqüentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia.

Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível.

Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.

– Martin Fowler

Page 17: Integração Contínua com Hudson, Selenium e Sonar

• Controle de versão

• Construção

• Teste

• Inspeção

• Feedback

Page 18: Integração Contínua com Hudson, Selenium e Sonar

Controle de versão

• Local centralizado para armazenamento dos arquivos de um projeto, e também controlam as versões desses arquivos.

• Guardar versões é como ter um botão “desfazer” à nossa disposição!

• Quando diversas pessoas trabalham juntas em um projeto, o repositório torna-se o destino final de tudo o que é produzido.

Page 19: Integração Contínua com Hudson, Selenium e Sonar

Construção (Build)

• Processo automatizado de construção da aplicação.

• Ferramentas disponíveis para essa etapa:

• ANT• MAVEN• MAKE

Page 20: Integração Contínua com Hudson, Selenium e Sonar

Teste

• Unitários: jUnit

• Funcionais: Selenium

• Fitnesse

Page 21: Integração Contínua com Hudson, Selenium e Sonar

Inspeção

• Análise estática• PMD• FindBugs

• Duplicação de código• CPD• Simian

• Complexidade/Dependências• Jdepend• JavaNCSS• SourceMonitor

Page 22: Integração Contínua com Hudson, Selenium e Sonar

Feedback

• Extremme Feedback é uma maneira de disponibilizarmos as informações sobre o teste em dispositivos que chamem a atenção da equipe de desenvolvimento:

• Letreiros digitais

• Luzes no estilo de um semáforo

• Etc

Page 23: Integração Contínua com Hudson, Selenium e Sonar

Servidores de Integração

• CruiseControl

• Continuum

• Hudson

Page 24: Integração Contínua com Hudson, Selenium e Sonar

1. Sincronização do código produzido ao menos uma vez ao dia

2. Testes garantem a consistência da base de código unificada

3. Relatórios de qualidade gerados automaticamente

4. Problemas na construção do software tem prioridade máxima

5. Facilmente é possível saber a saúde do projeto

Page 25: Integração Contínua com Hudson, Selenium e Sonar
Page 26: Integração Contínua com Hudson, Selenium e Sonar

• PMD

• jUnit

• Apache jMeter

Page 27: Integração Contínua com Hudson, Selenium e Sonar

• Hudson

• Selenium

• Tomcat

• Sonar

Page 28: Integração Contínua com Hudson, Selenium e Sonar

Source-CodeRepository

Subversion(SVN)

Subversion(SVN)

ComponentRepository

(Maven)

ApplicationRepository

AdvancedHudson

AdvancedHudson

...

MavenMaven MavenMavenMavenMaven MavenMaven

MavenMaven

Complete QA TeamWork Environment with

Configuration Management

Developer 1Developer 2 Developer N Tester

ArchivaArchiva

Customer.java v1. Customer.java v2. Customer.java v3

Product.java v1. Product.java v2

Invoice.java v1

sales.jar v3.0 (Customer.java v2, Product.java v1, ...)

. sales.jar v3.01

. sales.jar v3.02

. sales.jar v.4

salesutils.war v1.0. salesutils.war v1.1

hibernate.jar v3.2

Page 29: Integração Contínua com Hudson, Selenium e Sonar

QADatabase

ApplicationRepository

AdvancedHudson

AdvancedHudson

salesapp.ear v5.0 salesapp.ear v5.1asalesapp.ear v6.0

MavenMaven

QAApp Server

QAApp Server

Advanced Continuous Integration . daily build with schedule options. ear, war version control repository. batch tests (unit, coverage, functional, static, load, xref, ncss, etc.). project web-site generation. email alerts (build or test problems)

ProductionDatabase

ProductionApp Server

ProductionApp Server

PortalContent

Management

Deploy

One-Click Deploy

Project web-site“One-Click Publishing”

One-Click App “Production”Versioning (Example: v 5.1)

DeliveryAutomation

Page 30: Integração Contínua com Hudson, Selenium e Sonar

Referências

• www.powerlogic.com.br

• www.google.com

Page 31: Integração Contínua com Hudson, Selenium e Sonar

Arthur Cesar Oreana

[email protected]

arthur_oreana

Obrigado!