Skip to content

ViniciusProgrammer/validador-de-aprovacao-academico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto de Consolidação de Notas com TDD

Visão Geral do Projeto

Este projeto acadêmico, desenvolvido para a disciplina de Testes de Software, implementa uma funcionalidade para a consolidação parcial de notas de uma turma de graduação. O sistema calcula o status de aprovação dos alunos com base em seu desempenho acadêmico e frequência. O desenvolvimento foi guiado pela metodologia de Test-Driven Development (TDD) e a automação de testes foi realizada com JUnit 5.

Funcionalidades e Regras de Negócio

O sistema calcula o status de um aluno matriculado (APR, REC, REP, etc.) com base nas seguintes regras de aprovação:

1. Aprovação Direta (APR)

O aluno é considerado aprovado se atender a todos os seguintes critérios:

  • Média parcial igual ou superior a 6,0.
  • Nenhuma nota de unidade avaliativa inferior a 4,0.
  • Frequência mínima de 75%.

2. Avaliação de Reposição (REC)

O aluno tem direito à avaliação de reposição se:

  • Atingir a frequência mínima de 75%.
  • Sua média parcial for igual ou superior a 3,0 e inferior a 6,0.

3. Reprovação (REP, REPF, REPMF)

O aluno é reprovado se:

  • Sua média parcial for inferior a 3,0 (REP).
  • Não atingir a frequência mínima de 75% (REPF).

Estrutura do Projeto

O projeto foi criado e gerenciado com o Apache Maven, utilizando o archetype maven-archetype-quickstart. A estrutura de diretórios segue o padrão Maven:

  • src/main/java: Contém o código-fonte da aplicação, incluindo as classes Matricula, Discente, Turma, etc.
  • src/test/java: Contém o código de teste.
  • pom.xml: Arquivo de configuração que gerencia as dependências do projeto, como o JUnit 5.

Estratégia de Testes

Para garantir a qualidade e a corretude da implementação, foi desenvolvida uma suíte de testes robusta com JUnit 5, cobrindo os seguintes aspectos:

  • Test-Driven Development (TDD): O método calcularMediaParcial() foi desenvolvido seguindo o ciclo TDD: criar um teste que falha, implementar a funcionalidade para o teste passar e refatorar o código.
  • Testes de Exceção: Foram implementados testes para garantir que os métodos de cadastro de notas e frequência lançam uma IllegalArgumentException quando recebem valores fora do intervalo válido (Notas: 0-10, Frequência: 0-100).
  • Testes Parametrizados: O método consolidarParcialmente() é validado através de testes parametrizados com a anotação @CsvSource, cobrindo todos os possíveis status de aprovação com diferentes cenários.

Como Executar o Projeto

Para compilar e testar este projeto, você precisará ter o Java (JDK) e o Apache Maven instalados e configurados no seu sistema.

Pré-requisitos

  1. Java Development Kit (JDK):

    • Este projeto foi desenvolvido e testado com Java 17. Versões superiores (como Java 21) também são compatíveis.
  2. Apache Maven:

    • É necessário ter o Maven instalado. Para verificar se ele está configurado corretamente, abra o terminal e execute o comando:
      mvn -v
    • Se o comando não for encontrado, você pode seguir o guia de instalação no site oficial do Maven.

Passos para Execução

  1. Clone o Repositório

    • Clone este repositório para a sua máquina local.
  2. Navegue até a Pasta do Projeto

    • Abra o terminal e entre na pasta raiz do projeto (a pasta que contém o pom.xml).
  3. Compile o Projeto

    • Execute o comando de compilação do Maven. Ele irá baixar as dependências (como o JUnit 5) e compilar todo o código-fonte.
      mvn compile
  4. Rode a Suíte de Testes (Ação Principal)

    • O objetivo principal deste projeto é a suíte de testes automatizados. Para executá-la, use o comando:
      mvn test
    • Este comando executará todos os testes e, se tudo estiver correto, você verá a mensagem BUILD SUCCESS no final, indicando que a lógica de negócio e as validações estão funcionando como esperado.

Requisitos para Entrega

Para a submissão desta atividade, o projeto deve seguir as seguintes especificações:

  • O campo groupId no arquivo pom.xml deve ser alterado para o nome completo do aluno em formato camelCase (ex: joaoSilvaSantos).
  • O projeto final deve ser compactado em um arquivo .zip, nomeado com o nome completo do aluno no mesmo formato (ex: joaoSilvaSantos.zip).

Autor

  • Nome: Vinicius Davi
  • Projeto: Atividade Prática - Automatização de Testes e Test-Driven Development

About

Atividade Prática de Testes de Software: Sistema em Java e Maven para consolidação de notas, com cobertura de testes (JUnit 5) desenvolvida via TDD.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages