SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
BDD da
especificação
à automação
Fábio Araújo
Chapter Lead – Q.A
• Mais de 20 anos na área de T.I,
sendo 12 anos na Área de Q.A;
• Digibase - Maplink - Google Maps,
Magneti Marelli, Valor Econômico,
Amil, Dotz, Linx, Edenred -Ticket
& Via Varejo;
• Acadêmico: Eletrotécnica, Sistemas de
Informação & Gestão de Qualidade.
Fábio Araújo
Instagram: @fabiokaia
Linkedin: https://www.linkedin.com/in/fabio10/
Agenda
Parte 1: BDD – Conceitos
• BDD no 2me Ágil
• Técnicas de escrita
Parte 2:
• Demo: Automação com Ruby
Fábio Araújo
BDD da especificação à Automação
04/06 as 20:30hs
Automação Front-end – Ruby
11/06 as 20:30hs
Automação API Rest – Ruby
18/06 as 20:30hs
Integração Contínua (CI)
25/06 as 20:30hs
Eshilane Cruz
Raphael Alencar
Ernesto Barbosa
BDD – Behaviour Driven Development
• Desenvolvimento orientado a comportamento criado por Dan North;
• É um conjunto de práticas ágeis integrando Histórias de usuário com
Automação dos testes funcionais;
• É uma evolução de técnicas do TDD (Test Driven Development);
Falha
Passa
Refatora
BDD – Por que?
• Melhora a comunicação entre DevTeam e Negócio;
• Equipe focada em seu objetivo;
• Código documentado;
• Garante a regressão das funcionalidades;
• DevTeam como dono da solução;
• Acelera a criação dos testes automatizados. “Vocês verão!!!”
BDD + Ágil
• Escrever menos
• Reaproveitamento
• Melhor entendimento
• Obje=vo
• Claro
• Documento vivo
Ágil
BDD
Comportamento do usuário
• Conversa com usuário:
“Se eu fizer isso e isso, eu espero esse resultado”
• E se eu pudesse criar um teste literalmente escrevendo algo assim?
Dado uma pré-condição
Quando eu executo uma ação
Então o resultado é esse
BDD – Como é ?
2- P.O junto com o
DevTeam elaboram o
requisito e definem a
estrutura dos cenários.
3- Os cenários guiam
o desenvolvimento...
... e serve como base para
os testes funcionais/
automa>zados.
4- Usuários usam os
cenários para
homologar.
1- P.O e Usuário(s)
tem uma conversa
sobre o que desejam
desenvolver.
“Os Três amigos”
Conversas do
usuário
Reunião com três principais papéis do time (Product Owner, Desenvolvedor, Analista de
Qualidade);
Histórias bem definidas e
Critérios de aceitação
Q.A
P.O Dev.
Que problema estamos
tentando resolver?
Como desenvolver esta
solução?
E quanto a isso, o que poderia
acontecer?
Agora temos o mesmo
objetivo
Ferramentas para BDD
BDD não é ferramentas, mas existem ferramentas que auxiliam a
implementação.
Ex.:
Obs.: Não existe uma ferramenta melhor ou pior: a escolha de qual framework e
linguagem uVlizar deve ser pensando nas habilidades técnicas da equipe.
BDD - Gherkin
O vocabulário comum em BDD é o Gherkin.
-Criada especialmente para descrições de comportamento;
-Remove detalhes da lógica de programação e foca no comportamento que uma
funcionalidade deve ter;
Um arquivo Gherkin é semelhante a um Caso de teste. Nele contém:
• Título da funcionalidade;
• Descrição da funcionalidade;
• Cenários com passo a passo;
• Resultado esperado.
Referencia: https://cucumber.io/
Caso de teste vs BDD
Referencia: https://cucumber.io/
BDD
Cenário: Cadastro de pessoal física
Dado que eu acesse a pagina de cadastro
Quando Inserir os campos obrigatórios
E clicar no botão Cadastrar
Então deve aparecer uma mensagem de boas vindas
E enviar um e-mail de confirmação de cadastro
Caso de teste
Cadastro de pessoal Rsica
Passo a passo:
-Acessar a pagina de cadastro
-Inserir os campos obrigatórios
-Clicar no botão Cadastrar
Resultado esperado:
-Deve aparecer uma mensagem de boas vindas
-Enviar um e-mail de confirmação de cadastro
Funcionalidade: Credenciamento no Linkedin
• Uma funcionalidade de autenticação que um P.O pode escrever em alto-
nível:
• Isso já pode ser uma documentação viva dentro do BDD, mas podemos
melhorar explicando esse recurso, dividindo em cenários por exemplo:
• Autenticação válida;
• Usuário inexistente;
• Usuário com senha inválida;
• Etc...
Como usuário do Linkedin
Quero me autenticar
Para que eu possa visualizar novos posts
Exemplos
Implementação
Funcionalidade: Autenticação no Linkedin
Como usuário do Linkedin
Quero me autenticar
Para que eu possa visualizar novos posts
Cenário: 1 - Auten+cação válida
Dado que eu acesse a página de autenVcação do Linkedin *
Quando eu digitar o usuário “João da Silva”
E a senha “abc@123”
Então deve ser exibido a mensagem de boas vindas: “Olá João”.
Cenário: 2 - Usuário inexistente
Dado que eu acesse a página de auten?cação do Linkedin *
Quando eu digitar o usuário “José Ninguém”
E a senha “abc@123”
Então deve ser exibido a mensagem “Usuário não cadastrado em nossa base”
Cenário: 3 - Usuário com senha inválida
Dado que eu acesse a página de autenticação do Linkedin *
Quando eu digitar o usuário “João da Silva”
E a senha “123456”
Então deve ser exibido a mensagem “Usuário ou senha inválidos”
Implementação
Otimizando: Contexto
Por vezes, você se verá repetindo as mesmas etapas (Dado) em todos os
cenários de uma Funcionalidade.
Isso é uma indicação de que essas etapas não são essenciais para
descrever os cenários, mas servem como pré-requisitos ou detalhes do
cenário.
Você pode usar um recurso, agrupando estas etapas num segundo
plano, em uma seção de “Contexto” (Background).
O “Contexto” é inserido antes de cada cenário como no exemplo a
seguir:
Otimizando: Contexto
18
Contexto:
Dado que eu acesse a página de autenVcação do Linkedin *
Cenário: 1 - Auten+cação válida
Quando eu digitar o usuário “João da Silva”
E a senha “abc@123”
Então deve ser exibido a mensagem de boas vindas “Olá João”.
Cenário: 2- Usuário inexistente
Quando eu digitar o usuário “José Ninguém”
E a senha “abc@123”
Então deve ser exibido a mensagem “Usuário não cadastrado em nossa base”
O"mizando: Parâmetros
19
Podemos também usar o auxílio de tabelas para inserir os parâmetros
de dados repetitivos.
Chamamos esse recurso de “Esquema do cenário” (Scenario Outline).
Este recurso permite até usarmos dados de um arquivo (txt, xls, csv,
json, etc) ou banco de dados, diminuindo ainda mais trabalhos
repetitivos, como uma grande massa de dados.
Otimizando: Parâmetros
20
Contexto:
Dado que eu acesse a página de autenticação do Linkedin*
Esquema do Cenário: Autenticação válida
Quando eu digitar o <usuario>
E a <senha>
Então deve exibir a <mensagem> de boas vindas na pagina principal
Exemplos:
| usuario | senha | mensagem |
| “joao@dominio.com” | “123@abc” | “Olá João” |
| “maria@dominio.com” | “123@abc” | “Olá Maria” |
| “jose@dominio.com “ | “123@abc” | “Olá José” |
Otimizando: Tabela de dados
21
Existe uma maneira mais simples de passar Lista para uma definição na
etapa , usando uma tabela de dados.
Este recurso permite que você passe uma lista de pré-requisitos no “Dado”
com parâmetros pré-definidos.
Esta lista é passada antes de executar uma ação no “Quando”, diferente do
“Esquema do Cenário’ que faz parte da ação.
Veja o exemplo a seguir:
Otimizando: Tabela de dados
22
Funcionalidade: Cadastro
Cenário: Cadastro pessoa física
Dado que eu acesse o formulário
E que eu tenha os seguintes dados de usuários:
| nome | cpf | e-mail |
| “Fábio Araujo” | “7328459900” | ”fabio@dominio.com”|
| “João da Silva” | “29088129200” | “joao@dominio.com” |
| “José de Souza” | “21048039001” | “jose@dominio.com” |
Quando eu fizer o cadastro completo
Então o usuário deve ser cadastrado na base
Palavras reservadas do Gherkin
23
#language: pt
Feature Funcionalidade
Scenario Cenário
Given Dado
When Quando
Then Então
And E
Or Ou
But Mas
Scenario Outline Esquema do Cenário
Background Contexto
Examples Exemplos
... ...
Bugs - Como descrever?
24
• Bugs são comportamentos incorretos de uma aplicação
• Este formato é excelente para que o =me de desenvolvimento
entenda o comportamento incorreto e os critérios de aceite
da correção.
Título da correção
Dado o cenário
Quando ocorre um determinado evento
Então ocorre um comportamento inesperado
Anexos
•Imagens, json, xml, prints, etc.
Exemplo de Bug com BDD
25
Título: Não aparece imagem do Iphone na
página de produto
Dado que eu busque o produto Iphone XR : SKU
000XXXYYY
Quando for direcionado para a página de produto
Então não é exibido a imagem do produto
Demo. 1 – Automação de testes com BDD
#language: pt
Funcionalidade: Calculadora
Como não sei fazer conta de cabeça
Quero usar a calculadora do sistema
Para obter os resultados corretos
Cenário: Soma de dois números
Dado que acesse a calculadora
Quando eu somar 2 + 3
Então o resultado da soma deve ser 5
26
Demo. 2 – Automação de testes com BDD
27
#language: pt
Funcionalidade: Calculadora
Esquema do Cenário: Soma de 2 números com tabela
Dado que eu acesse a calculadora
Quando eu somar o <valor1> com <valor2>
Então o resultado deve ser <total>
Exemplos:
| valor1 | valor2 | total |
| 5 | 7 | 12 |
| -8 | 10 | 2 |
| 800 | 150 | 950 |
Obrigado!
Fábio Araújo
https://www.linkedin.com/in/fabio10/
Apoio:

Mais conteúdo relacionado

Mais procurados

Software Testing - Heuristics Cheat Sheet
Software Testing - Heuristics Cheat SheetSoftware Testing - Heuristics Cheat Sheet
Software Testing - Heuristics Cheat SheetSanthosh Tuppad
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de softwareLeonardo Melo Santos
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em RiscoJúlio de Lima
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Ariane Izac
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaFrederico Augusto Do Carmo Moreira
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviçosElias Nogueira
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizadoselliando dias
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIElias Nogueira
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareAlexandreBartie
 
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...Rosa Sampaio
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Projeto TCC - SENAI - Lucas
Projeto TCC - SENAI - LucasProjeto TCC - SENAI - Lucas
Projeto TCC - SENAI - Lucaslucas_mendes
 

Mais procurados (20)

Software Testing - Heuristics Cheat Sheet
Software Testing - Heuristics Cheat SheetSoftware Testing - Heuristics Cheat Sheet
Software Testing - Heuristics Cheat Sheet
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Verificação e validação de software
Verificação e validação de softwareVerificação e validação de software
Verificação e validação de software
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviços
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizados
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de API
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
 
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...Apresentação | Gestão de QA |  Modelo Human driven | Qualidade de software | ...
Apresentação | Gestão de QA | Modelo Human driven | Qualidade de software | ...
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Projeto TCC - SENAI - Lucas
Projeto TCC - SENAI - LucasProjeto TCC - SENAI - Lucas
Projeto TCC - SENAI - Lucas
 

Semelhante a QArentena 21: BDD - com Fábio Araújo

[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...GUTS-RS
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de ServiçoRafael Lima
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLNatanael Simões
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Vanderson Silva
 
Bdd rails 3
Bdd rails 3Bdd rails 3
Bdd rails 3tchandy
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018Larissa Soares
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralVanderson Silva
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareGabriel Felipe Soares
 
1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdfjoaoJunior93
 
Workshop de Introdução ao BDD
Workshop de Introdução ao BDDWorkshop de Introdução ao BDD
Workshop de Introdução ao BDDinovacaoDBServer
 
Intrudução ao Behavior Driven Development (BDD) com Ruby on Rails
Intrudução ao Behavior Driven Development (BDD) com Ruby on RailsIntrudução ao Behavior Driven Development (BDD) com Ruby on Rails
Intrudução ao Behavior Driven Development (BDD) com Ruby on RailsRodrigo Urubatan
 
Seu Cliente no Controle! Testes ágeis
Seu Cliente no Controle! Testes ágeisSeu Cliente no Controle! Testes ágeis
Seu Cliente no Controle! Testes ágeisVanderson Silva
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018Karla Silva
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 

Semelhante a QArentena 21: BDD - com Fábio Araújo (20)

[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
 
Bdd rails 3
Bdd rails 3Bdd rails 3
Bdd rails 3
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 
1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf
 
Workshop de Introdução ao BDD
Workshop de Introdução ao BDDWorkshop de Introdução ao BDD
Workshop de Introdução ao BDD
 
Intrudução ao Behavior Driven Development (BDD) com Ruby on Rails
Intrudução ao Behavior Driven Development (BDD) com Ruby on RailsIntrudução ao Behavior Driven Development (BDD) com Ruby on Rails
Intrudução ao Behavior Driven Development (BDD) com Ruby on Rails
 
Seu Cliente no Controle! Testes ágeis
Seu Cliente no Controle! Testes ágeisSeu Cliente no Controle! Testes ágeis
Seu Cliente no Controle! Testes ágeis
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Entrega Contínua - do Zero ao Sucesso
Entrega Contínua - do Zero ao SucessoEntrega Contínua - do Zero ao Sucesso
Entrega Contínua - do Zero ao Sucesso
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Prototipacao Funcional
Prototipacao FuncionalPrototipacao Funcional
Prototipacao Funcional
 

Mais de José Correia

UAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesJosé Correia
 
TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...
TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...
TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...José Correia
 
Iterasys :: Café com Qualidade - Testadores Precisam Saber Programar?
Iterasys ::  Café com Qualidade - Testadores Precisam Saber Programar?Iterasys ::  Café com Qualidade - Testadores Precisam Saber Programar?
Iterasys :: Café com Qualidade - Testadores Precisam Saber Programar?José Correia
 
Iterasys :: Microsoft Web Performance Test
Iterasys :: Microsoft Web Performance TestIterasys :: Microsoft Web Performance Test
Iterasys :: Microsoft Web Performance TestJosé Correia
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...José Correia
 
TDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para Testar
TDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para TestarTDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para Testar
TDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para TestarJosé Correia
 
Iterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - PairwiseIterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - PairwiseJosé Correia
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...José Correia
 
Iterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMapIterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMapJosé Correia
 
Iterasys Test Show 2010 - Estratégia Baseada no Scrum
Iterasys Test Show 2010 -  Estratégia Baseada no ScrumIterasys Test Show 2010 -  Estratégia Baseada no Scrum
Iterasys Test Show 2010 - Estratégia Baseada no ScrumJosé Correia
 
Iterasys Test Show 2010 - Estratégia Baseada na ISO
Iterasys Test Show 2010 - Estratégia Baseada na ISOIterasys Test Show 2010 - Estratégia Baseada na ISO
Iterasys Test Show 2010 - Estratégia Baseada na ISOJosé Correia
 
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QA
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QAIterasys Test Show 2010 - Carreira e Certificação em Teste e QA
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QAJosé Correia
 

Mais de José Correia (12)

UAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
 
TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...
TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...
TDC2014 - Trilha de Análise de Negócios - Storyboards: dos Requisitos aos Tes...
 
Iterasys :: Café com Qualidade - Testadores Precisam Saber Programar?
Iterasys ::  Café com Qualidade - Testadores Precisam Saber Programar?Iterasys ::  Café com Qualidade - Testadores Precisam Saber Programar?
Iterasys :: Café com Qualidade - Testadores Precisam Saber Programar?
 
Iterasys :: Microsoft Web Performance Test
Iterasys :: Microsoft Web Performance TestIterasys :: Microsoft Web Performance Test
Iterasys :: Microsoft Web Performance Test
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
 
TDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para Testar
TDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para TestarTDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para Testar
TDC2013 - Trilha de Cloud - Iterasys - José Correia - Use a Nuvem para Testar
 
Iterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - PairwiseIterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - Pairwise
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Uso de Storyboards e K...
 
Iterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMapIterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMap
 
Iterasys Test Show 2010 - Estratégia Baseada no Scrum
Iterasys Test Show 2010 -  Estratégia Baseada no ScrumIterasys Test Show 2010 -  Estratégia Baseada no Scrum
Iterasys Test Show 2010 - Estratégia Baseada no Scrum
 
Iterasys Test Show 2010 - Estratégia Baseada na ISO
Iterasys Test Show 2010 - Estratégia Baseada na ISOIterasys Test Show 2010 - Estratégia Baseada na ISO
Iterasys Test Show 2010 - Estratégia Baseada na ISO
 
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QA
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QAIterasys Test Show 2010 - Carreira e Certificação em Teste e QA
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QA
 

QArentena 21: BDD - com Fábio Araújo

  • 2. Chapter Lead – Q.A • Mais de 20 anos na área de T.I, sendo 12 anos na Área de Q.A; • Digibase - Maplink - Google Maps, Magneti Marelli, Valor Econômico, Amil, Dotz, Linx, Edenred -Ticket & Via Varejo; • Acadêmico: Eletrotécnica, Sistemas de Informação & Gestão de Qualidade. Fábio Araújo Instagram: @fabiokaia Linkedin: https://www.linkedin.com/in/fabio10/
  • 3. Agenda Parte 1: BDD – Conceitos • BDD no 2me Ágil • Técnicas de escrita Parte 2: • Demo: Automação com Ruby Fábio Araújo BDD da especificação à Automação 04/06 as 20:30hs Automação Front-end – Ruby 11/06 as 20:30hs Automação API Rest – Ruby 18/06 as 20:30hs Integração Contínua (CI) 25/06 as 20:30hs Eshilane Cruz Raphael Alencar Ernesto Barbosa
  • 4. BDD – Behaviour Driven Development • Desenvolvimento orientado a comportamento criado por Dan North; • É um conjunto de práticas ágeis integrando Histórias de usuário com Automação dos testes funcionais; • É uma evolução de técnicas do TDD (Test Driven Development); Falha Passa Refatora
  • 5. BDD – Por que? • Melhora a comunicação entre DevTeam e Negócio; • Equipe focada em seu objetivo; • Código documentado; • Garante a regressão das funcionalidades; • DevTeam como dono da solução; • Acelera a criação dos testes automatizados. “Vocês verão!!!”
  • 6. BDD + Ágil • Escrever menos • Reaproveitamento • Melhor entendimento • Obje=vo • Claro • Documento vivo Ágil BDD
  • 7. Comportamento do usuário • Conversa com usuário: “Se eu fizer isso e isso, eu espero esse resultado” • E se eu pudesse criar um teste literalmente escrevendo algo assim? Dado uma pré-condição Quando eu executo uma ação Então o resultado é esse
  • 8. BDD – Como é ? 2- P.O junto com o DevTeam elaboram o requisito e definem a estrutura dos cenários. 3- Os cenários guiam o desenvolvimento... ... e serve como base para os testes funcionais/ automa>zados. 4- Usuários usam os cenários para homologar. 1- P.O e Usuário(s) tem uma conversa sobre o que desejam desenvolver.
  • 9. “Os Três amigos” Conversas do usuário Reunião com três principais papéis do time (Product Owner, Desenvolvedor, Analista de Qualidade); Histórias bem definidas e Critérios de aceitação Q.A P.O Dev. Que problema estamos tentando resolver? Como desenvolver esta solução? E quanto a isso, o que poderia acontecer? Agora temos o mesmo objetivo
  • 10. Ferramentas para BDD BDD não é ferramentas, mas existem ferramentas que auxiliam a implementação. Ex.: Obs.: Não existe uma ferramenta melhor ou pior: a escolha de qual framework e linguagem uVlizar deve ser pensando nas habilidades técnicas da equipe.
  • 11. BDD - Gherkin O vocabulário comum em BDD é o Gherkin. -Criada especialmente para descrições de comportamento; -Remove detalhes da lógica de programação e foca no comportamento que uma funcionalidade deve ter; Um arquivo Gherkin é semelhante a um Caso de teste. Nele contém: • Título da funcionalidade; • Descrição da funcionalidade; • Cenários com passo a passo; • Resultado esperado. Referencia: https://cucumber.io/
  • 12. Caso de teste vs BDD Referencia: https://cucumber.io/ BDD Cenário: Cadastro de pessoal física Dado que eu acesse a pagina de cadastro Quando Inserir os campos obrigatórios E clicar no botão Cadastrar Então deve aparecer uma mensagem de boas vindas E enviar um e-mail de confirmação de cadastro Caso de teste Cadastro de pessoal Rsica Passo a passo: -Acessar a pagina de cadastro -Inserir os campos obrigatórios -Clicar no botão Cadastrar Resultado esperado: -Deve aparecer uma mensagem de boas vindas -Enviar um e-mail de confirmação de cadastro Funcionalidade: Credenciamento no Linkedin
  • 13. • Uma funcionalidade de autenticação que um P.O pode escrever em alto- nível: • Isso já pode ser uma documentação viva dentro do BDD, mas podemos melhorar explicando esse recurso, dividindo em cenários por exemplo: • Autenticação válida; • Usuário inexistente; • Usuário com senha inválida; • Etc... Como usuário do Linkedin Quero me autenticar Para que eu possa visualizar novos posts Exemplos
  • 14. Implementação Funcionalidade: Autenticação no Linkedin Como usuário do Linkedin Quero me autenticar Para que eu possa visualizar novos posts Cenário: 1 - Auten+cação válida Dado que eu acesse a página de autenVcação do Linkedin * Quando eu digitar o usuário “João da Silva” E a senha “abc@123” Então deve ser exibido a mensagem de boas vindas: “Olá João”.
  • 15. Cenário: 2 - Usuário inexistente Dado que eu acesse a página de auten?cação do Linkedin * Quando eu digitar o usuário “José Ninguém” E a senha “abc@123” Então deve ser exibido a mensagem “Usuário não cadastrado em nossa base” Cenário: 3 - Usuário com senha inválida Dado que eu acesse a página de autenticação do Linkedin * Quando eu digitar o usuário “João da Silva” E a senha “123456” Então deve ser exibido a mensagem “Usuário ou senha inválidos” Implementação
  • 16. Otimizando: Contexto Por vezes, você se verá repetindo as mesmas etapas (Dado) em todos os cenários de uma Funcionalidade. Isso é uma indicação de que essas etapas não são essenciais para descrever os cenários, mas servem como pré-requisitos ou detalhes do cenário. Você pode usar um recurso, agrupando estas etapas num segundo plano, em uma seção de “Contexto” (Background). O “Contexto” é inserido antes de cada cenário como no exemplo a seguir:
  • 17. Otimizando: Contexto 18 Contexto: Dado que eu acesse a página de autenVcação do Linkedin * Cenário: 1 - Auten+cação válida Quando eu digitar o usuário “João da Silva” E a senha “abc@123” Então deve ser exibido a mensagem de boas vindas “Olá João”. Cenário: 2- Usuário inexistente Quando eu digitar o usuário “José Ninguém” E a senha “abc@123” Então deve ser exibido a mensagem “Usuário não cadastrado em nossa base”
  • 18. O"mizando: Parâmetros 19 Podemos também usar o auxílio de tabelas para inserir os parâmetros de dados repetitivos. Chamamos esse recurso de “Esquema do cenário” (Scenario Outline). Este recurso permite até usarmos dados de um arquivo (txt, xls, csv, json, etc) ou banco de dados, diminuindo ainda mais trabalhos repetitivos, como uma grande massa de dados.
  • 19. Otimizando: Parâmetros 20 Contexto: Dado que eu acesse a página de autenticação do Linkedin* Esquema do Cenário: Autenticação válida Quando eu digitar o <usuario> E a <senha> Então deve exibir a <mensagem> de boas vindas na pagina principal Exemplos: | usuario | senha | mensagem | | “joao@dominio.com” | “123@abc” | “Olá João” | | “maria@dominio.com” | “123@abc” | “Olá Maria” | | “jose@dominio.com “ | “123@abc” | “Olá José” |
  • 20. Otimizando: Tabela de dados 21 Existe uma maneira mais simples de passar Lista para uma definição na etapa , usando uma tabela de dados. Este recurso permite que você passe uma lista de pré-requisitos no “Dado” com parâmetros pré-definidos. Esta lista é passada antes de executar uma ação no “Quando”, diferente do “Esquema do Cenário’ que faz parte da ação. Veja o exemplo a seguir:
  • 21. Otimizando: Tabela de dados 22 Funcionalidade: Cadastro Cenário: Cadastro pessoa física Dado que eu acesse o formulário E que eu tenha os seguintes dados de usuários: | nome | cpf | e-mail | | “Fábio Araujo” | “7328459900” | ”fabio@dominio.com”| | “João da Silva” | “29088129200” | “joao@dominio.com” | | “José de Souza” | “21048039001” | “jose@dominio.com” | Quando eu fizer o cadastro completo Então o usuário deve ser cadastrado na base
  • 22. Palavras reservadas do Gherkin 23 #language: pt Feature Funcionalidade Scenario Cenário Given Dado When Quando Then Então And E Or Ou But Mas Scenario Outline Esquema do Cenário Background Contexto Examples Exemplos ... ...
  • 23. Bugs - Como descrever? 24 • Bugs são comportamentos incorretos de uma aplicação • Este formato é excelente para que o =me de desenvolvimento entenda o comportamento incorreto e os critérios de aceite da correção. Título da correção Dado o cenário Quando ocorre um determinado evento Então ocorre um comportamento inesperado Anexos •Imagens, json, xml, prints, etc.
  • 24. Exemplo de Bug com BDD 25 Título: Não aparece imagem do Iphone na página de produto Dado que eu busque o produto Iphone XR : SKU 000XXXYYY Quando for direcionado para a página de produto Então não é exibido a imagem do produto
  • 25. Demo. 1 – Automação de testes com BDD #language: pt Funcionalidade: Calculadora Como não sei fazer conta de cabeça Quero usar a calculadora do sistema Para obter os resultados corretos Cenário: Soma de dois números Dado que acesse a calculadora Quando eu somar 2 + 3 Então o resultado da soma deve ser 5 26
  • 26. Demo. 2 – Automação de testes com BDD 27 #language: pt Funcionalidade: Calculadora Esquema do Cenário: Soma de 2 números com tabela Dado que eu acesse a calculadora Quando eu somar o <valor1> com <valor2> Então o resultado deve ser <total> Exemplos: | valor1 | valor2 | total | | 5 | 7 | 12 | | -8 | 10 | 2 | | 800 | 150 | 950 |