- Douglas Felipe
- Matheus Queiroz
- Pedro Arthur
Este projeto foi desenvolvido como parte do trabalho prático da disciplina de Teste de Software, ministrada pelo professor Eiji Adachi.
O objetivo principal é implementar a lógica de um jogo de batalha por turnos, com foco em duas classes de personagens (Guerreiro
e Assassino
), e criar testes automatizados para verificar o funcionamento correto das funcionalidades implementadas.
O jogo segue uma mecânica baseada em atributos como Ataque, Defesa, Velocidade e Resistência, determinando as ações em combate, como chance de evasão, golpes críticos e cálculo de dano.
- Certifique-se de ter o Java JDK 8 ou superior e o Maven instalados em sua máquina.
- Clone este repositório:
git clone https://github.com/DougFelipe/teste-software
- Navegue até o diretório do projeto:
cd batalha
- Compile o projeto utilizando o Maven:
mvn clean compile
- Para executar o programa principal, utilize o seguinte comando:
mvn exec:java -Dexec.mainClass="batalha.Batalha"
- Certifique-se de que as dependências estão instaladas (veja a seção "Dependências").
- Para rodar os testes automatizados, utilize o Maven:
mvn test
- Os resultados dos testes serão exibidos no terminal.
- Plugin de cobertura configurado no arquivo
pom.xml
utilizando o JaCoCo). - Gere o relatório de cobertura com o seguinte comando:
mvn jacoco:report
- Após a execução, o relatório estará disponível no caminho:
target/site/jacoco/index.html
- Abra o arquivo
index.html
em seu navegador para visualizar os resultados.
O projeto utiliza as seguintes dependências:
- JUnit 5: Para testes automatizados.
- Já configurado no arquivo
pom.xml
.
- Já configurado no arquivo
- Maven: Para gerenciamento de dependências e execução do projeto.
Para instalar as dependências, basta executar:
mvn install
O jogo implementa uma batalha por turnos entre duas classes de personagens: Guerreiro e Assassino.
A seguir, estão exemplos das principais funcionalidades:
-
Criação de Personagens
Guerreiro guerreiro = new Guerreiro(7, 3, 3, 7); Assassino assassino = new Assassino(6, 3, 6, 5);
-
Batalha
O combate segue as seguintes etapas:- Determinação de quem ataca primeiro, baseado na Velocidade.
- Execução de ataques, com verificação de evasão e possibilidade de golpe crítico.
- Cálculo de dano com base nos atributos dos personagens.
Batalha batalha = new Batalha(); batalha.iniciarBatalha(guerreiro, assassino);
-
Testes Automatizados
O projeto inclui uma ampla cobertura de testes que verificam as seguintes funcionalidades:- Validação dos atributos dos personagens.
- Regras específicas das classes (
Guerreiro
eAssassino
). - Mecânica de combate, como cálculo de dano e chance de evasão.
- Os relatórios do teste estão no diretório \batalha\target\site\jacoco\index.html
- Disponíveis no diretório \batalha\target\site\jacoco\index.html
- Relatório MC/DC em um arquivo markdown no diretório \batalha\target\site\jacoco
├── batalha
│ ├── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── batalha
│ │ │ ├── Assassino.java
│ │ │ ├── Batalha.java
│ │ │ ├── Guerreiro.java
│ │ │ └── Personagem.java
│ │ └── test
│ │ └── java
│ │ └── batalha
│ │ ├── BatalhaTest.java
│ │ └── PersonagemTest.java
├── pom.xml
├── README.md
└── .idea