SlideShare uma empresa Scribd logo
1 de 51
Automação de testes para
equipes Agile
Alini Gottardi
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
Papéis na Área de Teste
Segundo o livro Base de Conhecimento em
Testes de Software
Analista de Testes
Arquiteto de Testes
Testador
Automatizador
Analista de Testes
Planeja, analisa riscos, estabelece
prioridades de testes, cria os casos de
teste
Arquiteto de Testes
Levanta e instala ferramentas, disponibiliza
e configura ambientes, garante infra-
estrutura
Testador
Executa os casos de teste, documenta a
execução, elabora relatórios, investiga o
sistema em tempo de execução
Automatizador
Cria sistemas que testam sistemas...
Imagine o cenário atual
Equipe metodologia cascata
Vamos modernizar! Vamos ser Ágeis!
Novo cenário Agile/Scrum/Kanban...
Novo cenário Agile/Scrum/Kanban...
3 desenvolvedores
1 Tester multitarefa
O start da equipe é ao mesmo tempo
No primeiro dia de desenvolvimento,
tester já precisa estar trabalhando junto
Mas nem há o que testar, o que fazer???
No segundo sprint é preciso garantir que o
sprint anterior continua funcionando
Gargalo no testador!!!
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
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
BDD - Futuro da Automação?
Três princípios para BDD
1.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.
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.
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.
Exemplo – Teste Executável
Exemplo - Background
Todos os problemas resolvidos!
Será?????
Todos os problemas resolvidos
Não é bem assim!
Não é bem assim!
Se mal tem tempo de testar, quanto mais
automatizar
Escolha da ferramenta (web, desktop,
webservice)
Know-how da equipe
Complexidade e testabilidade do sistema
Papéis dentro da equipe
Não se perder desenvolvendo um sistema
versus criar testes
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)
2) Não automatizar todos os casos de
teste
Manutenção constante
Fragilidade do script GUI (Grafic User
Interface)
Relevância/prioridade do caso de teste
Falsa sensação de que está tudo coberto
3) Não automatizar incertezas
Metodologia ágil é instável, os requisitos
mudam todos os dias
Evitar:
Módulos com funções ainda a serem
definidas
Testes que não serão reutilizados
Automação leva 3x mais tempo
4) Quando o sistema não é testável
Testes unitários x Sistema em linguagem
procedural
Elementos HTML Inacessíveis (problema
GUI)
Janelas javascript/popup
Funcionalidades transparentes ao usuário
Antes de sair codificando, testador deve
definir seus requisitos de testabilidade
5) Separar os ambientes
Testar no ambientes dos desenvolvedores
não dá certo!
Suja a base
Estraga pré-condições
Solução:
Fechar builds periódicos do dev para
teste
Se houver integração contínua melhor
ainda!
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);
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;
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
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ça
Testes GUI devem ser usados pra testar
GUI, Smoke Tests, Tarefas sujeitas a erro
(fórmulas, partes difíceis, bugs
intoleráveis)
Pirâmide da Automação
Agile Testing (Janet Gregory e Lisa Crispin)
9) Não criar sprints cascata
Não esperar dev codificar tudo
Não passar apenas automatizando e
testar só no fim
10) Testadores nem sempre são
programadores
Ótimos testadores podem não saber
programar
Programadores não possuem técnicas de
teste
Utilizar maneiras onde o testador se
preocupe apenas com testes
O que automatizar?
Ferramentas de Automação de
Testes Funcionais
Ferramentas que permitem reproduzir a
execução manual
Possui comandos como clicar, abrir URL,
mover mouse, preencher campos
Para 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
Técnicas GUI - Scripts Lineares
Sem laços, ciclos ou condições if
Criada por sistemas Record & Play
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
Scripts Estruturados
Código gerado pelo Record & Play
Manipulado para conter if, métodos e
outra vantagens da linguagem utilizada
Scripts Estruturados
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
Scripts Compartilhados
Abordagem dos scripts estruturados
porém os scripts comuns a vários casos
de teste
Scripts Compartilhados
Mesmas vantagens do estruturado
Melhor reaproveitamento de scripts
Mesmas desvantagens do estruturado
Mais scripts para manutenção e
documentação
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
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
Scripts Keyword-Driven
Abstrai a automação de casos de teste da
programação de testes
Scripts são chamados por keywords
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
Combinação Keyword-Data-Driven
Reune as duas abordagens, tornando a
automação de testes totalmente
independente de desenvolvimento e
programação
Scripts Keyword-Driven
Possibilidade de criar ferramentas
desktop para automação
Curva de aprendizado um pouco maior
para os testadores
Perguntas?
Obrigada!
Contato: alini.gottardi@gmail.com

Mais conteúdo relacionado

Mais procurados

1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Renato Groffe
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDDKleber Bernardo
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwareEmanuel Poletto
 
Introdução a BDD
Introdução a BDDIntrodução a BDD
Introdução a BDDIsmael
 
Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]rafael327780
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdadesCristiano Caetano
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
aGITe antes de versionar
aGITe antes de versionaraGITe antes de versionar
aGITe antes de versionars4nx
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Fábio Nogueira de Lucena
 

Mais procurados (20)

1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHP
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Developers-SP - Janei...
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de Software
 
Introdução a BDD
Introdução a BDDIntrodução a BDD
Introdução a BDD
 
Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]Ctfl 2018 sample_b[v1.3br]
Ctfl 2018 sample_b[v1.3br]
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdades
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
TDD
TDDTDD
TDD
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Agile testing
Agile testingAgile testing
Agile testing
 
aGITe antes de versionar
aGITe antes de versionaraGITe antes de versionar
aGITe antes de versionar
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 

Semelhante a Automação de testes para equipes agile

Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de softwareJoyce Bastos
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Daniel Carvalhinho
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmáticaelliando dias
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPriscila Coelho S. Blauth
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesQA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesThiago Boschese
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 

Semelhante a Automação de testes para equipes agile (20)

Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Qualidade e Testes de Software
Qualidade e Testes de SoftwareQualidade e Testes de Software
Qualidade e Testes de Software
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Principais conceitos em testes de software
Principais conceitos em testes de softwarePrincipais conceitos em testes de software
Principais conceitos em testes de software
 
Teste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e AplicandoTeste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e Aplicando
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!Porque você precisa de uma estratégia de QA e precisa disso AGORA!
Porque você precisa de uma estratégia de QA e precisa disso AGORA!
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesQA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 

Automação de testes para equipes agile

  • 1. Automação de testes para equipes Agile Alini Gottardi
  • 2. 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
  • 3. Papéis na Área de Teste Segundo o livro Base de Conhecimento em Testes de Software Analista de Testes Arquiteto de Testes Testador Automatizador
  • 4. Analista de Testes Planeja, analisa riscos, estabelece prioridades de testes, cria os casos de teste
  • 5. Arquiteto de Testes Levanta e instala ferramentas, disponibiliza e configura ambientes, garante infra- estrutura
  • 6. Testador Executa os casos de teste, documenta a execução, elabora relatórios, investiga o sistema em tempo de execução
  • 7. Automatizador Cria sistemas que testam sistemas...
  • 8. Imagine o cenário atual Equipe metodologia cascata
  • 11. Novo cenário Agile/Scrum/Kanban... 3 desenvolvedores 1 Tester multitarefa O start da equipe é ao mesmo tempo No primeiro dia de desenvolvimento, tester já precisa estar trabalhando junto Mas nem há o que testar, o que fazer??? No segundo sprint é preciso garantir que o sprint anterior continua funcionando
  • 13. 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
  • 14. 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
  • 15. BDD - Futuro da Automação? Três princípios para BDD 1.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.
  • 16. 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.
  • 17. 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.
  • 18. Exemplo – Teste Executável
  • 20. Todos os problemas resolvidos! Será?????
  • 21. Todos os problemas resolvidos Não é bem assim!
  • 22. Não é bem assim! Se mal tem tempo de testar, quanto mais automatizar Escolha da ferramenta (web, desktop, webservice) Know-how da equipe Complexidade e testabilidade do sistema Papéis dentro da equipe Não se perder desenvolvendo um sistema versus criar testes
  • 23. 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)
  • 24. 2) Não automatizar todos os casos de teste Manutenção constante Fragilidade do script GUI (Grafic User Interface) Relevância/prioridade do caso de teste Falsa sensação de que está tudo coberto
  • 25. 3) Não automatizar incertezas Metodologia ágil é instável, os requisitos mudam todos os dias Evitar: Módulos com funções ainda a serem definidas Testes que não serão reutilizados Automação leva 3x mais tempo
  • 26. 4) Quando o sistema não é testável Testes unitários x Sistema em linguagem procedural Elementos HTML Inacessíveis (problema GUI) Janelas javascript/popup Funcionalidades transparentes ao usuário Antes de sair codificando, testador deve definir seus requisitos de testabilidade
  • 27. 5) Separar os ambientes Testar no ambientes dos desenvolvedores não dá certo! Suja a base Estraga pré-condições Solução: Fechar builds periódicos do dev para teste Se houver integração contínua melhor ainda!
  • 28. 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);
  • 29. 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;
  • 30. 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
  • 31. 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ça Testes GUI devem ser usados pra testar GUI, Smoke Tests, Tarefas sujeitas a erro (fórmulas, partes difíceis, bugs intoleráveis)
  • 32. Pirâmide da Automação Agile Testing (Janet Gregory e Lisa Crispin)
  • 33. 9) Não criar sprints cascata Não esperar dev codificar tudo Não passar apenas automatizando e testar só no fim
  • 34. 10) Testadores nem sempre são programadores Ótimos testadores podem não saber programar Programadores não possuem técnicas de teste Utilizar maneiras onde o testador se preocupe apenas com testes
  • 36. Ferramentas de Automação de Testes Funcionais Ferramentas que permitem reproduzir a execução manual Possui comandos como clicar, abrir URL, mover mouse, preencher campos Para 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
  • 37. Técnicas GUI - Scripts Lineares Sem laços, ciclos ou condições if Criada por sistemas Record & Play
  • 38. 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
  • 39. Scripts Estruturados Código gerado pelo Record & Play Manipulado para conter if, métodos e outra vantagens da linguagem utilizada
  • 41. 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
  • 42. Scripts Compartilhados Abordagem dos scripts estruturados porém os scripts comuns a vários casos de teste
  • 43. Scripts Compartilhados Mesmas vantagens do estruturado Melhor reaproveitamento de scripts Mesmas desvantagens do estruturado Mais scripts para manutenção e documentação
  • 44. 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
  • 45. 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
  • 46. Scripts Keyword-Driven Abstrai a automação de casos de teste da programação de testes Scripts são chamados por keywords
  • 47. 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
  • 48. Combinação Keyword-Data-Driven Reune as duas abordagens, tornando a automação de testes totalmente independente de desenvolvimento e programação
  • 49. Scripts Keyword-Driven Possibilidade de criar ferramentas desktop para automação Curva de aprendizado um pouco maior para os testadores