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.
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.
- 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.
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.
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.
Para Utilizar o projeto BDD-Auction
, após o procedimento acima, siga estas etapas:
- Abra o terminal e utilize o
git clonegit@github.com:rafaelrok/bdd-auction.git
- 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.
Rafael Vieira |
Esse projeto está sob licença. Observe o arquivo LICENÇA para mais detalhes.