© 2014 IBM Corporation
The Developers Conference
The Developers Conference
A prática de testes contínuos -
quebrando barreiras na organização
para melhores resultados
Walter Farias – whfarias@br.ibm.com
Client Technical Professional
Aprendizagem atrasada, é por isso que projetos
tradicionais falham
Semanas/Meses
para validar se o
código atendem
os requisitos
Meses ou Anos para
aprender se as
ideias/requisitos atendem as
necessidades do mercado
Time para feedback do cliente é dirigido pelo risco
Tradicionalmente
•Organizações procuram um
equilibrio entre: velocidade, custo &
risco.
•Times de desenvolvimento não
foram tão ágeis com são hoje; testes
nunca tem tempo suficiente
Time para feedback do cliente é dirigido pelo risco
Tradicionalmente
•Organizações procuram um
equilibrio entre: velocidade, custo &
risco.
•Times de desenvolvimento não
foram tão ágeis com são hoje; testes
nunca tem tempo suficiente
*Survey of 250 Testers
90% dos testadores tem alguma ,mas
não “completa” confiança no software
que está sendo entregue.
34% daqueles que não
expressou nenhuma
mudança foram
regulamente entregue
trimestralmente ou
melhor
34% daqueles que não
expressou nenhuma
mudança foram
regulamente entregue
trimestralmente ou
melhor
Desvio a esquerda: pra vencer no mercado,
aprenda rápido
• As empresas estão perguntando para seus times como entregar software com
melhor qualidade
• Times de desenvolvimento estão se tornando mais e mais ágeis; Testes
ainda parece nunca ter tempo suficiente.
Foco: Teste de Integração
Está quase
pronto!!
Só preciso fazer
aquela pequena
integração no final.
Está quase
pronto!!
Só preciso fazer
aquela pequena
integração no final.
Teste de Integração no final do ciclo de vida
100%
Cronograma Projeto
ProgressodoDesenvol.
(%código)
Data
Original
Integração
Começam
Antecipar a validação conduz a uma curva suave
100%
Cronograma Projeto
ProgressoDesenvol.
(%código)
♫
Estratégia
1. Implantar toda solução
em um ambiente de
Teste
2. Setup cenários de
teste
3. Run Teste de
regressão
4. Criar “visão boa” da
versão do sistema
5. Repetir quando tiver
mudanças
Pet Shop
Content
J2EE App
MySQL DB
SIT
WEB
MID
DB
PROD
WEB
MID
DB
Tomcat
Deploy
Process
Rollback
Process
Restart
Process
Então… por que não
estamos fazendo isso?
A aplicação tem várias partes
Image from ischool.tv
Entregando aplicativos compostos
Desafios
1. Implantar toda solução
em um ambiente de
Teste
2. Setup cenários de teste
3. Run Teste de regressão
4. Criar “visão boa” da
versão do sistema
5. Repetir quando tiver
mudanças
coordenar
as
mudanças
coordenar
as
mudanças
ProvisionamentoProvisionamento
Rastrear /
Coletar versões
que estão em
teste
Rastrear /
Coletar versões
que estão em
teste
Testes é frequêntemente confrontado com atrasos e gargalos
Desafios diários dos testes
1. Dificuldade para automatizar testes quando os serviços
dependentes têm que ser desenvolvido
2. A falta de produção completa em um laboratório de testes
3. Software e / ou sistemas ainda não existem e as
prioridades podem ser diferentes entre equipes de
desenvolvimento
4. Testes com os serviços de terceiros poderá resultar em
custos de acesso, elevando o custo dos testes
5. Defeitos que bloqueiem podem interromper os testes end-
to-end
6. Simplesmente não há tempo suficiente devido a todas as
interrupções!
Continuous Testing é…
Validar diáriamente aplicações compostas mais cedo e com o custo menor
Continuous Testing
DevOps Foundation
Automação Teste
• Execução autônoma
• Validar fluxo de negócio
em todos canais
• Durável, fácil manutenção,
resiliente mudança
Implantação automatizada em ambientes de teste
• Confiável • Repetitivo • Rastreável
Ambiente Teste
• Realistico & Completo
- (Similar Produção)
• Disponível sob demanda
• Barato para montar
Continuous Testing é…
Criar ambiente de teste similar a produção
 Ambiente de teste Ágil requer quatro capacidades
Infraestrutua Dinâmica
Entrega
Automatizada
Test Environments
DevOps Foundation
Virtualização de
Serviços
Gestão dos Dados
Teste
Lidando com Software & Serviços Indisponíveis
Incrementalmente Testando a IntegraçãoIncrementalmente Testando a Integração
Virtualização habilita a continuidade na integração
e nos testes
Serviços, aplicações, sistemas são introduzidos
dentro do ciclo de integração contínua de forma
priorizada, controlada.
Abordagem completa para o paralelismo do
desenvolvimento
Solução de Virtualização em Testes tem papel chave
num Ciclo Moderno de Desenvolvimento de Software
Actual Service/App
Virtual Service/App
Databases Internal
Messages
Third-party
Services
virtual components
Simultaneously
test across
multiple test
stages
DevDev QAQA
IBM Rational Test
Virtualization Server
Combining continuous testing withSolução IBM para Continuous Testing
IBM UrbanCode
Deploy
IBM Rational
Test Workbench
integrated with
Test Environments
Dynamic Infrastructure
 Deploy what is ready,
virtualize the rest
 Continuously test in
production-like env.
 Deploy private, secure
right sized test data
IBM InfoSphere
Optim Test Data Mgmt
UC Deploy Plugins
IBM Rational
Quality Manager
 Manage quality across
the delivery lifecycle
Resumo
• Chegar ao mercado mais rápido exige testes mais rápidos
• Testadores precisam de testes automatizados, ambientes para
executá-los, e os últimos códigos nesses ambientes.
• Ambientes complexos podem ser simplificados com virtualização
de serviços.
• Implementações complexas pode ser controlada com aplicação
de Automação de Entrega.
• Continuous Testing juntamente com Continuous Deployment,
verifica software / valida o processo de implantação
Próximas Palestras IBM:
Thank You

Tdc continuous testing

  • 1.
    © 2014 IBMCorporation The Developers Conference The Developers Conference A prática de testes contínuos - quebrando barreiras na organização para melhores resultados Walter Farias – whfarias@br.ibm.com Client Technical Professional
  • 2.
    Aprendizagem atrasada, épor isso que projetos tradicionais falham Semanas/Meses para validar se o código atendem os requisitos Meses ou Anos para aprender se as ideias/requisitos atendem as necessidades do mercado
  • 3.
    Time para feedbackdo cliente é dirigido pelo risco Tradicionalmente •Organizações procuram um equilibrio entre: velocidade, custo & risco. •Times de desenvolvimento não foram tão ágeis com são hoje; testes nunca tem tempo suficiente
  • 4.
    Time para feedbackdo cliente é dirigido pelo risco Tradicionalmente •Organizações procuram um equilibrio entre: velocidade, custo & risco. •Times de desenvolvimento não foram tão ágeis com são hoje; testes nunca tem tempo suficiente *Survey of 250 Testers 90% dos testadores tem alguma ,mas não “completa” confiança no software que está sendo entregue. 34% daqueles que não expressou nenhuma mudança foram regulamente entregue trimestralmente ou melhor 34% daqueles que não expressou nenhuma mudança foram regulamente entregue trimestralmente ou melhor
  • 5.
    Desvio a esquerda:pra vencer no mercado, aprenda rápido • As empresas estão perguntando para seus times como entregar software com melhor qualidade • Times de desenvolvimento estão se tornando mais e mais ágeis; Testes ainda parece nunca ter tempo suficiente.
  • 6.
    Foco: Teste deIntegração Está quase pronto!! Só preciso fazer aquela pequena integração no final. Está quase pronto!! Só preciso fazer aquela pequena integração no final.
  • 7.
    Teste de Integraçãono final do ciclo de vida 100% Cronograma Projeto ProgressodoDesenvol. (%código) Data Original Integração Começam
  • 8.
    Antecipar a validaçãoconduz a uma curva suave 100% Cronograma Projeto ProgressoDesenvol. (%código) ♫
  • 9.
    Estratégia 1. Implantar todasolução em um ambiente de Teste 2. Setup cenários de teste 3. Run Teste de regressão 4. Criar “visão boa” da versão do sistema 5. Repetir quando tiver mudanças Pet Shop Content J2EE App MySQL DB SIT WEB MID DB PROD WEB MID DB Tomcat Deploy Process Rollback Process Restart Process
  • 10.
    Então… por quenão estamos fazendo isso?
  • 11.
    A aplicação temvárias partes Image from ischool.tv
  • 12.
    Entregando aplicativos compostos Desafios 1.Implantar toda solução em um ambiente de Teste 2. Setup cenários de teste 3. Run Teste de regressão 4. Criar “visão boa” da versão do sistema 5. Repetir quando tiver mudanças coordenar as mudanças coordenar as mudanças ProvisionamentoProvisionamento Rastrear / Coletar versões que estão em teste Rastrear / Coletar versões que estão em teste
  • 13.
    Testes é frequêntementeconfrontado com atrasos e gargalos Desafios diários dos testes 1. Dificuldade para automatizar testes quando os serviços dependentes têm que ser desenvolvido 2. A falta de produção completa em um laboratório de testes 3. Software e / ou sistemas ainda não existem e as prioridades podem ser diferentes entre equipes de desenvolvimento 4. Testes com os serviços de terceiros poderá resultar em custos de acesso, elevando o custo dos testes 5. Defeitos que bloqueiem podem interromper os testes end- to-end 6. Simplesmente não há tempo suficiente devido a todas as interrupções!
  • 14.
    Continuous Testing é… Validardiáriamente aplicações compostas mais cedo e com o custo menor Continuous Testing DevOps Foundation Automação Teste • Execução autônoma • Validar fluxo de negócio em todos canais • Durável, fácil manutenção, resiliente mudança Implantação automatizada em ambientes de teste • Confiável • Repetitivo • Rastreável Ambiente Teste • Realistico & Completo - (Similar Produção) • Disponível sob demanda • Barato para montar
  • 15.
    Continuous Testing é… Criarambiente de teste similar a produção  Ambiente de teste Ágil requer quatro capacidades Infraestrutua Dinâmica Entrega Automatizada Test Environments DevOps Foundation Virtualização de Serviços Gestão dos Dados Teste
  • 16.
    Lidando com Software& Serviços Indisponíveis
  • 17.
    Incrementalmente Testando aIntegraçãoIncrementalmente Testando a Integração Virtualização habilita a continuidade na integração e nos testes Serviços, aplicações, sistemas são introduzidos dentro do ciclo de integração contínua de forma priorizada, controlada. Abordagem completa para o paralelismo do desenvolvimento Solução de Virtualização em Testes tem papel chave num Ciclo Moderno de Desenvolvimento de Software Actual Service/App Virtual Service/App
  • 18.
    Databases Internal Messages Third-party Services virtual components Simultaneously testacross multiple test stages DevDev QAQA IBM Rational Test Virtualization Server Combining continuous testing withSolução IBM para Continuous Testing IBM UrbanCode Deploy IBM Rational Test Workbench integrated with Test Environments Dynamic Infrastructure  Deploy what is ready, virtualize the rest  Continuously test in production-like env.  Deploy private, secure right sized test data IBM InfoSphere Optim Test Data Mgmt UC Deploy Plugins IBM Rational Quality Manager  Manage quality across the delivery lifecycle
  • 19.
    Resumo • Chegar aomercado mais rápido exige testes mais rápidos • Testadores precisam de testes automatizados, ambientes para executá-los, e os últimos códigos nesses ambientes. • Ambientes complexos podem ser simplificados com virtualização de serviços. • Implementações complexas pode ser controlada com aplicação de Automação de Entrega. • Continuous Testing juntamente com Continuous Deployment, verifica software / valida o processo de implantação
  • 20.
  • 21.

Notas do Editor

  • #12 Discuss lots of moving pieces
  • #15 A place to test. Many tests run auto-magically. The latest stuff put in that place, with the tests run.
  • #18 We always want to be testing. Stub interfacing components out that are unavailable at the time and then re-introduce them when they are available. Continuous integration testing at a “system” level. When new components are introduced the automated test suite scan be run as regression tests. Thereby controlling the risk of extra functionality being deployed into the test environment by having mitigated the risk through earlier testing against stubs. This is an incremental and iterative approach to integration testing.