automação no processo de teste
DESCRIPTION
Palestra ministrada em julho/agosto na TargetTrust (www.targettrust.com.br) por Elias Nogueira sobre Automação no Processo de TesteTRANSCRIPT
Aplicando Automação
no Processo de Teste
Elias NogueiraElias NogueiraInstrutor T@rget Trust
BEM VINDOS!!!
Palestrante
� Elias Nogueira
� Instrutor T@rgetTrust� Introdução ao Processo de Teste de Software
� Técnicas de Teste de Software
� Ferramentas para Automação de Teste de Software� Ferramentas para Automação de Teste de Software
� Graduando em Analise e Desenvolvimento de Sistemas
� Engenheiro de Teste na GoDigital Tecnologia
� Skill: Desenvolvedor Java
� Linhas de teste:� Automação
� Aplicações Georeferenciadas
� Aplicações de Qualidade de dados
Agenda
� O que é Automação de Teste?
� Onde inserir Automação no Processo de Teste?
� Quem é o responsável pela Automação?
� Benefícios� Benefícios
� ATLM-Automated Testing Lifecycle Methodology
� Ferramentas
Introdução
� Hoje a realidade do desenvolvimento de software tem se tornado muito ágil
� Prazos são cada vez mais curtos
� Novas funcionalidades são desenvolvidas a todo o tempo
� Maior demanda de teste e qualidade nos projetos
� Temos, como Testadores, Analistas ou Gerentes de Teste que acompanhar o ritmo de mercado
� Mas como tornar os testes e suas entregas cada vez mais ágeis
O que é Automação de Teste?
� Processo de Teste Manual
� Teste e Automação de Testes
O que é Automação de Teste
� Processo/Ciclo de Vida de Teste
O que é Automação de Teste - 1 de 2
O que é Automação de Teste?
� Automação de um processo manual em teste de software
� É a utilização de qualquer ferramenta que torne o trabalho de testar mais rápido e assertivo
� Teste e Automação de Teste são diferentes
Teste Automação
Aplica a expertise Desenvolve a Expertise
O que testar? Como automatizar?
Casos de Teste Scripts de Teste
O que é Automação de Teste - 2 de 2
Onde inserir Automação no Processo de Teste?
� V-Model
� V-Model com ferramentas
� Processo de Teste com ferramentas
V-Model
Necessidades
Operacionais
RequisitosTeste de
Sistema
Teste de
Aceitação
validação
validação
Desenho
Codigo Teste Unitário
Teste de
Integração
Sistema
validação
validação
Onde inserir automação no processo de Teste - 1 de 3
V-Model com ferramentas
Teste de
Sistema
Teste de
Aceitação
Requisitos
Necessidades
Operacionais
Ferramenta de Performance
Código Teste Unitário
Teste de
Integração
Sistema
Design
Requisitos
Ferramenta de design:
Desenho LógicoDesenho Físico
Ferramenta AnáliseEstáticaDebugging
Ferramenta Teste UnitárioCobertura Código
Ferramenta Analise Dinâmica
FerramentaExecução e Comparação
FerramentaGerenciamento
Onde inserir automação no processo de Teste - 2 de 3
Processo de Teste com Ferramentas
Automação de Teste
Ferramentas de Apoio
Definição de
Requisitos
Projeto Implementação Teste Implantação
Controle de Versões
Gestão de Projetos
Gestão de Testes
Gestão de Defeitos
Automação de Teste
Onde inserir automação no processo de Teste - 3 de 3
Quem é o responsável pela Automação?
� Papel do Engenheiro de Teste
� O que um Eng. De Testes precisa saber?
� Quanto ganha um Engenheiro de Teste?
Papel do Engenheiro de Teste
� Sua função é criar estratégias de teste que serão utilizadas em produtos, aplicando toda e qualquer técnica de teste em um produto em desenvolvimento
� Dentro da organização costuma:� Criar e executar testes não funcionais
� Criar o ambiente necessário
� Automatizar testes funcionais
� Criar cenários de teste mais abrangentes
Quem é o responsável pela Automação - 1 de 3
O que um Eng. De Testes precisa saber?
� Linguagem de programação
� Sistemas Operacionais
� Conhecimento avançado das Técnicas de Teste
� Ferramentas de Automação
� Linguagem SQL
� Arquitetura de Software
� Configuração de Ambientes
� Execução de Testes não Funcionais
� Habilidade de comunicação com pessoas técnicas
Onde inserir automação no processo de Teste - 2 de 3
Quanto ganha um Engenheiro de Teste?
� Dados retirados da pesquisa de Cargos e Salários de 2007 promovida por Cristiano Caetano
� Como na pesquisa não temos a função Engenheiro de Teste, compilamos as três funções mais próximas
Função Menor Salário Maior Salário Média
Arquiteto de Teste R$ 4.750 R$ 5.000 R$ 4.875
Automatizador de Teste R$ 1.450 R$ 2.500 R$ 1.975
Analista de Teste R$ 1.528 R$ 3.210 R$ 2.369
Medias Gerais R$ 2.576 R$ 3.570 R$ 3.073
Fonte: Site TestExpert http://www.testexpert.com.br/?q=node/231
Onde inserir automação no processo de Teste - 3 de 3
Benefícios
� Principais benefícios da automação
� Problemas da automação
� ROI – Retorno do Investimento� ROI – Retorno do Investimento
� Maiores candidatos a automação
Principais benefícios da automação
� Testes Efetivos em cada release (regressão)
� Executar teste com maior freqüência
� Executar testes que seriam impossíveis de serem executadosexecutados
� Consistência e repetibilidade
� Testadores podem focar em issues avançadas
� Maior cobertura dos testes funcionais
� Reuso dos testesBenefícios- 1 de 7
Problemas da automação
� Falsa expectativa
� Pratica de teste “pobre”
� Expectativa que a automação irá achar uma serie de novos defeitos
Falso senso de segurança� Falso senso de segurança
� Problemas técnicos
� Cultura organizacional
� Não substitui o teste manual
� Testes manuais acharão mais defeitos
� Ferramentas não tem imaginação
Benefícios- 2 de 7
ROI – Retorno do Investimento
� ROI: Índice financeiro que mede o retorno de determinado investimento
� Em automação, todos os custos devem ser levados em consideração:consideração:� Hardware
� Software
� Treinamento
� Licenças
� Tempo
Benefícios- 3 de 7
ROI – Retorno do Investimento
� Exemplo
Item Recurso Tempo Custo Unit. Custo Total
Desenvolver um teste manual para um módulo Testador 3 dias R$ 30/dia R$ 90
Executar o teste manual 2 Testers 1 dia e meio R$ 30/dia R$ 90
Desenvolver o teste automático Testador 5 dias R$ 30/dia R$ 150
Executar o teste automático Testador 1 hora R$ 30/dia R$ 3.75
Atualizar teste manual Testador 1 dia R$ 30/dia R$ 30
Atualizar teste automático Testador 1 dia R$ 30/dia R$ 30
Benefícios- 4 de 7
ROI – Retorno do Investimento
� Executando este processo por 12 meses
Custo da Automação: tempo para desenvolver os scripts + tempo para executar os scripts + tempo para atualizar o scriptCusto da Automação: R$ 150 + (R$ 3,75 * 12) + (R$ 30 * 12)Custo da Automação: R$ 150 + 45 + R$ 360Custo da Automação: R$ 555Custo da Automação: R$ 555
Custo manual: tempo para desenvolver os casos de teste + tempo para executar os casos de teste + tempo para atualizar o caso de testeCusto Manual: R$ 90 + (R$ 90 * 12) + (R$ 30 * 12)Custo Manual: R$ 90 + 1080 + 360Custo Manual: R$ 1530
ROI: (custo da automação + custo manual) / custo da automaçãoROI: (R$ 1530 - R$ 555) / R$ 1530ROI: 63%
Benefícios- 5 de 7
ROI – Retorno do Investimento
� Problemas no calculo:
� Testes não são os mesmos
� Diferentes técnicas são aplicadas
� Inicie pelos retornos tangíveis
Benefícios- 6 de 7
Maiores candidatos a automação
� Testes funcionais
� Testes de performance
� Outros testes não funcionais
� Ordem de importância:
� Testes mais críticos
� Testes com funções mais utilizadas
� Testes de fácil automação
� Testes que podem ser executados com freqüência
Benefícios- 7 de 7
ATLM
� Metodologia para o Ciclo de Vida dos Testes Automatizados
� Criado por Elfried Dustin
� Automated Software Testing: Introduction, Management, and Performance
� Práticas
� Decisão por Automatizar os Testes
� Aquisição de Ferramentas de Teste
� Processos de Introdução dos Testes Automatizados
� Planejamento, Design e Desenvolvimento dos Testes
� Execução e Gerenciamento dos Testes
� Revisão e Avaliação do Programa de Testes
ATLM
Automated Testing Lifecycle Methodology- 1 de 7
ATLM
� Decisão por Automatizar os Testes
� Levantamento de todas as expectativas dos stakeholders
� Levantamento do que precisa ser automatizado
� Remover a expectativa de “ferramenta faz-tudo”
� Automatizar o processo não exclui o fator humano
� Podemos ter mais de uma ferramenta para o mesmo processo
Automated Testing Lifecycle Methodology- 2 de 7
ATLM
� Aquisição de Ferramentas de Teste
� Efetuamos a avaliação das ferramentas para o processo escolhido
� Levantar todas as funcionalidades desejadas� Levantar todas as funcionalidades desejadas
� Levantar as expectativas de ferramenta no processo
� Criar um documento de comparação (benchmark)
� Avaliar demos, help, suporte, aplicação, etc...
� Quem decide: todos os stakeholders
� Nem sempre aquisição é gasto com licença de ferramentaAutomated Testing Lifecycle Methodology- 3 de 7
ATLM
� Processos de Introdução dos Testes Automatizados
� Inicio dos testes automatizados dentro da organização
� Revisa o processo atual de teste
� Aplica testes internos com a ferramenta no processo
� Todas as métricas e percepções são coletadas
Automated Testing Lifecycle Methodology- 4 de 7
ATLM
� Planejamento, Design e Desenvolvimento dos Testes� Rever todo o planejamento da automação
� Identificação de todos os subsídios para posterior execução� Normas e diretrizes
� Hardware� Hardware
� Software
� Massa de Dados
� Cronograma
� Procedimentos
� Atualização do Plano de Teste
� Definição da Freqüência de execução
� Desenvolver os testes automatizados
Automated Testing Lifecycle Methodology- 5 de 7
ATLM
� Execução e Gerenciamento dos Testes
� Execução de acordo com o planejamento
� Testes focados em componentes
� Testes focados em integração funcional
� Avaliar estabilidade do hardware e software
� Executar pelo menos uma vez testes manuais
� Sempre informar a origem do defeito (manual ou automático)
Automated Testing Lifecycle Methodology- 6 de 7
ATLM
� Revisão e Avaliação do Programa de Testes
� Revisão do Programa de Teste
� Revisão das Ferramentas de Teste
� Revisão da documentação gerada
� Revisão de métricas coletadas
� Coleta de feedbacks
� Transformar tudo em lições aprendidas
Automated Testing Lifecycle Methodology- 7 de 7
Ferramentas
� Overview
� Ferramentas Pagas
� Ferramentas Free/Open Source
� Desenvolvimento Interno
Overview
� Para automatizar qualquer processo no ciclo de vida de teste precisamos optar por adquirir uma ferramenta
� Cada ferramenta atua num determinado nicho de negócio
� Existem basicamente3 alternativas:� Comprar um ferramenta
� Adotar um ferramenta free/open source
� Desenvolver uma ferramenta
Ferramentas - 1 de 11
Ferramentas pagas
Empresa IBM/Rational HP/Marcury Compuware Borland/Silk AutomatedQA
Site
http://www-306.ibm.com/software/rational/offerin
gs/quality/
https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-127_4000_100__
http://www.compuware.com/solutions/6593_ENG_HTM
L.htm
http://www.borland.com/us/products/silk/silktest/index.ht
ml
http://www.automatedqa.com/
Ferrament
as
• Gestão de Requisitos
• Gestão de Testes
• Testes Funcionais
• Testes Regressão
• Teste Performance
• Qualidade Código
• Teste sistemas embarcados
• Gestão de Requisitos
• Gestão de Testes
• Testes Funcionais
• Testes Regressão
• Teste Performance
• Qualidade Código
• Quality Center
• Gestão de Requisitos
• Gestão de Testes
• Testes Funcionais
• Testes Regressão
• Teste Performance
• Qualidade Código
• Gestão Teste
• Gestão ágil de testes
• Testes Funcionais
• Testes Regressão
• Teste Performance
• Gestão Teste
• Testes Funcionais
• Testes Regressão
• Teste Performance
Ferramentas – 2 de 11
Ferramentas free/opensource
� Prós� Ganhando mercado pela facilidade de utilização
� Facilidade de instalação
� Sem custos diretos
� Ferramentas colaborativas
� Contras� Falta de integração entre ferramentas relacionadas
� Funcionalidades não tão bem desenvolvidas
� Gastos com tempo de aprendizado e treinamento
Ferramentas - 3 de 11
Ferramentas free/opensource
� Onde encontrar ferramentas free/open source?
� OpenSourceTesting
http://opensourcetesting.org
� SoftwareQATest� SoftwareQATest
http://www.softwareqatest.com/qatweb1.html
� SourceForge.net
� Quality Assurance
http://sourceforge.net/softwaremap/trove_list.php?form_cat=565
� Testing
http://sourceforge.net/softwaremap/trove_list.php?form_cat=575
Ferramentas - 4 de 11
Teste Unitário
Nome JUnit NunitEmma CodeCoverage
Site http://www.junit.org/http://www.nunit.org/in
dex.phphttp://emma.sourcefor
ge.net/
Tecnologia Java .NET Java
FinalidadeFramework de teste unitário para Java
Framework de teste unitário para .NET
Analise de testeunitário para informação de
cobertura do código
Ferramentas - 5 de 11
Nome TestLink QAManager Salomé TMF
Gerenciamento de Teste
Site http://www.teamst.org/http://qamanager.sourceforge.net/site/en/
https://wiki.objectweb.org/salome-tmf/
Tecnologia PHP Java Java
Finalidade
Criação e gerenciamento de Planos e Casos de
Teste
Gerenciamento de projetos de QA/Time
Framework de Gerenciamento de
Teste
Ferramentas - 6 de 11
Nome BadBoy Selenium Watir
Execução de Testes Funcionais
Sitehttp://www.badboy.co
m.au/http://selenium.openqa
.org/http://wtr.rubyforge.org
Tecnologia Web Web Web
FinalidadeAutomação por
capture/replay na Web com suporte a Ajax
Suíte de ferramentas para automação de páginas Web via capture/replay
Automção de testes para páginas Web via programação (Ruby)
Ferramentas - 7 de 11
Nome Mantis BugZilla Eventum
Gestão de Defeitos
Sitehttp://www.mantisbt.or
g/http://www.bugzilla.org
/
http://dev.mysql.com/downloads/other/eventu
m/
Tecnologia PHP Pearl PHP
FinalidadeGestão de defeitosleve e customizavel
Gestão de Defeitos escalável e configurável
Gestão de defeitos dsenvolvida pelo
MySQL
Ferramentas - 8 de 11
Nome JMeter OpenSTA WebLOAD
Performance, Carga e Stress
Sitehttp://jakarta.apache.o
rg/jmeter/http://www.opensta.or
g/http://www.webload.or
g/
Tecnologia Java C++ C++
FinalidadePerformance para conteúdo estático e dinâmico para Java
Performance baseados em
arquitetura CORBA
Perfomance para aplicações Web
Ferramentas - 9 de 11
Nome Data Generator Benerator
Massa de Dados
Sitehttp://www.generateda
ta.com/http://databene.org/databene-benerator/
Tecnologia PHP Java
FinalidadeGera grande volume de dados em diversos
formatos
Framework para geração de grandes volumes de dados
Ferramentas - 10 de 11
Desenvolvimento interno
� Considerações para a escolha de desenvolvimento
� Será mais adequada para suas necessidades
� Compensa a falta de testabilidade de um software
Assume conhecimento da aplicação e tecnologia� Assume conhecimento da aplicação e tecnologia
� Não terá muito suporte de documentação
� Interface com o usuário pode deixar a desejar
Ferramentas - 11 de 11