Construindo software em segurança com BDD

179 visualizações

Publicada em

Apresentação para o MiniTreinamento de BDD do Atlântico.

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
179
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Construindo software em segurança com BDD

  1. 1. Construindo software em segurança com BDD HENRIQUE LUZ
  2. 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. 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. 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. 5. Por que utilizar em Times Ágeis? Consequência: Maior Qualidade do Software
  6. 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. 7. Automatizando os testes  Ferramentas de Automatização  Testes Unitários  JUnit  TestNG  Testes Funcionais  JMeter  Selenium  Selenide  BDD  Cucumber  JBehave
  8. 8. Show me the code  Exemplo:  App que calcula o valor do estacionamento
  9. 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. 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

×