SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
SeuSeu clientecliente nono
controlecontrole!!
TestesTestes ágeiságeis
http://dbehave.com
Vanderson Botelho
botelhojp@gmail.com
Testar deve
ser dífícil
TudoTudo pronto!pronto!
So falta Testar
““Eu agarantcho”Eu agarantcho”
BDDBDD Behavior Driven Development
Desenvolvimento Guiado por Comportamento
É umaÉ uma técnica de desenvolvimento Ágiltécnica de desenvolvimento Ágil queque
encoraja colaboração entre desenvolvedores, setoresencoraja colaboração entre desenvolvedores, setores
de qualidade e pessoas não-técnicas ou de negóciosde qualidade e pessoas não-técnicas ou de negócios
em um projeto de software.em um projeto de software.
Foi originalmente concebido em 2003, por Dan North.Foi originalmente concebido em 2003, por Dan North.
https://pt.wikipedia.org/wiki/Behavior_Driven_Development
UseUse histórias concretashistórias concretas
para ilustrar o que separa ilustrar o que se
deseja do softwaredeseja do software
WebDriver driver = new FirefoxDriver();
driver.get("http://localhost:8080/treino/");
WebElement login =
driver.findElement(By.xpath("(//input[contai
ns(@id, 'formLogin')][contains(@type,
'text')])"));
login.click();
login.clear();
login.sendKeys("joao");
WebElement senha =
driver.findElement(By.xpath("(//input[contai
ns(@id, 'formLogin')][contains(@type,
'password')])"));
senha.clear();
senha.sendKeys("123");
WebElement botaoOk =
driver.findElement(By.xpath("(//button[conta
ins(@type, 'submit')])"));
botaoOk.click();
RequisitoRequisito
Funcionalidade: Acessa ao Sistema
Cenário: Acessa sistema com usuário válido
Dado que vou para a página "Tela de Login"
Quando informo "joao" no campo "Usuário"
E informo "123" no campo "Campo Senha"
Quando clico em "Entrar"
Então estou autenticado
Caso de TesteCaso de Teste
Script ManualScript Manual
Tradicional
Ágil BDD
WebDriver driver = new FirefoxDriver();
driver.get("http://localhost:8080/treino/");
WebElement login =
driver.findElement(By.xpath("(//input[contai
ns(@id, 'formLogin')][contains(@type,
'text')])"));
login.click();
login.clear();
login.sendKeys("joao");
WebElement senha =
driver.findElement(By.xpath("(//input[contai
ns(@id, 'formLogin')][contains(@type,
'password')])"));
senha.clear();
senha.sendKeys("123");
WebElement botaoOk =
driver.findElement(By.xpath("(//button[conta
ins(@type, 'submit')])"));
botaoOk.click();
RequisitoRequisito
Funcionalidade: Acessa ao Sistema
Cenário: Acessa sistema com usuário válido
Dado que vou para a página "Tela de Login"
Quando informo "joao" no campo "Usuário"
E informo "123" no campo "Campo Senha"
Quando clico em "Entrar"
Então estou autenticado
Caso de TesteCaso de Teste
Script ManualScript Manual
Tradicional
Ágil BDD
ManutençãoManutenção
AprendizagemAprendizagem
ProdutividadeProdutividade
ColaboraçãoColaboração
PPrrááttiiccaa
Funcionalidade: Operar a Calculadora
Narrativa:
Para obter as operações básicas da calculadora
Como um usuário qualquer
Desejo resolver problemas matemáticos de forma
mais rápida
Cenário: Somar
Dado que inicio a Calculadora
Quando adiciono "5"
E adiciono "7"
Então seu valor será "12"
Escreva suas histórias
Cenário: Somar
Dado que inicio a Calculadora
Quando adiciono "5"
E adiciono "7"
Então seu valor será "12"
@When("Quando inicio a Calculadora")
public void goToWithName(String local) {
}
@When("adiciono "$valor"")
public void whenAdiciono(double valor) {
}
@Then("seu valor será "$valor"")
public void thenSeuValorSera(double valor) {
}
Frases mapeadas
em métodos
@ScreenMap(name = "Tela de Busca", location = "http://www.google.com.br")
public class MyPage {
@ElementMap(
name = "Campo de Busca",
locatorType = ElementLocatorType.Id,
locator = "gbqfq")
private TextField searchField;
@ElementMap(
name = "Estou com sorte",
locatorType = ElementLocatorType.Id,
locator = "gbqfbb")
private Button buttonLuckSearch;
}
Projeto DemoiselleDemoiselle
Para Automação de Testes em BDDBDD
http://github.com/demoiselle/behave
http://dbehave.com
Site
Dúvidas
Comunidade
http://dbehave.com
Vanderson Botelho
botelhojp@gmail.com

Mais conteúdo relacionado

Semelhante a Seu Cliente no Controle! Testes ágeis

20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJS20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJSJoão Pedro Martins
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cpcesarvianna
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com CodeceptionJúlio de Lima
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAndré Abe Vicente
 
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
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralVanderson Silva
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
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
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
thedevconference-summit-ai-saopaulo-2024.pdf
thedevconference-summit-ai-saopaulo-2024.pdfthedevconference-summit-ai-saopaulo-2024.pdf
thedevconference-summit-ai-saopaulo-2024.pdfBrunoLusadaCosta
 

Semelhante a Seu Cliente no Controle! Testes ágeis (20)

20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJS20140520 Microsoft WebCamp - DataBinding with KnockoutJS
20140520 Microsoft WebCamp - DataBinding with KnockoutJS
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Testes automatizados cp
Testes automatizados cpTestes automatizados cp
Testes automatizados cp
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da Indústria
 
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
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de software
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
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
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Relatório
RelatórioRelatório
Relatório
 
thedevconference-summit-ai-saopaulo-2024.pdf
thedevconference-summit-ai-saopaulo-2024.pdfthedevconference-summit-ai-saopaulo-2024.pdf
thedevconference-summit-ai-saopaulo-2024.pdf
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
 

Seu Cliente no Controle! Testes ágeis

  • 1. SeuSeu clientecliente nono controlecontrole!! TestesTestes ágeiságeis http://dbehave.com Vanderson Botelho botelhojp@gmail.com
  • 3. TudoTudo pronto!pronto! So falta Testar ““Eu agarantcho”Eu agarantcho”
  • 4. BDDBDD Behavior Driven Development Desenvolvimento Guiado por Comportamento É umaÉ uma técnica de desenvolvimento Ágiltécnica de desenvolvimento Ágil queque encoraja colaboração entre desenvolvedores, setoresencoraja colaboração entre desenvolvedores, setores de qualidade e pessoas não-técnicas ou de negóciosde qualidade e pessoas não-técnicas ou de negócios em um projeto de software.em um projeto de software. Foi originalmente concebido em 2003, por Dan North.Foi originalmente concebido em 2003, por Dan North. https://pt.wikipedia.org/wiki/Behavior_Driven_Development
  • 5. UseUse histórias concretashistórias concretas para ilustrar o que separa ilustrar o que se deseja do softwaredeseja do software
  • 6. WebDriver driver = new FirefoxDriver(); driver.get("http://localhost:8080/treino/"); WebElement login = driver.findElement(By.xpath("(//input[contai ns(@id, 'formLogin')][contains(@type, 'text')])")); login.click(); login.clear(); login.sendKeys("joao"); WebElement senha = driver.findElement(By.xpath("(//input[contai ns(@id, 'formLogin')][contains(@type, 'password')])")); senha.clear(); senha.sendKeys("123"); WebElement botaoOk = driver.findElement(By.xpath("(//button[conta ins(@type, 'submit')])")); botaoOk.click(); RequisitoRequisito Funcionalidade: Acessa ao Sistema Cenário: Acessa sistema com usuário válido Dado que vou para a página "Tela de Login" Quando informo "joao" no campo "Usuário" E informo "123" no campo "Campo Senha" Quando clico em "Entrar" Então estou autenticado Caso de TesteCaso de Teste Script ManualScript Manual Tradicional Ágil BDD
  • 7. WebDriver driver = new FirefoxDriver(); driver.get("http://localhost:8080/treino/"); WebElement login = driver.findElement(By.xpath("(//input[contai ns(@id, 'formLogin')][contains(@type, 'text')])")); login.click(); login.clear(); login.sendKeys("joao"); WebElement senha = driver.findElement(By.xpath("(//input[contai ns(@id, 'formLogin')][contains(@type, 'password')])")); senha.clear(); senha.sendKeys("123"); WebElement botaoOk = driver.findElement(By.xpath("(//button[conta ins(@type, 'submit')])")); botaoOk.click(); RequisitoRequisito Funcionalidade: Acessa ao Sistema Cenário: Acessa sistema com usuário válido Dado que vou para a página "Tela de Login" Quando informo "joao" no campo "Usuário" E informo "123" no campo "Campo Senha" Quando clico em "Entrar" Então estou autenticado Caso de TesteCaso de Teste Script ManualScript Manual Tradicional Ágil BDD ManutençãoManutenção AprendizagemAprendizagem ProdutividadeProdutividade ColaboraçãoColaboração
  • 9. Funcionalidade: Operar a Calculadora Narrativa: Para obter as operações básicas da calculadora Como um usuário qualquer Desejo resolver problemas matemáticos de forma mais rápida Cenário: Somar Dado que inicio a Calculadora Quando adiciono "5" E adiciono "7" Então seu valor será "12" Escreva suas histórias
  • 10. Cenário: Somar Dado que inicio a Calculadora Quando adiciono "5" E adiciono "7" Então seu valor será "12" @When("Quando inicio a Calculadora") public void goToWithName(String local) { } @When("adiciono "$valor"") public void whenAdiciono(double valor) { } @Then("seu valor será "$valor"") public void thenSeuValorSera(double valor) { } Frases mapeadas em métodos
  • 11. @ScreenMap(name = "Tela de Busca", location = "http://www.google.com.br") public class MyPage { @ElementMap( name = "Campo de Busca", locatorType = ElementLocatorType.Id, locator = "gbqfq") private TextField searchField; @ElementMap( name = "Estou com sorte", locatorType = ElementLocatorType.Id, locator = "gbqfbb") private Button buttonLuckSearch; }
  • 12. Projeto DemoiselleDemoiselle Para Automação de Testes em BDDBDD http://github.com/demoiselle/behave http://dbehave.com
  • 13. Site