## Tela de módulo
- **Responsável:** Daniel

## Edição de usuários
- **Responsável:** Daniel

## Tela de criar aulas
- **Responsável:** Lucas

## Tela de atualizar aulas
- **Responsável:** Lucas

## Tela de editar módulos
- **Responsável:** Lucas

## Tela de Usuário
- **Responsável:** Thalysson

## Tela de login
- **Responsável:** Thalysson 

## Tela de alterar senha
- **Responsável:** Thalysson

---

# Plano de Teste

**Plataforma de matemática**

## 1 - Introdução

A plataforma de matemática é um projeto da fábrica de software que tem o objetivo de trazer as aulas dadas pelo Marcos, o cliente, para que os 
alunos possam se manter sempre atualizados. Eles acessarão o site da plataforma de matemática, escolherão um módulo que quiserem visualizar, 
assistirão às aulas, farão as atividades e no final marcarão a aula como feita.

## 2 - Arquitetura
O framework utilizado para a implementação do front-end da plataforma de matemática é o NEXT.JS, que possui uma arquitetura orientada a componentes, pois é baseado no React. Para o armazenamento, consulta e alteração de dados da aplicação, será usada uma API que disponibiliza um conjunto de serviços REST.

## 3 - Categorização dos Requisitos em Funcionais x Não Funcionais

   Requisito Funcional    | Requisito Não Funcional |
-----------|--------|
RF001 – O sistema deve permitir o cadastro de usuários  |  NF001 – O sistema deve ser desenvolvido em web   | 
RF002 – O sistema deve permitir que o usuário realize login  |  NF002 – O banco de dados utilizado deverá ser o MySQL Workbench   | 
RF003 – O sistema deve permitir o cadastro de módulos  |  NF003 – O sistema deve ser acessível via Browser, como Google Chrome, Internet Explorer e Mozilla Firefox.   |
RF004 – O sistema deve permitir a listagem de módulos |  |
RF005 – O sistema deve permitir o cadastro de novas aulas dentro de módulos   |    |
RF006 – O sistema deve permitir a listagem de aulas dentro dos módulos  |   |
RF007 – O sistema deve permitir remover uma aula  |   |
RF008 – O sistema deve permitir a visualização de uma vídeo-aula  |   |
RF009 – O sistema deve permitir o download de PDFs de uma aula  |   |
RF010 – O sistema deve permitir marcar uma aula como feita  |   |
RF011 – O sistema deve permitir visualizar os usuários  |   |
RF012 – O sistema deve permitir editar os usuários  |   |
RF013 – O sistema deve permitir inseir usuários com um csv |   |

### Casos de Teste

Funcionalidades   | Comportamento Esperado | Verificações |  Critérios de Aceite  |
-----------|--------|--------|--------| 
Login |  ● Ao digitar seu usuário e senha corretamente o usuário irá logar na plataforma. <br> | ●	Login no Sistema com sucesso <br>●	Usuário Inválido <br>●	Usuário não preencheu o campo obrigatório <br>●	Senha Incorreta <br>●Deve existir e estar visível: Imagem identificada como imagem-m4, Formulário de login identificado como form-login, Label do campo matrícula, Input do campo matrícula, Label do campo senha, Input do campo senha, Checkbox (opção interativa de "lembrar senha")| ●	Ter acessibilidade no sistema  <br>●    Redimensionar a Tela

Funcionalidades   | Comportamento Esperado | Verificações |  Critérios de Aceite  |
-----------|--------|--------|--------| 
Listagem de módulos |  ● Ao entrar na tela inicial o usuário irá ver uma lista com todos os módulos. <br> ● Deve ser exibido um ícone com as iniciais do usuário no navigation/cabeçalho. <br>● O card do módulo deverá ter título, imagem e descrição. <br> ● O usuário deve poder navegar entre as telas disponíveis no navigation da tela principal. <br> ● O administrador deve poder cadastrar um novo módulo. <br> ● O usuário deve poder entrar em um módulo ao clicar nele.| |

Funcionalidades   | Comportamento Esperado | Verificações |  Critérios de Aceite  |
-----------|--------|--------|--------| 
Cadastrar módulos | ● O administrador deverá poder inserir um título para o módulo. <br> ● O administrador deverá poder inserir uma descrição para o módulo. <br> ● O administrador deverá poder inserir uma imagem para o módulo. <br> ● O administrador deverá poder selecionar uma turma para o módulo. <br>  ● O administrador deverá ver a pré-visualização de como ficará o card do módulo em tempo real. | ●	Mínimo de 2 caracteres ao título. <br>●	Máximo de 45 caracteres ao título. <br> ●	Mínimo de 10 caracteres à descrição. <br> ●	Máximo de 200 caracteres à descrição. <br> ●	Máximo de 5MB do tamanho da imagem. <br> ●	Deve selecionar uma turma. <br> ●	Deve cadastrar um módulo com sucesso.| ●	Cadastrar o módulo na tela de módulos/tela principal. <br> ●	Cadastrar o módulo no banco de dados.|

Funcionalidades   | Comportamento Esperado | Verificações |  Critérios de Aceite  |
-----------|--------|--------|--------| 
| Login | ● O usuário deve conseguir fazer o login na página. | ● Ao colocar a matrícula errada deverá aparecer uma mensagem de erro no campo de matrícula ; <br> ● Ao colocar a senha errada deverá aparecer uma mensagem de erro no campo de senha; <br> ● Os campos de inserção de matrícula e senha devem ser exibidos corretamente. | ● Após preencher todos os campos corretamente e seguir adiante deverá entrar na página principal.      |
| Renderização da Tela  | ● Os elementos principais da página devem ser exibidos corretamente ao carregar a tela.     | ● O botão de abrir modal deve estar visível. <br> ● O player de vídeo deve existir. <br> ● O título deve ser exibido com o texto "Introdução à Álgebra: Conceitos Básicos". <br> ● A descrição e os conteúdos devem existir. <br> ● Botões e cabeçalho devem ser exibidos. | ● Ao acessar a URL `http://localhost:3000/aula?modulo_id=2`, os elementos mencionados devem estar presentes e visíveis conforme especificado. |
| Reprodução do Vídeo   | ● O vídeo da aula deve ser carregado e visível com origem no YouTube.                       | ● O `iframe` do vídeo deve existir e estar visível. <br> ● A URL do vídeo deve conter a palavra "youtube.com".            | ● O vídeo deve carregar em um `iframe` e ser visível ao usuário em até 2 segundos. <br> ● A origem do vídeo deve ser o YouTube. |
| Redirecionamento de PDF | ● O botão de conteúdo e gabaritos devem abrir arquivos PDF ao serem clicados.              | ● A função `window.open` deve ser chamada com URLs contendo `/api/arquivo?path=` após clicar em: <br> ○ `aula-conteudo-0` <br> ○ `aula-gabarito-1` <br> ○ `aula-gabarito-2`. | ● Ao clicar nos botões de conteúdo e gabaritos, os arquivos PDF devem abrir corretamente na URL fornecida.                  |
| Abrir e Fechar Modal  | ● O modal de aula deve abrir e fechar corretamente através dos botões específicos.          | ● O botão "fechar modal" deve fechar o modal e exibir o botão "abrir modal". <br> ● O botão "abrir modal" deve abrir o modal e esconder o botão "abrir modal". | ● O modal deve alternar entre visível e invisível ao clicar nos botões "abrir" e "fechar".                                  |
| Troca de Aula         | ● O usuário deve conseguir selecionar outra aula para assistir e atualizar os dados exibidos. | ● Ao selecionar `modal-aula-1`, o título deve mudar para "Equações de 1º Grau: Resolução e Aplicações". <br> ● O vídeo, descrição e conteúdos devem ser exibidos corretamente. | ● Após selecionar outra aula, os elementos (título, vídeo, descrição e conteúdos) devem ser atualizados corretamente.      |

## 4 - Classificação de Bugs

Os Bugs serão classificados com as seguintes severidades:

ID 	| Nível de Severidade |	Descrição 
-----------|--------|--------
1	| Blocker |	●	Bug que bloqueia o teste de uma função ou feature causa crash na aplicação. <br>●	Botão não funciona impedindo o uso completo da funcionalidade. <br>●	Bloqueia a entrega. 
2	| Grave |	●	Funcionalidade não funciona como o esperado <br>●	Input incomum causa efeitos irreversíveis
3	| Moderada |	●	Funcionalidade não atinge certos critérios de aceitação, mas sua funcionalidade em geral não é afetada <br>●	Mensagem de erro ou sucesso não é exibida
4	| Pequena |	●	Quase nenhum impacto na funcionalidade porém atrapalha a experiência  <br>●	Erro ortográfico<br>● Pequenos erros de UI

### 5 - Definição de Pronto 
Será considerada pronta as funcionalidades que passarem pelas verificações e testes descritos neste TestPlan, não apresentarem bugs com a severidade acima de Minor, e passarem por uma validação de negócio de responsabilidade do time de produto.