automação de testes para equipes agile

51
Automação de testes para equipes Agile Alini Gottardi

Upload: alini-rebonatto

Post on 27-Jun-2015

367 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Automação de testes para equipes agile

Automação de testes para equipes Agile

Alini Gottardi

Page 2: Automação de testes para equipes agile

Apresentação

Alini Gottardi Ciência da Computação, Unicsul, 2004 MBA em Teste de Software, Unieuro, 2012 Certificação CBTS, 2013

Desenvolvedora PHP, Tray Sistemas Coordenadora de Qualidade, Buscapé Analista de Automação, BM&FBovespa Analista de Testes Pleno, Clearsale

Page 3: Automação de testes para equipes agile

Papéis na Área de Teste

Segundo o livro Base de Conhecimento em Testes de Software

Analista de TestesArquiteto de TestesTestadorAutomatizador

Page 4: Automação de testes para equipes agile

Analista de Testes

Planeja, analisa riscos, estabelece prioridades de testes, cria os casos de teste

Page 5: Automação de testes para equipes agile

Arquiteto de Testes

Levanta e instala ferramentas, disponibiliza e configura ambientes, garante infra-estrutura

Page 6: Automação de testes para equipes agile

Testador

Executa os casos de teste, documenta a execução, elabora relatórios, investiga o sistema em tempo de execução

Page 7: Automação de testes para equipes agile

Automatizador

Cria sistemas que testam sistemas...

Page 8: Automação de testes para equipes agile

Imagine o cenário atual

Equipe metodologia cascata

Page 9: Automação de testes para equipes agile

Vamos modernizar! Vamos ser Ágeis!

Page 10: Automação de testes para equipes agile

Novo cenário Agile/Scrum/Kanban...

Page 11: Automação de testes para equipes agile

Novo cenário Agile/Scrum/Kanban...

3 desenvolvedores1 Tester multitarefaO start da equipe é ao mesmo tempoNo primeiro dia de desenvolvimento,

tester já precisa estar trabalhando juntoMas nem há o que testar, o que fazer???No segundo sprint é preciso garantir que o

sprint anterior continua funcionando

Page 12: Automação de testes para equipes agile

Gargalo no testador!!!

Page 13: Automação de testes para equipes agile

Então vamos automatizar os testes!

Cria-se o teste uma só vez e pode ser reexecutado N vezes

A cada novo build, podemos executar a regressão e verificar se não quebrou nada

Um script de teste bem escrito pode ser uma documentação executável, diminuindo tempo de escrita

BDD

Page 14: Automação de testes para equipes agile

Então vamos automatizar os testes!

Cria-se o teste uma só vez e pode ser reexecutado N vezes

A cada novo build, podemos executar a regressão e verificar se não quebrou nada

Um script de teste bem escrito pode ser uma documentação executável, diminuindo tempo de escrita

BDD

Page 15: Automação de testes para equipes agile

BDD - Futuro da Automação?

Três princípios para BDD1.Negócio e Tecnologia deveriam “falar”

sobre um sistema da mesma forma;2.Qualquer sistema deveria ter um valor

identificável e verificável para o “negócio”;

3.Análise, design e planejamento precoce tem, sempre, retorno questionável.

Page 16: Automação de testes para equipes agile

Por que BDD funciona?

BDD se apóia no uso de um vocabulário pequeno e bem específico, o que minimiza “ruídos” na comunicação de forma que tanto TI quanto do negócio estejam alinhados.

A “venda da ideia” para BDD costuma ser mais fácil do que para TDD. Embora, por envolver mais gente, seja mais “trabalhoso” de implantar.

Page 17: Automação de testes para equipes agile

Automação Viva

BDD associa os benefícios de uma documentação formal, escrita e mantida pelo “negócio”, com testes de unidade que “demonstram” que essa documentação é efetivamente válida.

Isso garante que a documentação deixa de ser um registro estático, que se converte em algo gradualmente ultrapassado, em um artefato “vivo” que reflete constantemente o estado atual de um projeto.

Page 18: Automação de testes para equipes agile

Exemplo – Teste Executável

Page 19: Automação de testes para equipes agile

Exemplo - Background

Page 20: Automação de testes para equipes agile

Todos os problemas resolvidos!

Será?????

Page 21: Automação de testes para equipes agile

Todos os problemas resolvidos

Não é bem assim!

Page 22: Automação de testes para equipes agile

Não é bem assim!

Se mal tem tempo de testar, quanto mais automatizar

Escolha da ferramenta (web, desktop, webservice)

Know-how da equipeComplexidade e testabilidade do sistemaPapéis dentro da equipeNão se perder desenvolvendo um sistema

versus criar testes

Page 23: Automação de testes para equipes agile

1) Se mal tem tempo de testar, quanto mais automatizar

Time ágil: todos os membros em busca da qualidade e da entrega

Teste unitário dos desenvolvedores também é testware!

Testador ajuda o desenvolvedor com a massa de teste

Se a automação for complexa, ter um responsável fora da equipe (arquiteto)

Page 24: Automação de testes para equipes agile

2) Não automatizar todos os casos de teste

Manutenção constanteFragilidade do script GUI (Grafic User

Interface)Relevância/prioridade do caso de testeFalsa sensação de que está tudo coberto

Page 25: Automação de testes para equipes agile

3) Não automatizar incertezas

Metodologia ágil é instável, os requisitos mudam todos os dias

Evitar:Módulos com funções ainda a serem

definidasTestes que não serão reutilizadosAutomação leva 3x mais tempo

Page 26: Automação de testes para equipes agile

4) Quando o sistema não é testável

Testes unitários x Sistema em linguagem procedural

Elementos HTML Inacessíveis (problema GUI)

Janelas javascript/popupFuncionalidades transparentes ao usuárioAntes de sair codificando, testador deve

definir seus requisitos de testabilidade

Page 27: Automação de testes para equipes agile

5) Separar os ambientes

Testar no ambientes dos desenvolvedores não dá certo!

Suja a baseEstraga pré-condiçõesSolução:

Fechar builds periódicos do dev para teste

Se houver integração contínua melhor ainda!

Page 28: Automação de testes para equipes agile

6) Realizar estudo das ferramentas

Quem vai usar a ferramenta, qual o seu propósito e quais problemas essa ferramenta irá ajudar a resolver

Que tipo de processo ela irá suportar e em caso de mudanças no processo, a ferramenta pode ou não ser adequada facilmente

Que funcionalidades a ferramenta precisa ter (e.g. quais relatórios devem ser extraídos);

Page 29: Automação de testes para equipes agile

6) Realizar estudo das ferramentas

Quem deve ter acesso à ferramenta e que nível de controle de acesso e administração é necessário

Que tipo de interface com o usuário é necessária (e.g. GUI ou linha de comando);

Com quais plataformas a ferramenta precisa ser compatível;

Qual o orçamento e tempo disponíveis para aquisição e manutenção;

Page 30: Automação de testes para equipes agile

7) Manutenção sempre

O script fica obsoleto muito rapidamente com as mudanças do sistema

Se não for sempre executado, acaba no esquecimento

Dentro do planejamento do sprint prever as manutenções

Page 31: Automação de testes para equipes agile

8) Automação não é somente GUI

GUI = Grafic User InterfaceÉ a primeira que os testers usam e a

primeira que dá dor de cabeçaTestes GUI devem ser usados pra testar

GUI, Smoke Tests, Tarefas sujeitas a erro (fórmulas, partes difíceis, bugs intoleráveis)

Page 32: Automação de testes para equipes agile

Pirâmide da Automação

Agile Testing (Janet Gregory e Lisa Crispin)

Page 33: Automação de testes para equipes agile

9) Não criar sprints cascata

Não esperar dev codificar tudoNão passar apenas automatizando e

testar só no fim

Page 34: Automação de testes para equipes agile

10) Testadores nem sempre são programadoresÓtimos testadores podem não saber

programarProgramadores não possuem técnicas de

testeUtilizar maneiras onde o testador se

preocupe apenas com testes

Page 35: Automação de testes para equipes agile

O que automatizar?

Page 36: Automação de testes para equipes agile

Ferramentas de Automação de Testes FuncionaisFerramentas que permitem reproduzir a

execução manualPossui comandos como clicar, abrir URL,

mover mouse, preencher camposPara encontrar os objetos utiliza

posicionamento do mouse, identificador HTML, Xpath, entre outros

Podem ser utilizadas por meio de interface gráfica ou linha de código

Nossos exemplos utilizam Selenium

Page 37: Automação de testes para equipes agile

Técnicas GUI - Scripts Lineares

Sem laços, ciclos ou condições ifCriada por sistemas Record & Play

Page 38: Automação de testes para equipes agile

Scripts Lineares

Bom para testes que serão pouco reaproveitados. Ex: teste de aceitação, pré-condições

Fácil aprendizado

Massa de dados hard-coded

Script não pode ser compartilhado com outros

Manutenção difícil

Execução frágil

Page 39: Automação de testes para equipes agile

Scripts Estruturados

Código gerado pelo Record & PlayManipulado para conter if, métodos e

outra vantagens da linguagem utilizada

Page 40: Automação de testes para equipes agile

Scripts Estruturados

Page 41: Automação de testes para equipes agile

Scripts Estruturados

Uso livre da linguagem de programação, podendo criar laços, condições, repetições

Separar scripts em módulos para serem reaproveitados

Massa de dados hard-coded

Desenvolvimento extenso

Dependência entre os scripts

Page 42: Automação de testes para equipes agile

Scripts Compartilhados

Abordagem dos scripts estruturados porém os scripts comuns a vários casos de teste

Page 43: Automação de testes para equipes agile

Scripts Compartilhados

Mesmas vantagens do estruturado

Melhor reaproveitamento de scripts

Mesmas desvantagens do estruturado

Mais scripts para manutenção e documentação

Page 44: Automação de testes para equipes agile

Scripts Data-Driven

A massa de dados fica fora do script, armazenada em tabelas HTML, XML ou CSV

Script acessa o arquivo de massa e realiza o teste

Page 45: Automação de testes para equipes agile

Scripts Data-Driven

A massa pode ser criada por um testador não desenvolvedor

Manutenção não envolve os dados

Facilita a reutilização de scripts

Arquitetura inicial demora para ser construída

Exige conhecimentos sólidos de programação

Page 46: Automação de testes para equipes agile

Scripts Keyword-Driven

Abstrai a automação de casos de teste da programação de testes

Scripts são chamados por keywords

Page 47: Automação de testes para equipes agile

Scripts Keyword-Driven

A suite de testes pode ser criada por um testador não desenvolvedor

Desenvolvedor não precisa ser expert em testes

O caso de teste pode ser entendido por leigos

Mesmas desvantagens do Data-Driven

Page 48: Automação de testes para equipes agile

Combinação Keyword-Data-Driven

Reune as duas abordagens, tornando a automação de testes totalmente independente de desenvolvimento e programação

Page 49: Automação de testes para equipes agile

Scripts Keyword-Driven

Possibilidade de criar ferramentas desktop para automação

Curva de aprendizado um pouco maior para os testadores

Page 50: Automação de testes para equipes agile

Perguntas?

Page 51: Automação de testes para equipes agile

Obrigada!

Contato: [email protected]