SlideShare uma empresa Scribd logo
1 de 34
© 2011 IBM Corporation
7 Dicas para Acelerar os Testes com
Resultados Efetivos
12 de Julho de 2013
Felipe Freire – pfreire@br.ibm.com
IBM Software, Rational
TDC 2013
@pfelipebr
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Sobre a a apresentação – Objetivo
Dar armas ao testador para mudar a organização
 Compartilhar experiências com testes (dicas)
 Experiência IBM em clientes globais
 Eventos de testes
 STAREAST / STARWEST
 BRATESTE
 Ajudar a trazer novas idéias para sua empresa
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Agenda
 Introdução
 Dicas
 Dê foco aos testes
 Antecipe a execução dos testes
 Versione tudo (release)
 Cloud – Flexibilize os ambientes de testes
 Virtualize os serviços e ambientes de testes
 Automatize corretamente
 Mobile – testar múltipals configurações
 Encerramento
3
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
4
Speed Value
of digital content in 2012, up 50% from 2011
New Insights
1.1.Technology factorsTechnology factors
2. People skills
3. Market factors
4. Macro-economic factors
Factors impacting organizations:
Technology is the key to success, according to CEOs …
IBM Global
CEO Study
1
5. Regulatory concerns
6. Globalization
7. Socio-economic factors
8. Environmental issues
9. Geopolitical factors
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
5
Qualidade de Software: Problema de custo em todas as indústrias
 Softwares são culpados por mais
problemas de negócio do que
qualquer outro produto feito pelo
homem
 A baixa qualidade dos softwares
tornou-se um dos tópicos mais caros
da história humana
– > $150 bilhões por ano nos EUA.
– > $500 bilhões por ano no mundo.
 Projetos cancelados devido a baixa
qualidade são > 15% mais custosos
do que projetos bem sucedidos de
mesmo tipo e tamanho..
Source: Capers Jones, 2011
Based on 675 companies, 35 government/military groups, 13,500 projects, 50-75 new projects/month, 24 countries, 15 lawsuites
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
6
Desafios de entregar no prazo com qualidade
34% de todos os novos projetos de TI implantam com atraso**
experimenta atrasos
na integração,
configuração ou teste
da aplicação
41%
experimentam atrasos
para identificação de
problemas e ajustes
em produção
45%
das aplicações sofrem
roll-back por
problemas de
qualidade
51%
tempo médio
para entregar
uma mudança
simples
4-6
Semanas
tempo médio
para isolar um
defeito
3-4
SemanasGAP GAP
ProduçãoDesenvolvimento Testes
1. Dificuldade em atender às requisições de desenvolvimento e testes para
configuração de ambientes – infraestrutura, middleware e aplicações
2. Defeitos em aplicações e problemas de desempenho causam 50% dos rollbacks
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Piores práticas – experiência pessoal
1. Deixar os testes para o final do projeto
1. Dois ciclos de testes são o suficiente
1. Qualquer um pode criar e executar os testes
1. Todos os testes devem ser detalhados e muito bem estruturados
1. Buscar 100% de automação
1. Executar o maior número de testes possíveis
1. Todos os defeitos encontrados devem ser corrigidos
1. Ignorar configurações para os testes
7
http://www.slideshare.net/pfelipe/ibm-rational-piores-prticas-em-testes
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
1) Dê foco aos testes
 O esforço de testes pode beirar o infinito!
– Testar todas as variáveis, cenários, configurações…
 Onde os testes são mais importantes?
– Histórico de outros projetos similares  onde deu problema?
– Risco: quaiscaracterísticas do sistema são mais críticas?
 Abordagem dos testes
Na média, desenvolvedores profissionais cometem de 15
a 50 erros a cada mil linhas de código criadas.
Code Complete (2nd
edition) http://cc2e.com
CoQ = Technical Debt (Agile)
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
2) Antecipe a execução dos testes
 Desenvolvimento iterativo / ágil
– Entregas parciais
– Oportunidade de verificar a qualidade antecipadamente
– Ciclos de testes alinhados com as iterações / sprints
 “Boas equipes desenvolvem bons softwares"
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Testes de Sistema
Requisitos
Teste
Unitário
UAT
OAT
Performance
Barreiras da
Qualidade
Ambiente Tradicional
Big Bang
× Múltiplos defeitos identificados de uma vez
× Maior risco
× Mais caro
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Requisitos
Teste
Unitário
Performance
UAT
OAT
Testes Integrados
Teste de
Integração
Sys
Tests
 Acelera o teste
 Reduz custo
 Diminui o risco
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
3) Versione tudo – inclusive a infraestrutura
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Troque o seu servidor por uma nuvem
 Exemplo: 300 servidores para as equipes de desenvolvimento
– Cada equipe tem os seus servidores
– Hardware obsoleto
– Sem controle
– Testes e desenvolvimento rodando na mesma máquina
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
4) Flexibilize os ambientes de testes
Cloud
DevOps
↪Common Source Control
↪Automated Builds (Build Definitions)
↪Continuous Integration (CI)
↪Automated Delivery
↪Continuous Delivery to Test (CD)
↪Continuous Delivery to Production-like Systems (Infrastructure as Code)
↪Continuous Delivery thru Prod (Cloud based)
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
A esteira de entregas
Implantar
Ambiente de execução
do sistema
Repositório de
Controle de fontes
Artefatos fontes
.jsp
.java
.html
chef
recipes
.sh
Artefatos entregáveis
Build,
Empacota,
Testes
unitários
Binários
Configuração
da plataforma
Biblioteca
18
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
E depois que o software é construído?
19
Instruções de Instalação
Red Hat Linux
Nanana na nana na nanana. Na
nanana na nana. Nana nanana
nananan na nana na nana
nanana na na nanana.
Apache Web Server
Nanana na nana na nanana. Na
nanana na nana. Nana nanana
nananan na nana na nana
nanana na na nanana.
CLOUD
deploy.rb
cookbook_file "/home/jazz/.jrubyrc" do
# handle segfaults that occur when using JRuby w/ the IBM JDK
# see: http://jira.codehaus.org/browse/JRUBY-5700
source "jrubyrc"
mode "0644"
end
env_options = {
# ensure that build scripts can easily access Java and Jruby from the normal
path
'ANT_HOME' => node[:ant][:ant_home],
'JAVA_HOME' => node[:java][:java_path],
'PATH' => "#{node[:java][:java_path]}/bin:#{node[:jruby]
[:install_dir]}/jruby/bin:#{ENV["PATH"]}"
}
# install external gem libs
%w{cucumber httpclient rake net-ssh net-scp httpclient jruby-openssl json-
jruby rubyzip}.each do |gem_name|
execute "install_#{gem_name}" do
action :run
command "#{node[:jruby][:install_dir]}/jruby/bin/jgem install #{gem_name}"
environment(env_options)
end
deploy.rb
cookbook_file "/home/jazz/.jrubyrc" do
# handle segfaults that occur when using JRuby w/ the IBM JDK
# see: http://jira.codehaus.org/browse/JRUBY-5700
source "jrubyrc"
mode "0644"
end
env_options = {
# ensure that build scripts can easily access Java and Jruby from the normal
path
'ANT_HOME' => node[:ant][:ant_home],
'JAVA_HOME' => node[:java][:java_path],
'PATH' => "#{node[:java][:java_path]}/bin:#{node[:jruby]
[:install_dir]}/jruby/bin:#{ENV["PATH"]}"
}
# install external gem libs
%w{cucumber httpclient rake net-ssh net-scp httpclient jruby-openssl json-
jruby rubyzip}.each do |gem_name|
execute "install_#{gem_name}" do
action :run
command "#{node[:jruby][:install_dir]}/jruby/bin/jgem install #{gem_name}"
environment(env_options)
end
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Testing Tradeoffs
Cost
Fidelity
Traditional
Staging
Environment
Testing in
Cloud-based
Continuous
Delivery
Testing in Cloud-based
Continuous Delivery
with Service Simulation
Traditional
UAT without
DevOps
Typical JUnit
Tests
Build Verification Tests
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
21
DevOps - checklist
• Do you use source control?
• Can you deploy a system in one step?
• Do you deploy your applications daily and verify them?
• Do you have an issue tracking system for operations, linked to a bug database
used for development?
• Do you validate platform software against expected KPIs, before deploying your
application?
• Do you have well defined delivery pipeline?
• Do you have agreed upon patterns for applications and platforms?
• Can your developers launch, use, and destroy representative environments on
demand?
• Do you provide Infrastructure and Platform as a Service for your development
teams?
• Do you have automated tests to validate your application function and security?
• Do your new operation engineers understand how to automate system
administration?
• Do your operations and development teams collaborate regularly?
*Based on “The Joel Test: 12 Steps to Better Code”
http://www.joelonsoftware.com/articles/fog0000000043.html
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Define
constrained
systems and
services for
virtualization
Integration OperabilityUser AcceptanceSystem IntegrationSystemUnit Integration OperabilityUser AcceptanceSystem IntegrationSystemUnit
Performance
Developer uses
virtual services to
unit test code on
their workstation
– no elaborate
environment
required
Development and Test
teams uses virtual services
for early stage advanced
testing
The full system or
components of the system
can be performance tested
early in the cycle. Virtual
services can be used when
components are not
available
Later in the cycle, final pre-
production versions of
services are swapped in as
they become available. Final
testing is done against real
services
5) Virtualização de serviços e aplicações
benefícios para todo o ciclo
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Incremental Integration TestingIncremental Integration Testing
Actual Service/App
Virtual Service/App
Test Virtualization is an enabler for
continuous Integration Testing
Services, applications, systems are
introduced into the continuous integration
cycle in a prioritized, controlled fashion.
Test Virtualization Solution is a key enabler for Continuous
Integration Testing
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
6) Automatize corretamente
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Há retorno no investimento em automação dos testes?
 Testes executados com maior frequencia
 Testes levam menos tempo para executar
 Leva menos esforço humano para executar os testes
 Podemos cobrir mais características do sistema
 Podemos executar o equivalente a dias/semanas de testes em poucos minutos / horas
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Ferramentas substituem testadores?
 “Podemos reduzir o número de testadores uma vez que utilizarmos ferramentas de
automação?”
– Quem são seus testadores?
• Seres “não-pensantes”, ou
• Investigadores inteligentes?
– Precisamos de mais skills, não menos
– Automação pode liberar o testador para realizar mais designs de testes
e exploração
• E assim achar mais defeitos
 Ferramentas não substituem testadores, só suportam eles!
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Gerentes: o que buscar na automação dos testes
 Benefícios da automação devem ser crescentes – ex: número de testes,
cobertura
 Custos devem ser cada vez menores
– Custo de construção para novos testes, manutenção (por teste), análise de
falhas
 Sinais de problemas na arquitetura do testware – testadores não-técnicos
conseguem escrever e executar testes automatizados?
– Me mostre um teste automatizado rodando
– Vamos mudar para outra ferramenta? (observe a reação)
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
7) Mobile – testar múltipals configurações
Client Tier Devices
Mobile-specific challenges:
Lots of device targets
Provisioning rules and
artifacts
Curated app stores
Dependent upon
backend service versions
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Resumo
1. Dê foco aos testes
2. Antecipe a execução dos testes
3. Versione tudo (release)
4. Cloud – Flexibilize os ambientes de testes
5. Virtualize os serviços e ambientes de testes
6. Automatize corretamente
7. Mobile
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Collaborative Lifecycle
Management
Delivery
Pipeline
Delivery
Pipeline
OSLC
Configuration
Automation
Configuration
Automation
OSLC
Continuous
Integration
Continuous
Integration
OSLC
Quality
Management
Quality
Management
OSLC
Provisioning
Automation
Provisioning
Automation
OSLC
Cloud
Pull configurations
Track
work
Trigger
deployment Deploy
service
Track
quality
Track
work
Trigger
Delivery
Update
configuration
s
Pull
changes
Continuous Delivery
Change
Management
Change
Management
OSLC
OSLC
Requirement
Management
Requirement
Management
Trigger
tests
Service
Simulation &
Testing
Service
Simulation &
Testing
OSLC
Configure
endpoints
Start stubs
Application
Monitoring
Application
Monitoring
OSLC
Monitor
application
Configure
agents
Link defect
Track
incident
Incident
Management
Incident
Management
OSLC
Deployment
Design
Deployment
Design
OSLC
Generate automation
© 2012 IBM Corporation
Enabling Product and Service Innovation | Rational
Links
 Jazz.Net
 6 Ways for Enterprises to Adopt DevOps blog – http://ibm.co/xq71xY
 Understanding and Adopting DevOps (Series on my Blog) – http://bit.ly/MyDevOps
 Blog da Rational Brasil – O Mundo depende de software
– https://www.ibm.com/developerworks/mydeveloperworks/blogs/rationalbrasil/
 Dorothy Graham Independent Test Consultant - www.DorothyGraham.co.uk
Felipe Freire (@pfelipebr)
pfreire@br.ibm.com

Mais conteúdo relacionado

Mais procurados

Modernização de Aplicações
Modernização de AplicaçõesModernização de Aplicações
Modernização de AplicaçõesMarcio Sete
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
1. Abordagens Ágeis
1. Abordagens Ágeis1. Abordagens Ágeis
1. Abordagens ÁgeisSaulo Arruda
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_WarmlingChaordic
 
Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de SoftwareWagner Zaparoli
 
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...Welington Monteiro
 
Apresentação favihc - ihc 2010
Apresentação   favihc - ihc 2010Apresentação   favihc - ihc 2010
Apresentação favihc - ihc 2010albertschilling
 
Entrega Contínua - 2º Encontro Rational de Desenvolvimento de Software
Entrega Contínua -  2º Encontro Rational de Desenvolvimento de SoftwareEntrega Contínua -  2º Encontro Rational de Desenvolvimento de Software
Entrega Contínua - 2º Encontro Rational de Desenvolvimento de SoftwareFelipe Freire
 
Manuencao de software
Manuencao de softwareManuencao de software
Manuencao de softwareamorfab
 
Entrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine LearningEntrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine LearningThoughtWorks Brasil
 
Sbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para ScrumSbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para ScrumEliane Collins
 
Padrão de estrangulamento na prática – A jornada de modernização de um legado...
Padrão de estrangulamento na prática – A jornada de modernização de um legado...Padrão de estrangulamento na prática – A jornada de modernização de um legado...
Padrão de estrangulamento na prática – A jornada de modernização de um legado...ThoughtWorks Brasil
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioAdriano Bertucci
 

Mais procurados (20)

DevOps
DevOpsDevOps
DevOps
 
Modernização de Aplicações
Modernização de AplicaçõesModernização de Aplicações
Modernização de Aplicações
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
HP Mobile Testing
HP Mobile TestingHP Mobile Testing
HP Mobile Testing
 
1. Abordagens Ágeis
1. Abordagens Ágeis1. Abordagens Ágeis
1. Abordagens Ágeis
 
Artigo-Alex_Warmling
Artigo-Alex_WarmlingArtigo-Alex_Warmling
Artigo-Alex_Warmling
 
Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de Software
 
DevOps - visão geral
DevOps - visão geralDevOps - visão geral
DevOps - visão geral
 
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
Ii enqs -_implantação_de_fábrica_de_teste_-_desafios,_resultados_e_melhores_p...
 
Apresentação favihc - ihc 2010
Apresentação   favihc - ihc 2010Apresentação   favihc - ihc 2010
Apresentação favihc - ihc 2010
 
Entrega Contínua - 2º Encontro Rational de Desenvolvimento de Software
Entrega Contínua -  2º Encontro Rational de Desenvolvimento de SoftwareEntrega Contínua -  2º Encontro Rational de Desenvolvimento de Software
Entrega Contínua - 2º Encontro Rational de Desenvolvimento de Software
 
Manuencao de software
Manuencao de softwareManuencao de software
Manuencao de software
 
Entrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine LearningEntrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine Learning
 
Sbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para ScrumSbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para Scrum
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Padrão de estrangulamento na prática – A jornada de modernização de um legado...
Padrão de estrangulamento na prática – A jornada de modernização de um legado...Padrão de estrangulamento na prática – A jornada de modernização de um legado...
Padrão de estrangulamento na prática – A jornada de modernização de um legado...
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 
DevOps - Operação contínua
DevOps - Operação contínuaDevOps - Operação contínua
DevOps - Operação contínua
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
 

Semelhante a TDC 2013 7 Dicas para acelerar os testes

Entregando inovação de forma contínua com maior agilidade
Entregando inovação de forma contínua com maior agilidadeEntregando inovação de forma contínua com maior agilidade
Entregando inovação de forma contínua com maior agilidadeAllyson Chiarini
 
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testesBrateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testesananegrello
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMFelipe Freire
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryRodrigo Russo
 
DevOps - Novos Desafios para TI
DevOps - Novos Desafios para TIDevOps - Novos Desafios para TI
DevOps - Novos Desafios para TICarlos Buzeto
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesFelipe Freire
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwarePaulo Lacerda
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Anderson Silveira
 
Vi ebts implantação de fábrica de teste - desafios, resultados e melhores p...
Vi ebts   implantação de fábrica de teste - desafios, resultados e melhores p...Vi ebts   implantação de fábrica de teste - desafios, resultados e melhores p...
Vi ebts implantação de fábrica de teste - desafios, resultados e melhores p...Welington Monteiro
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsRicardo Martins ☁
 

Semelhante a TDC 2013 7 Dicas para acelerar os testes (20)

Entregando inovação de forma contínua com maior agilidade
Entregando inovação de forma contínua com maior agilidadeEntregando inovação de forma contínua com maior agilidade
Entregando inovação de forma contínua com maior agilidade
 
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testesBrateste 2103:  Virtualização de Serviços para uma Nova Abordagem em testes
Brateste 2103: Virtualização de Serviços para uma Nova Abordagem em testes
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
 
DevOps - Novos Desafios para TI
DevOps - Novos Desafios para TIDevOps - Novos Desafios para TI
DevOps - Novos Desafios para TI
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em Testes
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Testes em aplicativos móveis
Testes em aplicativos móveisTestes em aplicativos móveis
Testes em aplicativos móveis
 
Agile mobile testing
Agile mobile testingAgile mobile testing
Agile mobile testing
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
Webinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros ÁgeisWebinar DevOps - Encontros Ágeis
Webinar DevOps - Encontros Ágeis
 
DevOps
DevOpsDevOps
DevOps
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito
 
Vi ebts implantação de fábrica de teste - desafios, resultados e melhores p...
Vi ebts   implantação de fábrica de teste - desafios, resultados e melhores p...Vi ebts   implantação de fábrica de teste - desafios, resultados e melhores p...
Vi ebts implantação de fábrica de teste - desafios, resultados e melhores p...
 
Android apps ci
Android apps ciAndroid apps ci
Android apps ci
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 

Mais de Felipe Freire

IBM Bluemix hands on
IBM Bluemix hands onIBM Bluemix hands on
IBM Bluemix hands onFelipe Freire
 
TDC 2015: Implantação em cloud híbrida
TDC 2015: Implantação em cloud híbridaTDC 2015: Implantação em cloud híbrida
TDC 2015: Implantação em cloud híbridaFelipe Freire
 
IBM MobileFirst Quality Assurance (Português)
IBM MobileFirst Quality Assurance (Português)IBM MobileFirst Quality Assurance (Português)
IBM MobileFirst Quality Assurance (Português)Felipe Freire
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Felipe Freire
 
Acelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOpsAcelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOpsFelipe Freire
 
TDC 2014 Hackathon DevOps
TDC 2014 Hackathon DevOpsTDC 2014 Hackathon DevOps
TDC 2014 Hackathon DevOpsFelipe Freire
 
Abertura encontro rational 12 marco 2013
Abertura encontro rational 12 marco 2013Abertura encontro rational 12 marco 2013
Abertura encontro rational 12 marco 2013Felipe Freire
 
Kanban Apresentação Encontro Rational 2013
Kanban Apresentação Encontro Rational 2013Kanban Apresentação Encontro Rational 2013
Kanban Apresentação Encontro Rational 2013Felipe Freire
 
DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013Felipe Freire
 

Mais de Felipe Freire (10)

Kubecon 2017 Resumo
Kubecon 2017 ResumoKubecon 2017 Resumo
Kubecon 2017 Resumo
 
IBM Bluemix hands on
IBM Bluemix hands onIBM Bluemix hands on
IBM Bluemix hands on
 
TDC 2015: Implantação em cloud híbrida
TDC 2015: Implantação em cloud híbridaTDC 2015: Implantação em cloud híbrida
TDC 2015: Implantação em cloud híbrida
 
IBM MobileFirst Quality Assurance (Português)
IBM MobileFirst Quality Assurance (Português)IBM MobileFirst Quality Assurance (Português)
IBM MobileFirst Quality Assurance (Português)
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)
 
Acelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOpsAcelerando o desenvolvimento na nuvem com BlueMix e DevOps
Acelerando o desenvolvimento na nuvem com BlueMix e DevOps
 
TDC 2014 Hackathon DevOps
TDC 2014 Hackathon DevOpsTDC 2014 Hackathon DevOps
TDC 2014 Hackathon DevOps
 
Abertura encontro rational 12 marco 2013
Abertura encontro rational 12 marco 2013Abertura encontro rational 12 marco 2013
Abertura encontro rational 12 marco 2013
 
Kanban Apresentação Encontro Rational 2013
Kanban Apresentação Encontro Rational 2013Kanban Apresentação Encontro Rational 2013
Kanban Apresentação Encontro Rational 2013
 
DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013DevOps Apresentação Encontro Rational 2013
DevOps Apresentação Encontro Rational 2013
 

TDC 2013 7 Dicas para acelerar os testes

  • 1. © 2011 IBM Corporation 7 Dicas para Acelerar os Testes com Resultados Efetivos 12 de Julho de 2013 Felipe Freire – pfreire@br.ibm.com IBM Software, Rational TDC 2013 @pfelipebr
  • 2. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Sobre a a apresentação – Objetivo Dar armas ao testador para mudar a organização  Compartilhar experiências com testes (dicas)  Experiência IBM em clientes globais  Eventos de testes  STAREAST / STARWEST  BRATESTE  Ajudar a trazer novas idéias para sua empresa
  • 3. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Agenda  Introdução  Dicas  Dê foco aos testes  Antecipe a execução dos testes  Versione tudo (release)  Cloud – Flexibilize os ambientes de testes  Virtualize os serviços e ambientes de testes  Automatize corretamente  Mobile – testar múltipals configurações  Encerramento 3
  • 4. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 4 Speed Value of digital content in 2012, up 50% from 2011 New Insights 1.1.Technology factorsTechnology factors 2. People skills 3. Market factors 4. Macro-economic factors Factors impacting organizations: Technology is the key to success, according to CEOs … IBM Global CEO Study 1 5. Regulatory concerns 6. Globalization 7. Socio-economic factors 8. Environmental issues 9. Geopolitical factors
  • 5. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 5 Qualidade de Software: Problema de custo em todas as indústrias  Softwares são culpados por mais problemas de negócio do que qualquer outro produto feito pelo homem  A baixa qualidade dos softwares tornou-se um dos tópicos mais caros da história humana – > $150 bilhões por ano nos EUA. – > $500 bilhões por ano no mundo.  Projetos cancelados devido a baixa qualidade são > 15% mais custosos do que projetos bem sucedidos de mesmo tipo e tamanho.. Source: Capers Jones, 2011 Based on 675 companies, 35 government/military groups, 13,500 projects, 50-75 new projects/month, 24 countries, 15 lawsuites
  • 6. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 6 Desafios de entregar no prazo com qualidade 34% de todos os novos projetos de TI implantam com atraso** experimenta atrasos na integração, configuração ou teste da aplicação 41% experimentam atrasos para identificação de problemas e ajustes em produção 45% das aplicações sofrem roll-back por problemas de qualidade 51% tempo médio para entregar uma mudança simples 4-6 Semanas tempo médio para isolar um defeito 3-4 SemanasGAP GAP ProduçãoDesenvolvimento Testes 1. Dificuldade em atender às requisições de desenvolvimento e testes para configuração de ambientes – infraestrutura, middleware e aplicações 2. Defeitos em aplicações e problemas de desempenho causam 50% dos rollbacks
  • 7. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Piores práticas – experiência pessoal 1. Deixar os testes para o final do projeto 1. Dois ciclos de testes são o suficiente 1. Qualquer um pode criar e executar os testes 1. Todos os testes devem ser detalhados e muito bem estruturados 1. Buscar 100% de automação 1. Executar o maior número de testes possíveis 1. Todos os defeitos encontrados devem ser corrigidos 1. Ignorar configurações para os testes 7 http://www.slideshare.net/pfelipe/ibm-rational-piores-prticas-em-testes
  • 8. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 1) Dê foco aos testes  O esforço de testes pode beirar o infinito! – Testar todas as variáveis, cenários, configurações…  Onde os testes são mais importantes? – Histórico de outros projetos similares  onde deu problema? – Risco: quaiscaracterísticas do sistema são mais críticas?  Abordagem dos testes Na média, desenvolvedores profissionais cometem de 15 a 50 erros a cada mil linhas de código criadas. Code Complete (2nd edition) http://cc2e.com CoQ = Technical Debt (Agile)
  • 9. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational
  • 10. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational
  • 11. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 2) Antecipe a execução dos testes  Desenvolvimento iterativo / ágil – Entregas parciais – Oportunidade de verificar a qualidade antecipadamente – Ciclos de testes alinhados com as iterações / sprints  “Boas equipes desenvolvem bons softwares"
  • 12. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational
  • 13. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Testes de Sistema Requisitos Teste Unitário UAT OAT Performance Barreiras da Qualidade Ambiente Tradicional Big Bang × Múltiplos defeitos identificados de uma vez × Maior risco × Mais caro
  • 14. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Requisitos Teste Unitário Performance UAT OAT Testes Integrados Teste de Integração Sys Tests  Acelera o teste  Reduz custo  Diminui o risco
  • 15. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 3) Versione tudo – inclusive a infraestrutura
  • 16. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Troque o seu servidor por uma nuvem  Exemplo: 300 servidores para as equipes de desenvolvimento – Cada equipe tem os seus servidores – Hardware obsoleto – Sem controle – Testes e desenvolvimento rodando na mesma máquina
  • 17. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 4) Flexibilize os ambientes de testes Cloud DevOps ↪Common Source Control ↪Automated Builds (Build Definitions) ↪Continuous Integration (CI) ↪Automated Delivery ↪Continuous Delivery to Test (CD) ↪Continuous Delivery to Production-like Systems (Infrastructure as Code) ↪Continuous Delivery thru Prod (Cloud based)
  • 18. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational A esteira de entregas Implantar Ambiente de execução do sistema Repositório de Controle de fontes Artefatos fontes .jsp .java .html chef recipes .sh Artefatos entregáveis Build, Empacota, Testes unitários Binários Configuração da plataforma Biblioteca 18
  • 19. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational E depois que o software é construído? 19 Instruções de Instalação Red Hat Linux Nanana na nana na nanana. Na nanana na nana. Nana nanana nananan na nana na nana nanana na na nanana. Apache Web Server Nanana na nana na nanana. Na nanana na nana. Nana nanana nananan na nana na nana nanana na na nanana. CLOUD deploy.rb cookbook_file "/home/jazz/.jrubyrc" do # handle segfaults that occur when using JRuby w/ the IBM JDK # see: http://jira.codehaus.org/browse/JRUBY-5700 source "jrubyrc" mode "0644" end env_options = { # ensure that build scripts can easily access Java and Jruby from the normal path 'ANT_HOME' => node[:ant][:ant_home], 'JAVA_HOME' => node[:java][:java_path], 'PATH' => "#{node[:java][:java_path]}/bin:#{node[:jruby] [:install_dir]}/jruby/bin:#{ENV["PATH"]}" } # install external gem libs %w{cucumber httpclient rake net-ssh net-scp httpclient jruby-openssl json- jruby rubyzip}.each do |gem_name| execute "install_#{gem_name}" do action :run command "#{node[:jruby][:install_dir]}/jruby/bin/jgem install #{gem_name}" environment(env_options) end deploy.rb cookbook_file "/home/jazz/.jrubyrc" do # handle segfaults that occur when using JRuby w/ the IBM JDK # see: http://jira.codehaus.org/browse/JRUBY-5700 source "jrubyrc" mode "0644" end env_options = { # ensure that build scripts can easily access Java and Jruby from the normal path 'ANT_HOME' => node[:ant][:ant_home], 'JAVA_HOME' => node[:java][:java_path], 'PATH' => "#{node[:java][:java_path]}/bin:#{node[:jruby] [:install_dir]}/jruby/bin:#{ENV["PATH"]}" } # install external gem libs %w{cucumber httpclient rake net-ssh net-scp httpclient jruby-openssl json- jruby rubyzip}.each do |gem_name| execute "install_#{gem_name}" do action :run command "#{node[:jruby][:install_dir]}/jruby/bin/jgem install #{gem_name}" environment(env_options) end
  • 20. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Testing Tradeoffs Cost Fidelity Traditional Staging Environment Testing in Cloud-based Continuous Delivery Testing in Cloud-based Continuous Delivery with Service Simulation Traditional UAT without DevOps Typical JUnit Tests Build Verification Tests
  • 21. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 21 DevOps - checklist • Do you use source control? • Can you deploy a system in one step? • Do you deploy your applications daily and verify them? • Do you have an issue tracking system for operations, linked to a bug database used for development? • Do you validate platform software against expected KPIs, before deploying your application? • Do you have well defined delivery pipeline? • Do you have agreed upon patterns for applications and platforms? • Can your developers launch, use, and destroy representative environments on demand? • Do you provide Infrastructure and Platform as a Service for your development teams? • Do you have automated tests to validate your application function and security? • Do your new operation engineers understand how to automate system administration? • Do your operations and development teams collaborate regularly? *Based on “The Joel Test: 12 Steps to Better Code” http://www.joelonsoftware.com/articles/fog0000000043.html
  • 22. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Define constrained systems and services for virtualization Integration OperabilityUser AcceptanceSystem IntegrationSystemUnit Integration OperabilityUser AcceptanceSystem IntegrationSystemUnit Performance Developer uses virtual services to unit test code on their workstation – no elaborate environment required Development and Test teams uses virtual services for early stage advanced testing The full system or components of the system can be performance tested early in the cycle. Virtual services can be used when components are not available Later in the cycle, final pre- production versions of services are swapped in as they become available. Final testing is done against real services 5) Virtualização de serviços e aplicações benefícios para todo o ciclo
  • 23. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Incremental Integration TestingIncremental Integration Testing Actual Service/App Virtual Service/App Test Virtualization is an enabler for continuous Integration Testing Services, applications, systems are introduced into the continuous integration cycle in a prioritized, controlled fashion. Test Virtualization Solution is a key enabler for Continuous Integration Testing
  • 24. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 6) Automatize corretamente
  • 25. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Há retorno no investimento em automação dos testes?  Testes executados com maior frequencia  Testes levam menos tempo para executar  Leva menos esforço humano para executar os testes  Podemos cobrir mais características do sistema  Podemos executar o equivalente a dias/semanas de testes em poucos minutos / horas
  • 26. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Ferramentas substituem testadores?  “Podemos reduzir o número de testadores uma vez que utilizarmos ferramentas de automação?” – Quem são seus testadores? • Seres “não-pensantes”, ou • Investigadores inteligentes? – Precisamos de mais skills, não menos – Automação pode liberar o testador para realizar mais designs de testes e exploração • E assim achar mais defeitos  Ferramentas não substituem testadores, só suportam eles!
  • 27. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Gerentes: o que buscar na automação dos testes  Benefícios da automação devem ser crescentes – ex: número de testes, cobertura  Custos devem ser cada vez menores – Custo de construção para novos testes, manutenção (por teste), análise de falhas  Sinais de problemas na arquitetura do testware – testadores não-técnicos conseguem escrever e executar testes automatizados? – Me mostre um teste automatizado rodando – Vamos mudar para outra ferramenta? (observe a reação)
  • 28. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational 7) Mobile – testar múltipals configurações Client Tier Devices Mobile-specific challenges: Lots of device targets Provisioning rules and artifacts Curated app stores Dependent upon backend service versions
  • 29. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational
  • 30. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational
  • 31. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational
  • 32. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Resumo 1. Dê foco aos testes 2. Antecipe a execução dos testes 3. Versione tudo (release) 4. Cloud – Flexibilize os ambientes de testes 5. Virtualize os serviços e ambientes de testes 6. Automatize corretamente 7. Mobile
  • 33. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Collaborative Lifecycle Management Delivery Pipeline Delivery Pipeline OSLC Configuration Automation Configuration Automation OSLC Continuous Integration Continuous Integration OSLC Quality Management Quality Management OSLC Provisioning Automation Provisioning Automation OSLC Cloud Pull configurations Track work Trigger deployment Deploy service Track quality Track work Trigger Delivery Update configuration s Pull changes Continuous Delivery Change Management Change Management OSLC OSLC Requirement Management Requirement Management Trigger tests Service Simulation & Testing Service Simulation & Testing OSLC Configure endpoints Start stubs Application Monitoring Application Monitoring OSLC Monitor application Configure agents Link defect Track incident Incident Management Incident Management OSLC Deployment Design Deployment Design OSLC Generate automation
  • 34. © 2012 IBM Corporation Enabling Product and Service Innovation | Rational Links  Jazz.Net  6 Ways for Enterprises to Adopt DevOps blog – http://ibm.co/xq71xY  Understanding and Adopting DevOps (Series on my Blog) – http://bit.ly/MyDevOps  Blog da Rational Brasil – O Mundo depende de software – https://www.ibm.com/developerworks/mydeveloperworks/blogs/rationalbrasil/  Dorothy Graham Independent Test Consultant - www.DorothyGraham.co.uk Felipe Freire (@pfelipebr) pfreire@br.ibm.com

Notas do Editor

  1. Technology will play a critical role in organizations achieving objectives. In fact, in IBM ’s latest CEO study, technology has become the number 1 external factor impacting organizations. Few examples of this…..Cloud speeds service delivery, and so we now see 90% of CIOs view cloud as critical to their plans. We see organizations leveraging mobile to improve reach of services to clients – with 1Bm smart phones and tables shipping in 2012 – a 34% increase in a year. We see over 20B machine centric devices now deployed enabling more responsive business operations and business models. And all of these technologies are generating tremendous data with 2.7 zetabytes of digital content in 2012 – an increase of 50% in one year.
  2. Whatever we are doing is not working
  3. * - Forrestor Study on DevOps, 2011 ** - From a commissioned study conducted by Forrester Consulting on behalf of IBM *** - Need a study Q: What do we see in industry today? A: 41% of organizations experience delays in application installs, 51% of apps rolled back due to production defect, 45% experience delays due to troubleshooting/fine tuning in production. Cycle time – 4-6 weeks to deploy code changes
  4. Step through process begin with let ’ s compare this to the old world. UAT - User Acceptance Testing OAT – Operational Acceptance Testing / Operational Support Testing : operational readiness of a system to be supported.
  5. Step through process begin with let ’ s compare this to the old world.
  6. 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.
  7. Green == Existing capabilities Orange == New capabilities Dashed border and Italics == No OSLC provider specification but is aspirational