SlideShare uma empresa Scribd logo
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

Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
Manuel Menezes de Sequeira
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
Confiz
 
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
marthahuback
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6
Abdul Basit
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de prueba
Andrés Grosso
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
Elias Nogueira
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
Álvaro Farias Pinheiro
 
Teste de software
Teste de softwareTeste de software
Teste de software
Rafael Sanches
 
Strategies For Software Test Documentation
Strategies For Software Test Documentation Strategies For Software Test Documentation
Strategies For Software Test Documentation
Vishwak Solution
 
Reuso de software
Reuso de softwareReuso de software
Reuso de software
rebekinha
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
Prachi Sasankar
 
Black box & white-box testing technique
Black box & white-box testing techniqueBlack box & white-box testing technique
Black box & white-box testing technique
SivaprasanthRentala1975
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
Leinylson Fontinele
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
Rondinelli Mesquita
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
Instituto Federal de Educação Ciencia e Tecnologia
 
Estrategias de Pruebas de Software
Estrategias de Pruebas de SoftwareEstrategias de Pruebas de Software
Estrategias de Pruebas de Software
Lucia Gasperin
 
50 Soruda Yazılım Testi
50 Soruda Yazılım Testi50 Soruda Yazılım Testi
50 Soruda Yazılım Testi
Keytorc Software Testing Services
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
Camilo Ribeiro
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
Edureka!
 
Software Testing (1)
Software Testing (1)Software Testing (1)
Software Testing (1)
Manuel Capel-Tunon
 

Mais procurados (20)

Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 
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
 
Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6Planning for software quality assurance lecture 6
Planning for software quality assurance lecture 6
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de prueba
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Strategies For Software Test Documentation
Strategies For Software Test Documentation Strategies For Software Test Documentation
Strategies For Software Test Documentation
 
Reuso de software
Reuso de softwareReuso de software
Reuso de software
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
 
Black box & white-box testing technique
Black box & white-box testing techniqueBlack box & white-box testing technique
Black box & white-box testing technique
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
 
Estrategias de Pruebas de Software
Estrategias de Pruebas de SoftwareEstrategias de Pruebas de Software
Estrategias de Pruebas de Software
 
50 Soruda Yazılım Testi
50 Soruda Yazılım Testi50 Soruda Yazılım Testi
50 Soruda Yazılım Testi
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
 
Software Testing (1)
Software Testing (1)Software Testing (1)
Software Testing (1)
 

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 jbehave
Marcelo Zeferino
 
BDD em Testes de Serviço
BDD em Testes de ServiçoBDD em Testes de Serviço
BDD em Testes de Serviço
Rafael 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 UML
Natanael Simões
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
Márcio Queiroz
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
Vanderson Silva
 
Bdd rails 3
Bdd rails 3Bdd rails 3
Bdd rails 3
tchandy
 
[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018[Karla e Larissa] Agile Brazil 2018
[Karla e Larissa] Agile Brazil 2018
Larissa Soares
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
Carlos Eduardo Kadu
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
Vanderson 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 Software
Gabriel Felipe Soares
 
1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf1502 - Revista - SQL Server.pdf
1502 - Revista - SQL Server.pdf
joaoJunior93
 
Workshop de Introdução ao BDD
Workshop de Introdução ao BDDWorkshop de Introdução ao BDD
Workshop de Introdução ao BDD
inovacaoDBServer
 
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
Rodrigo Urubatan
 
Seu Cliente no Controle! Testes ágeis
Seu Cliente no Controle! Testes ágeisSeu Cliente no Controle! Testes ágeis
Seu Cliente no Controle! Testes ágeis
Vanderson Silva
 
Agile Brazil 2018
Agile Brazil 2018Agile Brazil 2018
Agile Brazil 2018
Karla Silva
 
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
Rodrigo Bueno Santa Maria, BS, MBA
 
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
Diraci Junior Trindade da 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 Paulino
Comunidade NetPonto
 
Prototipacao Funcional
Prototipacao FuncionalPrototipacao Funcional
Prototipacao Funcional
Vinicius Carvalho
 

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 Testes
José 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 Test
José 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 Testar
José Correia
 
Iterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - PairwiseIterasys - Cobertura de Teste - Pairwise
Iterasys - Cobertura de Teste - Pairwise
José 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 TMap
José 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 Scrum
José 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 ISO
José 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 QA
José 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
 

Último

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 

Último (8)

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 

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 |