automação no processo de teste

44
Aplicando Automação no Processo de Teste Elias Nogueira Elias Nogueira Instrutor T@rget Trust BEM VINDOS!!!

Upload: elias-nogueira

Post on 28-Nov-2014

6.747 views

Category:

Documents


0 download

DESCRIPTION

Palestra ministrada em julho/agosto na TargetTrust (www.targettrust.com.br) por Elias Nogueira sobre Automação no Processo de Teste

TRANSCRIPT

Page 1: Automação no Processo de Teste

Aplicando Automação

no Processo de Teste

Elias NogueiraElias NogueiraInstrutor T@rget Trust

BEM VINDOS!!!

Page 2: Automação no Processo de Teste

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

Page 3: Automação no Processo de Teste

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

Page 4: Automação no Processo de Teste

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

Page 5: Automação no Processo de Teste

O que é Automação de Teste?

� Processo de Teste Manual

� Teste e Automação de Testes

Page 6: Automação no Processo de Teste

O que é Automação de Teste

� Processo/Ciclo de Vida de Teste

O que é Automação de Teste - 1 de 2

Page 7: Automação no Processo de Teste

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

Page 8: Automação no Processo de Teste

Onde inserir Automação no Processo de Teste?

� V-Model

� V-Model com ferramentas

� Processo de Teste com ferramentas

Page 9: Automação no Processo de Teste

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

Page 10: Automação no Processo de Teste

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

Page 11: Automação no Processo de Teste

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

Page 12: Automação no Processo de Teste

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?

Page 13: Automação no Processo 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

Page 14: Automação no Processo de Teste

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

Page 15: Automação no Processo de Teste

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

Page 16: Automação no Processo de Teste

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

Page 17: Automação no Processo de Teste

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

Page 18: Automação no Processo de Teste

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

Page 19: Automação no Processo de Teste

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

Page 20: Automação no Processo de Teste

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

Page 21: Automação no Processo de Teste

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

Page 22: Automação no Processo de Teste

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

Page 23: Automação no Processo de Teste

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

Page 24: Automação no Processo de Teste

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

Page 25: Automação no Processo de Teste

ATLM

Automated Testing Lifecycle Methodology- 1 de 7

Page 26: Automação no Processo de Teste

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

Page 27: Automação no Processo de Teste

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

Page 28: Automação no Processo de Teste

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

Page 29: Automação no Processo de Teste

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

Page 30: Automação no Processo de Teste

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

Page 31: Automação no Processo de Teste

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

Page 32: Automação no Processo de Teste

Ferramentas

� Overview

� Ferramentas Pagas

� Ferramentas Free/Open Source

� Desenvolvimento Interno

Page 33: Automação no Processo de Teste

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

Page 34: Automação no Processo de Teste

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

Page 35: Automação no Processo de Teste

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

Page 36: Automação no Processo de Teste

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

Page 37: Automação no Processo de Teste

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

Page 38: Automação no Processo de Teste

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

Page 39: Automação no Processo de Teste

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

Page 40: Automação no Processo de Teste

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

Page 41: Automação no Processo de Teste

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

Page 42: Automação no Processo de Teste

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

Page 43: Automação no Processo de Teste

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

Page 44: Automação no Processo de Teste

Dúvidas?

[email protected]

� http://sembugs.blogspot.com

� http://www.targettrust.com.br