Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP

31
Automação: Viabilidade e Demo com o QTP Marcos José Hermes [email protected]

description

Material utilizado na primeira parte do evento Viabilidade e Conceitos Básicos de Automação com o QTP, promovido pelo GUTS-RS em 28/abril/2010. Mais em http://guts-rs.blogspot.com

Transcript of Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP

Automação:

Viabilidade e Demo

com o QTP

Marcos José [email protected]

Agenda

Automação de Testes de Software

Planejamento em Automação

Viabilidade em Automação

Conceitos Básicos

Hands On

Resumo

Expectativa

Revisar alguns conceitos relacionados à automação

Dicas sobre o que deve/não deve ser automatizado

Fomentar a discussão sobre diferentes tipos de automação (não apenas UI)

Dicas para aumentar a efetividade da automação

Ver como o QTP implementa algumas funcionalidades comuns às ferramentas de automação

Introdução

Diferentes tipos de testes (e de automação) Unit Test, UI, banco de dados, web services, etc.

Estimativas para escrita X execução de testes automatizados

Métricas em automação Tempo de escrita, # de execuções,

estabilidade dos scripts

Automação de necessidades (tarefas) X automação de testes

Automação de Testes de Software

Automação de teste de software é o uso de software para controlar a execuçãode testes, comparação de saídasprevistas com entradas fornecidas, configuração de pré-condições de ambiente e de dados, além de outros controles de testes e geração de relatórios.

Avaliação de Viabilidade da

Automação: Macro e Micro

Viabilidade macro diz respeito à

maturidade da empresa para a adoção de

processos de teste com custo baixo e alta

efetividade. Está diretamente ligada à

gerência sênior da empresa.

Viabilidade micro diz respeito aos cenários

de teste e quão rápido pode-se recuprar o

investimento em dado cenário. Está

diretamente ligada à equipe de testadores.

Planejamento em Automação:

Alguns Critérios Importantes

Planejar o que e quando algo deve ser

automatizado é fundamental

Estabelecer cronogramas de entregas

Treinar os usuários dos testes

Monitorar a execução dos scripts

Padronizar os processos de desenvolvimento

Fomentar o reuso de componentes

(bibliotecas de funções e trechos de script)

Desenvolver aplicações “testáveis”

Planejamento em Automação:

Cronogramas de Entrega

Assim como no desenvolvimento de

aplicações, o desenvolvimento de scripts

automatizados deve seguir um processo

consistente, desde o estabelecimento dos

requisitos do teste, até sua codificação,

teste e aceitação por parte dos usuários

Hein?! Testar o teste?

Mas então não é só gravar o script uma vez e

depois reproduzir infinitas vezes?

Planejamento em Automação:

Treinamento

Treinamento aos futuros usuários dos

scripts automatizados é fundamental!

Os usuários não usarão o que não conhecem

ou não serão efetivos na tarefa

Além de criar e executar scripts, é preciso

interpretar os resultados das execuções de

maneira correta

Muitas empresas sofrem com a resistência de

seus testadores, pois eles temem perder seus

empregos (boicote) => quebra de paradigma

Planejamento em Automação:

Monitoramento da Execução

Além de criar excelentes scripts

automatizados, é preciso verificar se os

usuários estão de fato tirando proveito dos

mesmos

O custo do desenvolvimento de scripts é alto

Para um script “se pagar”, é preciso que ele

seja de fato executado no lugar do seu

equivalente manual

Estabelecer metas quanto ao uso dos scripts

automatizados

Planejamento em Automação:

Padronização do Desenvolvimento

Projetos de automação devem ser

controlados como projetos reais de

desenvolvimento

A equipe inteira deve seguir um único padrão

de desenvolvimento

Padrões diminuem os custos do

desenvolvimento e facilitam a manutenção do

código

Hummm… estamos ainda falando de teste??!

Planejamento em Automação:

Reuso de componentes

Como parte do planejamento, deve-se

identificar os processos comuns dentro da

aplicação e dividí-los em diferentes

componentes, de modo a reutilizá-los em

diversos scripts

Facilita a codificação, pois basta chamar o

componente em vez de codificar a mesma

função diversas vezes, diminuindo custos

Facilita a manutenção, pois basta atualizar

um componente para arrumar todos os scripts

Planejamento em Automação:

Aplicações Testáveis

As ferramentas de automação devem ter

acesso direto, simples e consistente

aos objetos de teste da aplicação

O custo de métodos de acesso avançados é

muito superior aos métodos diretos

A manutenção dos scripts também fica mais

cara

Como testador, você confia na mensagem

“A operação foi realizada com sucesso”?

Tá, mas… e a Viabilidade?

A automação é viável em empresas maduras, cujos

processos de desenvolvimento sejam mensuráveis e

padronizados, bem como as aplicações a ser testadas

sejam desenvolvidas levando a automação em conta

A adoção da automação como um requisito não

funcional das aplicações é muito importante

Além da “viabilidade macro” (a nível de organização),

também devemos avaliar a “viabilidade micro” (a nível

de cenário de teste)

Viabilidade Micro: Cenários que

Devemos Automatizar

Cenários repetitivos (casos de teste diferentes)

e executados com freqüência

Testes de Performance

Testes unitários

Testes de regressão

Criação de dados

Smoke tests

Camada de negócio / Webservices

Custo de manutenção geralmente inferior aos testes

baseados em GUI

O que Não Devemos Automatizar?

Cenários/requisitos que serão alterados

Execução baixa X custo de manutenção alto

Scripts que serão executados apenas uma vez (existem

excessões!)

Cenários novos/instáveis

“Testes” sem entradas/saídas bem definidas (ad hoc e

exploratórios)

Testes muito simples ou muito complicados

Aplicações que não serão alteradas ou em fase de

desligamento/descontinuadas (existem excessões!)

A quantia de ciclos de teste não paga o custo dos scripts

CBA – Cost Benefit Analysis

Ajuda a identificar os scripts que trarão o maior retorno ao serem automatizados

Cálculo simples que leva em conta: Número de casos de teste a serem substituídos

Tempo de desenvolvimento dos scripts manuais e automatizados

Ciclos de teste futuros

Número estimado de execuções por ciclo de teste

Tempo de execução manual e automatizado (?)

Algo mais?

Ferramentas

Sim, mas… e a ferramenta de automação??!!

Qual é a mais viável??

ATENÇÃO!

CUIDADO com ferramentas (ou

fabricantes/vendedores de ferramentas) que

prometem resolver todos os seus problemas!

De nada adianta possuir a melhor ferramenta se

não souber utilizá-la!

Os scripts apenas fazem o que foram

codificados para fazer!

Nem tudo deve ser automatizado! Na maioria

dos ciclos de teste haverá tanto scripts

automatizados quanto manuais

Viabilidade e a Ferramenta a

ser Escolhida

Após a análise de viabilidade macro, deve-se

avaliar quais ferramentas disponíveis no

mercado são capazes de atender as

necessidades identificadas

Deve-se levar em conta:

Tecnologias suportadas X necessidades da empresa

Facilidade de uso

Integração com outras ferramentas

Custo de licenças ao longo dos anos

Adaptação a diferentes cenários, simples ou

complexos

Viabilidade: Resumo

Mais importante que a ferramenta de automação, temos que ter em mente que planejar adequadamente os testes a serem automatizados é uma parte fundamental e crítica para o sucesso (CBA, ROI). Além disso, temos que considerar a forma com que a aplicação foi codificada (Design for Testability)

É preciso seguir as boas práticas relacionadas tanto a desenvolvimento quanto teste manual de software

Treinamento adequado é essencial para o sucesso da automação Criação e execução de scripts, além de avaliação de resultados

Ferramentas mal escolhidas tornam-se shelfware

Propaganda

Oficina de QTP Carga horária: 8 horas

Data: 24 a 27 de maio

Horário: 19h às 21h

A distância - web conferência

Automação de Testes Funcionais com QTP Carga horária: 16 horas

Data: 21 a 24 de junho

Horário: 18:45 às 22:45

Local: TargetTrust - Porto Alegre

Mais Informações em http://www.qualister.com.br (link "Cursos")

Vendo AP 2 dorm. Semi-mobiliado, vaga garagem e depósito – Chácara das Pedras

Conceitos Básicos e Demo com

QTP Considerações:

Não é um curso de QTP

Foco principal em ver como os conceitos são implementados com uma ferramenta líder no mercado

Exemplo simples, para demonstrar conceitos

Os conceitos são válidos para outras ferramentas

Existem infinitas maneiras de resolver o mesmo problema

Conceitos Básicos

Componente de interface (objeto) Identificados por propriedades (atributos e valores)

Comandos básicos Clicar, entrar valores, comparar resultados (checkpoint), salvar

dados (output values)

Cenário de teste

Caso de teste

Tipos de teste: Record/playback, Keyword driven, Data driven

Relatórios Devem ser completos e consistentes. O usuário deve saber

inequivocamente se o teste passou ou falhou, bem como o motivo da falha, se for o caso

Exemplo de Cenário e Testes

Cenário de teste: inserir novo usuário

Casos de teste:

Hands On

Script Manual

Script Manual

Ações Resultados Esperados

Abra o browser e navegue para a

URL

“http://localhost/prestashop/backoffi

ce”

Verifique que a tela de login do backend

do Prestashop é exibida

- Entre com o endereço de email na

caixa de texto “E-mail address:”

- Entre com a senha na caixa de

texto “Password:”

- Clique no botão “Connection”

- Verifique que a tela principal do

backend do Prestashop é exibida

- Verifique que o nome do usuário é

exibido no canto superior direito da tela

do sistema

- Verifique que o applet “Statistics” é

exibido

Q & A

Perguntas?

Críticas?

Sugestões?

Backup Slides

Design for Testability

Ferramentas de automação precisam manipular

objetos na tela

Propriedades dos objetos devem estar expostas

Devem identificar cada objeto de maneira única

Devem permanecer inalteradas entre as diferentes

sessões de teste

Usar somente componentes de interface padrões do

toolkit gráfico

Documentar as camadas de negócio (webservices)

Design For Testability - Exemplo

tabGeral.txtNome

frmGeral.txtSobrenome

tabInfoTutor.txtNome

frmGeral.txtSobrenome