SlideShare una empresa de Scribd logo
1 de 10
Construindo software em segurança
com BDD
HENRIQUE LUZ
Agenda
 O que é BDD?
 Por que utilizar em Times Ágeis?
 Testes Unitários x Testes Funcionais
 Automatizando os testes
 Show me the code
 Problemas e Limitações
 Nossos desafios
O que é BDD?
 Behavior Driven Development
 Prática de desenvolvimento de software
 Foco no comportamento e resultado
 Ubiquitous Language
 Baseada no domínio do negócio
 Estimula colaboração entre membros do time
 Direcionado a valores de negócio.
 Outside-In Development
 Story Features > Pending Tests > Implementação > Testes funcionais
Por que utilizar em Times Ágeis?
 Linguagem Natural para definir comportamentos
 Gherkin
 Estimula engajamento do cliente
 Artefatos semelhantes as práticas ágeis
 User stories (.feature)
 Favorece o desenvolvimento evolutivo
 Sprints de acordo com comportamentos
 Melhora entendimento do negócio por parte do time
 Maior isolamento da aplicação
 Facilita a escrita de testes
Por que utilizar em Times Ágeis?
Consequência:
Maior Qualidade do Software
Testes Unitários x Testes Funcionais
 Testes unitários
 Geralmente mais baratos
 Código executável
 Mais isolado
 Possibilita evoluir o design da aplicação com segurança
 Testes Funcionais
 De acordo com a especificação (US)
 Mais caros. Principalmente se forem manuais.
 Código executável
 Possibilita evoluir o design da aplicação
 Se complementam.
 Teste unitário não garante funcionalidade correta
 Teste funcional captura erros ao final do desenvolvimento da feature
 Não garantem ausência de bugs. REDUZEM!
 Maior facilidade de identificar problemas.
Automatizando os testes
 Ferramentas de Automatização
 Testes Unitários
 JUnit
 TestNG
 Testes Funcionais
 JMeter
 Selenium
 Selenide
 BDD
 Cucumber
 JBehave
Show me the code
 Exemplo:
 App que calcula o valor do estacionamento
Problemas e Limitações
 Aplicação com uma grande quantidade de testes
 Demora ao executar toda a bateria
 Possível Solução: Paralelização
 Sensível a falhas ao alterar UI
 Evitar uso do xpath
 Difícil simular testes mais complexos
 Ex: Drag/drop, Acesso ao File System, etc..
 Necessidade de incluir muitos waits/delays afetará a perfomance
Nossos desafios
 Testar aplicação 3D
 O canvas é invisível a ferramentas de automatização
 Sugestão?
 Testar funções JavaScript
 Jasmine?
 Incluir hiddens
 Polui o código

Más contenido relacionado

La actualidad más candente

Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareCarlos Santana
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword drivenQualister
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...minastestingconference
 
A importância de utilizar testes automatizados
A  importância   de utilizar  testes automatizadosA  importância   de utilizar  testes automatizados
A importância de utilizar testes automatizadosDiego Allan Oliveira
 
Teste performance carga stress jmeter
Teste performance carga stress jmeterTeste performance carga stress jmeter
Teste performance carga stress jmeterCristiano Caetano
 
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014Qualister
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwareEmanuel Poletto
 
Definindo qualidade de software
Definindo qualidade de softwareDefinindo qualidade de software
Definindo qualidade de softwareFabio Cabral
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesFelipe Freire
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterQualister
 
Xp Comdex
Xp ComdexXp Comdex
Xp ComdexJ. C.
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingJ. C.
 
Testes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasTestes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasQualister
 

La actualidad más candente (20)

Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de software
 
BDD
BDDBDD
BDD
 
Papéis em teste e qualidade de software
Papéis em teste e qualidade de softwarePapéis em teste e qualidade de software
Papéis em teste e qualidade de software
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword driven
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
 
A importância de utilizar testes automatizados
A  importância   de utilizar  testes automatizadosA  importância   de utilizar  testes automatizados
A importância de utilizar testes automatizados
 
Teste performance carga stress jmeter
Teste performance carga stress jmeterTeste performance carga stress jmeter
Teste performance carga stress jmeter
 
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de Software
 
Definindo qualidade de software
Definindo qualidade de softwareDefinindo qualidade de software
Definindo qualidade de software
 
IBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em TestesIBM Rational Piores Práticas em Testes
IBM Rational Piores Práticas em Testes
 
Testes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeterTestes performance nuvem com j meter e blazemeter
Testes performance nuvem com j meter e blazemeter
 
Qualidade de código
Qualidade de códigoQualidade de código
Qualidade de código
 
Xp Comdex
Xp ComdexXp Comdex
Xp Comdex
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Testes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentasTestes em Web Services - conceitos e ferramentas
Testes em Web Services - conceitos e ferramentas
 
Pensando TDD
Pensando TDDPensando TDD
Pensando TDD
 
Selenium WebDriver com Docker
Selenium WebDriver com DockerSelenium WebDriver com Docker
Selenium WebDriver com Docker
 
Supero Framework New
Supero Framework NewSupero Framework New
Supero Framework New
 

Destacado

Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Vanderson Silva
 
Artigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle BehaveArtigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle BehaveJulian Cesar
 
Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Vanderson Silva
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralVanderson Silva
 
Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2Vanderson Silva
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Vanderson Silva
 

Destacado (6)

Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
 
Artigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle BehaveArtigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle Behave
 
Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
 
Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2Demoiselle Behave - Parte 2
Demoiselle Behave - Parte 2
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3
 

Similar a BDD para construção de software seguro

Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsLuiz Henrique
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informaçãoFernando Gomes Chaves
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negóciosRamon Durães
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Análise e Design Orientado a Objetos.ppt
Análise e Design Orientado a Objetos.pptAnálise e Design Orientado a Objetos.ppt
Análise e Design Orientado a Objetos.pptTzveDyor
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Rafael Prallon
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
 

Similar a BDD para construção de software seguro (20)

Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Final Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applicationsFinal Project (2013): Test-Driven Development applied on web applications
Final Project (2013): Test-Driven Development applied on web applications
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negócios
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
Análise e Design Orientado a Objetos.ppt
Análise e Design Orientado a Objetos.pptAnálise e Design Orientado a Objetos.ppt
Análise e Design Orientado a Objetos.ppt
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Agile mobile testing
Agile mobile testingAgile mobile testing
Agile mobile testing
 
ALM com VSTS
ALM com VSTSALM com VSTS
ALM com VSTS
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 

BDD para construção de software seguro

  • 1. Construindo software em segurança com BDD HENRIQUE LUZ
  • 2. Agenda  O que é BDD?  Por que utilizar em Times Ágeis?  Testes Unitários x Testes Funcionais  Automatizando os testes  Show me the code  Problemas e Limitações  Nossos desafios
  • 3. O que é BDD?  Behavior Driven Development  Prática de desenvolvimento de software  Foco no comportamento e resultado  Ubiquitous Language  Baseada no domínio do negócio  Estimula colaboração entre membros do time  Direcionado a valores de negócio.  Outside-In Development  Story Features > Pending Tests > Implementação > Testes funcionais
  • 4. Por que utilizar em Times Ágeis?  Linguagem Natural para definir comportamentos  Gherkin  Estimula engajamento do cliente  Artefatos semelhantes as práticas ágeis  User stories (.feature)  Favorece o desenvolvimento evolutivo  Sprints de acordo com comportamentos  Melhora entendimento do negócio por parte do time  Maior isolamento da aplicação  Facilita a escrita de testes
  • 5. Por que utilizar em Times Ágeis? Consequência: Maior Qualidade do Software
  • 6. Testes Unitários x Testes Funcionais  Testes unitários  Geralmente mais baratos  Código executável  Mais isolado  Possibilita evoluir o design da aplicação com segurança  Testes Funcionais  De acordo com a especificação (US)  Mais caros. Principalmente se forem manuais.  Código executável  Possibilita evoluir o design da aplicação  Se complementam.  Teste unitário não garante funcionalidade correta  Teste funcional captura erros ao final do desenvolvimento da feature  Não garantem ausência de bugs. REDUZEM!  Maior facilidade de identificar problemas.
  • 7. Automatizando os testes  Ferramentas de Automatização  Testes Unitários  JUnit  TestNG  Testes Funcionais  JMeter  Selenium  Selenide  BDD  Cucumber  JBehave
  • 8. Show me the code  Exemplo:  App que calcula o valor do estacionamento
  • 9. Problemas e Limitações  Aplicação com uma grande quantidade de testes  Demora ao executar toda a bateria  Possível Solução: Paralelização  Sensível a falhas ao alterar UI  Evitar uso do xpath  Difícil simular testes mais complexos  Ex: Drag/drop, Acesso ao File System, etc..  Necessidade de incluir muitos waits/delays afetará a perfomance
  • 10. Nossos desafios  Testar aplicação 3D  O canvas é invisível a ferramentas de automatização  Sugestão?  Testar funções JavaScript  Jasmine?  Incluir hiddens  Polui o código