Testes e evidências

Testes automatizados de desenvolvimento. Não foram realizados testes com colegas nem demonstrada redução do tempo de ecrã.

Local — API

URL: http://localhost:8788. Data: 2026-11-01T17:50:27.238Z. 72 pedidos verificados.

Funcionalidade testada Resultado esperado Resultado obtido Estado
Visitante consulta conteúdos; dados privados exigem sessão Conteúdos públicos disponíveis; GET /data e criação de meta sem sessão devolvem 401. Conforme ao esperado Passou
Registo valida campos e recusa atribuição de administrador Nome curto e senha curta devolvem 400; role admin devolve 403; contas válidas são student. Conforme ao esperado Passou
Aluno bloqueado na administração e CSRF rejeitado Aluno recebe 403 no painel; origem externa recebe 403. Conforme ao esperado Passou
Criar, consultar, editar e concluir meta POST cria meta; PUT altera título/duração e marca conclusão; GET devolve os valores guardados. Conforme ao esperado Passou
Isolamento de contas em consultas e pedidos directos às metas Aluno B não vê metas de A e recebe 404 ao tentar alterá-las ou apagá-las. Conforme ao esperado Passou
Metas rejeitam campos, categorias e tempos impossíveis Texto vazio, categoria inválida, zero ou fracção são recusados com 400. Conforme ao esperado Passou
Registos diários: criar, actualizar a mesma data, editar e persistir Mesmo dia actualiza um único registo; correcção para 80 min de estudo persiste no GET. Conforme ao esperado Passou
Datas impossíveis, futuras e total superior a 24h são rejeitados Datas inexistentes/futuras, minutos negativos/fraccionários e soma >1440 devolvem 400. Conforme ao esperado Passou
Registos diários de outro aluno não podem ser alterados ou eliminados Aluno B não vê registos de A e recebe 404 ao tentar alterar/apagar. Conforme ao esperado Passou
Desafio: concluir, impedir duplicação e desfazer; isolamento por conta Conclusão duplicada não duplica dados; B não apaga conclusão de A; desfazer remove. Conforme ao esperado Passou
Logout invalida sessão; login correcto persiste dados; senha errada recusada Sessão antiga recebe 401; senha errada recebe 401; login válido recupera os dados. Conforme ao esperado Passou
Administrador provisionado fora da API gere conteúdos e desafios Promoção só por D1; admin cria, altera e apaga conteúdo e desafio publicados. Conforme ao esperado Passou
Eliminar metas e registos DELETE remove meta e registo; consulta posterior tem listas vazias. Conforme ao esperado Passou
Eliminar conta exige palavra-passe e invalida sessões/dados associados Senha errada devolve 403; eliminação invalida sessão, impede login e deixa zero dados órfãos. Conforme ao esperado Passou

Local — navegador

URL: http://localhost:8788. Data: 2026-11-01T17:52:00.615Z.

Funcionalidade testada Resultado esperado Resultado obtido Estado
Início em 390px: navegação, CTA e ausência de overflow CTA abre plano e não há largura excedente a 390px. Passou Passou
Questionário produz síntese descritiva sem guardar respostas Quatro respostas produzem síntese sem diagnóstico. Passou Passou
Conta, meta e persistência depois de actualizar página Conta criada, meta alterada e recuperada após actualizar. Passou Passou
Registo diário e desafio em ecrã pequeno Registo persiste; desafio é concluído e desfeito; sem overflow. Passou Passou
Pesquisa acessível e páginas em desktop Gráfico com cinco valores acessíveis; páginas sem overflow a 1440px. Passou Passou
Logout, login e eliminação de conta pela interface Logout e login funcionam; eliminação volta ao formulário de conta. Passou Passou

Produção — API

URL: https://desliga-um-pouco.pages.dev. Data: 2026-11-01T17:53:30.956Z. 72 pedidos verificados.

Funcionalidade testada Resultado esperado Resultado obtido Estado
Visitante consulta conteúdos; dados privados exigem sessão Conteúdos públicos disponíveis; GET /data e criação de meta sem sessão devolvem 401. Conforme ao esperado Passou
Registo valida campos e recusa atribuição de administrador Nome curto e senha curta devolvem 400; role admin devolve 403; contas válidas são student. Conforme ao esperado Passou
Aluno bloqueado na administração e CSRF rejeitado Aluno recebe 403 no painel; origem externa recebe 403. Conforme ao esperado Passou
Criar, consultar, editar e concluir meta POST cria meta; PUT altera título/duração e marca conclusão; GET devolve os valores guardados. Conforme ao esperado Passou
Isolamento de contas em consultas e pedidos directos às metas Aluno B não vê metas de A e recebe 404 ao tentar alterá-las ou apagá-las. Conforme ao esperado Passou
Metas rejeitam campos, categorias e tempos impossíveis Texto vazio, categoria inválida, zero ou fracção são recusados com 400. Conforme ao esperado Passou
Registos diários: criar, actualizar a mesma data, editar e persistir Mesmo dia actualiza um único registo; correcção para 80 min de estudo persiste no GET. Conforme ao esperado Passou
Datas impossíveis, futuras e total superior a 24h são rejeitados Datas inexistentes/futuras, minutos negativos/fraccionários e soma >1440 devolvem 400. Conforme ao esperado Passou
Registos diários de outro aluno não podem ser alterados ou eliminados Aluno B não vê registos de A e recebe 404 ao tentar alterar/apagar. Conforme ao esperado Passou
Desafio: concluir, impedir duplicação e desfazer; isolamento por conta Conclusão duplicada não duplica dados; B não apaga conclusão de A; desfazer remove. Conforme ao esperado Passou
Logout invalida sessão; login correcto persiste dados; senha errada recusada Sessão antiga recebe 401; senha errada recebe 401; login válido recupera os dados. Conforme ao esperado Passou
Administrador provisionado fora da API gere conteúdos e desafios Promoção só por D1; admin cria, altera e apaga conteúdo e desafio publicados. Conforme ao esperado Passou
Eliminar metas e registos DELETE remove meta e registo; consulta posterior tem listas vazias. Conforme ao esperado Passou
Eliminar conta exige palavra-passe e invalida sessões/dados associados Senha errada devolve 403; eliminação invalida sessão, impede login e deixa zero dados órfãos. Conforme ao esperado Passou

Produção — navegador

URL: https://desliga-um-pouco.pages.dev. Data: 2026-11-01T17:53:44.141Z.

Funcionalidade testada Resultado esperado Resultado obtido Estado
Início em 390px: navegação, CTA e ausência de overflow CTA abre plano e não há largura excedente a 390px. Passou Passou
Questionário produz síntese descritiva sem guardar respostas Quatro respostas produzem síntese sem diagnóstico. Passou Passou
Conta, meta e persistência depois de actualizar página Conta criada, meta alterada e recuperada após actualizar. Passou Passou
Registo diário e desafio em ecrã pequeno Registo persiste; desafio é concluído e desfeito; sem overflow. Passou Passou
Pesquisa acessível e páginas em desktop Gráfico com cinco valores acessíveis; páginas sem overflow a 1440px. Passou Passou
Logout, login e eliminação de conta pela interface Logout e login funcionam; eliminação volta ao formulário de conta. Passou Passou

Erros encontrados e correcções

Limites da verificação

O teste de navegador usa uma janela de 390 × 844 e outra de 1440 × 1000, num navegador Chromium/Brave real em modo headless. Não equivale a teste num celular físico. Etiquetas, estrutura, valores textuais e foco foram implementados; não houve auditoria com leitor de ecrã nem avaliação formal WCAG. Testes de API incluem pedidos directos entre duas contas, promoção temporária de administrador apenas por D1 e eliminação com verificação de ausência de dados órfãos. As contas temporárias são eliminadas; não são progresso de alunos reais. A avaliação de uma semana com colegas é futura.