automação no processo de teste

Post on 28-Nov-2014

6.749 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

Dúvidas?

� enogueira@targettrust.com.br

� http://sembugs.blogspot.com

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

top related