Skip to content

Project developed in Java with spring boot, to implement tests in the BDD pattern with Cucumber.

License

Notifications You must be signed in to change notification settings

rafaelrok/bdd-auction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto: BDD-Auction

GitHub language count GitHub last commit License Stargazers medium


Este projeto apresenta uma solução de "Leilão" em Java com Spring Boot e ênfase em testes utilizando Cucumber com BDD seria uma aplicação que permitiria aos usuários participar de leilões de produtos ‘online’. A aplicação seria desenvolvida usando a arquitetura RESTful, onde os usuários poderiam acessar a aplicação através de uma API.


BDD Fluxo:

A ideia desse projeto e demontrar a utilização do BDD (Behavior Driven Development) com Cucumber para enfatiza a colaboração e a comunicação entre as equipes de desenvolvimento, testes e negócios para garantir que o ‘software’ atenda às expectativas dos usuários e clientes. O Cucumber é uma ferramenta de automação de testes que permite a escrita de cenários de teste numa linguagem natural, permitindo que as equipes de negócios e testes se comuniquem com os desenvolvedores de forma mais eficaz. A imagem pode demostrar um pouco do fluxo de BDD e comparação com TDD.


Implementação:

A aplicação teria as seguintes funcionalidades:

  • Cadastro de usuários: os usuários poderiam criar uma conta na aplicação para participar de leilões.
  • Cadastro de produtos: os usuários poderiam cadastrar produtos para leilão, incluindo uma descrição do produto, o preço inicial e o tempo de duração do leilão.
  • Participação em leilões: os usuários poderiam participar de leilões, fazer lances e acompanhar o progresso do leilão.
  • Finalização de leilões: quando o tempo de duração do leilão expirar, o produto será vendido ao usuário que fez o lance mais alto.

Estrutura de testes:

Para implementar a aplicação, seria utilizado o framework Spring Boot, que permite o desenvolvimento rápido e fácil de aplicações web em Java. Para os testes, seria utilizado o Cucumber com BDD, que é uma ferramenta que permite escrever testes em linguagem natural e executá-los automaticamente.

O projeto seria dividido em camadas, seguindo uma arquitetura MVC (Model-View-Controller), onde a camada de modelo seria responsável pelo acesso aos dados, a camada de visualização seria responsável pela interface do usuário e a camada de controle seria responsável pela lógica de negócios.

Os testes seriam escritos em linguagem natural usando o formato Gherkin, sendo uma linguagem que descreve o comportamento esperado da aplicação. Os cenários seriam escritos em arquivos .feature, que descrevem o comportamento da aplicação em termos de requisitos de negócios. Cada cenário seria composto de passos, que seriam executados automaticamente pelo Cucumber.

Para a execução dos testes, seria utilizado o JUnit, um framework de teste para Java. O Cucumber seria integrado ao JUnit, permitindo a execução dos testes automaticamente.


Alguma das Vantegenns do BDD com Cucumber:

1- Comunicação eficaz: O Cucumber permite que as equipes de negócios e testes escrevam cenários de teste numa linguagem natural, tornando a comunicação mais fácil e eficaz entre as equipes.

2- Foco nos comportamentos do sistema: O BDD enfoca o comportamento do sistema e não apenas as funções ou recursos. Isso ajuda as equipes a entenderem melhor o que o sistema deve fazer e o que não deve fazer.

3- Testes automatizados: com o Cucumber, é possível criar testes automatizados que verificam se o sistema se comporta conforme as expectativas dos usuários e clientes. Isso ajuda a reduzir o tempo e os custos associados à execução de testes manuais repetitivos.

4- Reutilização de código: O Cucumber permite a reutilização de código entre cenários de teste, ajudando a reduzir a duplicação de esforços e a manter os testes mais organizados e fáceis de gerenciar.

5- Integração com outras ferramentas: O Cucumber pode ser facilmente integrado com outras ferramentas de desenvolvimento, como o Maven e o Jenkins, o que ajuda a automatizar todo o processo de construção e teste.

6-Documentação viva: com o Cucumber, os cenários de teste servem como documentação viva do sistema e ajudam a manter todos os envolvidos no projeto atualizados sobre o comportamento do sistema.

7- Foco no valor para o negócio: O BDD enfatiza o valor para o negócio e ajuda a garantir que o software entregue atenda às expectativas do cliente e gere valor real para o negócio.

8-Facilidade de manutenção: com o Cucumber, os cenários de teste são escritos numa linguagem natural, facilitando para as equipes de desenvolvimento e testes manterem e atualizarem os testes ao longo do tempo.

9- Feedback rápido: O BDD com Cucumber permite a execução rápida de testes automatizados, permitindo que as equipes obtenham feedback imediato sobre a qualidade do software.

10- Cobertura abrangente de testes: com o Cucumber, é possível criar testes abrangentes que cobrem todos os aspectos do sistema, incluindo os casos de borda e as interações entre os diferentes componentes.

11- Melhoria da qualidade do código: O BDD com Cucumber incentiva o uso de boas práticas de programação, como o desenvolvimento orientado a objetos (OO) e o design pattern, o que ajuda a melhorar a qualidade do código entregue.

12- Melhoria da colaboração: O BDD com Cucumber enfatiza a colaboração entre as diferentes equipes envolvidas no desenvolvimento do software, o que ajuda a melhorar a qualidade do software entregue e a reduzir os conflitos entre as equipes.

Utilizando BDD-Auction

Para Utilizar o projeto BDD-Auction, após o procedimento acima, siga estas etapas:

Siga estas etapas:

- Após execute o projeto com sua IDEA de preferência.

- Devera configurar o aplications-test.properties | aplications-prod.properties e informar as configurações de seu banco H2 ou DB em ambiente Dev.

- Após só executar sua apliacação com spring-boot:run

Com o Cucumber, é possível criar cenários de teste em linguagem natural que descrevem o comportamento esperado do software e, em seguida, traduzi-los em código de teste que pode ser executado automaticamente. Isso ajuda a garantir que o software esteja funcionando corretamente e de acordo com as especificações do cliente.

O Cucumber é uma ferramenta de código aberto que pode ser usada em vários idiomas de programação, como Java, Ruby, Python e JavaScript, e é suportado por muitas ferramentas de teste populares, como o Selenium WebDriver e o Appium. Ele é amplamente utilizado em projetos de software em todo o mundo e é considerado uma das principais ferramentas de automação de teste de software no mercado atualmente.

Desenvolvedor

Foto do Rafael Vieira no GitHub
Rafael Vieira
linkedin medium gmail

📝 Licença

Esse projeto está sob licença. Observe o arquivo LICENÇA para mais detalhes.

⬆ Voltar ao topo

About

Project developed in Java with spring boot, to implement tests in the BDD pattern with Cucumber.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published