Testes utilizando cucumber + PhantomJs
-
Upload
locaweb -
Category
Technology
-
view
57 -
download
0
Transcript of Testes utilizando cucumber + PhantomJs
BDD com Marcelo Toledo - QA - IaaS
Agenda
- O que é BDD e Cucumber?
- Motivação
- Case
- Considerações
O que é BDD?
Behavior Driven Development é uma técnica que evoluiu a partir do TDD
É uma descrição do comportamento do sistema e a partir disso, se desenvolve o sistema
Colaboração entre Dev + QA + P.O. + UX
O que é Cucumber
É um framework, que surgiu da evolução de: Jbehave -> Rbehave -> RSpec -> Cucumber
CaracterísticasEspecificação do comportamento escrita em linguagem natural.
A especificação se torna teste e critério de aceitação, descrevendo exemplos de comportamento do software antes da implementação (feedback cedo).
Como qualquer teste automatizado, esses testes são usados na regressão durante a evolução do software.
É uma especificação baseada no valor do negócio através de exemplos de uso e de fácil compreensão.
QA x QC ?
Motivação
Motivação
- QC - Utilizado no processo de desenvolvimento de software tradicional (RUP, Waterfall, etc)
- QA - Processo Ágil
- Precisamos alterar o processo de teste na Locaweb, deixar de ser QC e realmente começar a ser QA.
MotivaçãoO que estamos deixando para trás:
nossa “pirâmide” atual:
Motivação
Para onde estamos caminhando:
CASE
- POC em IaaS
Há uma série de "combos" para se usar o BDD com a linguagem Ruby:
- RSpec + Selenium Webdriver (PhantonJS??)-> Cucumber + RSpec + Capybara + PhantonJS (ou Selenium)
CASE
Lições aprendidas:- Escrever features declarativas- Inserir narrativa nas features- Evitar steps conjuntivos (mais de uma ação no
mesmo step)- Reusar step definitions (utilizar variáveis nos steps)- Não abusar do uso de backgrounds
CASE
Iniciamos com apenas uma feature: BACKUPTemos por enquanto: 19 scenarios 147 steps 3m32.067s
CASE
Exemplo no Jenkins e estrutura do projeto
Obstáculos
- Identificação de um padrão inicial- Indefinição quanto ao local do projeto- Aprendizado do time- Quebra de paradigma - resistência
(aprendizado, já faço teste, tempo de feedback)
Obstáculos
- Demora na implementação e entrega (como qualquer teste realizado, ganha-se na frente)
- Elaboração de cenários errada pode levar a adoção ao fracasso (nem todos os testes devem ser automatizados)
- Nem todo teste é automatizável (?????)
Vantagens- Cucumber facilita outside-in, mas não força você a usá-
la desta forma
- Fornece testes legíveis e atrativos para todas as partes do time inclusive as não técnicas, o que possibilita a inclusão de todos neste processo (QA, PO, UX)
- Aumento de comunicação, amenizando ambiguidade
- Regressão = garantia
Vantagens
Ajuda o time a:- Compreender melhor os requisitos através
de exemplos.- Ter uma documentação viva (executável) e
de fácil leitura.- Mais uma forma de testes de regressão.
Considerações finais- Testes não garantem ausência de defeitos.- TDD contribui para qualidade interna e reduz custo e
tempo de manutenção do produto, portanto, pode ser aplicado também.
- BDD contribui para qualidade externa e reduz custo e tempo de revalidação das funcionalidades do produto.
- Eliminar gargalo em QA.
- Caminhar para Continuous Delivery/Deployment.