Programação com Objectos/Projecto de Programação com Objectos/Testes Automáticos 2018-2019

From Wiki**3

< Programação com Objectos‎ | Projecto de Programação com Objectos
AVISOS - Avaliação em Época Normal

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Programação com Objectos):

  • O material de apoio é de uso obrigatório e não pode ser alterado.
  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação (ver informação completa em Avaliação do Projecto):

  • Datas: 2018/10/19 12:00 (inicial); 2018/11/16 12:00 (intercalar); 2018/12/07 12:00 (final); 2018/12/10-2018/12/14 (teste prático).
  • Todas as entregas são cruciais para o bom desenvolvimento do projecto, sendo obrigatórias: a não realização de uma entrega implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao repositório.
  • Apenas se consideram para avaliação os projectos existentes no repositório oficial. Apenas se considera para avaliação o ramo 'main'.
  • Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório ou de outros materiais, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação.
Material de Uso Obrigatório
As bibliotecas po-uuilib e o conteúdo inicial do CVS são de uso obrigatório:
  • po-uuilib (classes de base) po-uuilib-201708311009.tar.bz2 (não pode ser alterada) - javadoc
  • sth-core (classes do "core") (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
  • sth-app (classes de interacção) (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio.
Uso Obrigatório: Repositório CVS
Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.

Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.

Durante a execução do projecto são realizados testes automáticos sobre o conteúdo do repositório, sendo publicados diariamente os resultados dos testes (apenas durante a Época Normal).

Pacotes de Testes para a Entrega Final

Os pacotes de testes para o projecto são os seguintes:

Descrição dos testes de avaliação
* A-01-01 - Login com funcionário
* A-01-02 - Login com professor
* A-01-03 - Login com aluno
* A-01-04 - Login com delegado

* A-02-01 - Login funcionário e vê funcionário
* A-02-02 - Login professor sem disciplinas e vê professor
* A-02-03 - Login professor só com uma disciplina e vê professor
* A-02-04 - Login professor com várias disciplina e vê professor disciplinas inseridas ordenadamente com mesmo curso
* A-02-12 - Login professor com várias disciplina e vê professor disciplinas inseridas desordenadamente com mesmo curso 
* A-02-13 - Login professor com várias disciplina e vê professor disciplinas inseridas desordenadamente com curso  diferente
* A-02-05 - Login professor com várias disciplina (e há várias disciplinas com o mesmo nome) e vê professor
* A-02-06 - Login aluno com uma disciplina e vê aluno 
* A-02-07 - Login aluno com várias disciplinas ordenadas e vê aluno  
* A-02-08 - Login aluno com várias disciplinas desordenadas e vê aluno
* A-02-09 - Login delegado com uma disciplina e vê delegado
* A-02-10 - Login delegado com várias disciplinas e vê delegado
* A-02-11 - Login de pessoa que não existe

* A-03-01 - Procura pessoa com string que não existe 
* A-03-02 - Procura pessoa com string que faz match com uma pessoa existente 
* A-03-03 - Procura pessoa com string que faz match com várias pessoas (e lista de pessoas por id tb ordenada por nome)
* A-03-04 - Procura pessoa com string que faz match com várias pessoas (e lista de pessoas por id não ordenada por nome)

* A-04-01 - Altera o número de telefone de um funcionário 
* A-04-02 - Altera o número de telefone de um professor 

* A-05-01 - Mostra apenas uma pessoa
* A-05-02 - Mostar vários funcionários inseridos pela ordem do id
* A-05-03 - Mostar vários funcionários inseridos com uma ordem diferente do id
* A-05-04 - Mostra vários tipos de utilizadores

* A-06-01 - Persistência de Pessoas - guardar  
* A-06-02 - Persistência de Pessoas - abrir 
* A-06-03 - Persistência de Pessoas - guardar 2x
* A-06-04 - Persistência - abrir com uma pessoa que não existe no estado persistente
* A-06-05 - Persistência de Pessoas, cursos e disciplinas - guardar  
* A-06-06 - Persistência de Pessoas, cursos e disciplinas - abrir e criar projecto e guardar

* A-07-01 - Criar projecto de disciplina não leccionada mas existente
* A-07-02 - Criar projecto de disciplina não leccionada e não existente  
* A-07-03 - Criar projecto de disciplina lecionada e guardar (proj3)
* A-07-04 - Criar projecto com mesmo nome de disciplina lecionada  
* A-07-05 - Criar projecto com mesmo nome em diferentes disciplinas lecionada  
* A-07-06 - Criar projecto 2 projectos em duas disciplinas distintas com o mesmo nome
* A-07-07 - Abrir proj3 e Criar o mesmo projecto na disciplina mas por um docente diferente
* A-07-08

* A-08-01 - Fechar projecto existente e aberto
* A-08-02 - Fechar projecto não existente
* A-08-03 - Fechar projecto existente e já fechado

* A-09-01 - Ver alunos de disciplina não existente e existente mas não leccionada
* A-09-02 - Ver alunos de disciplina sem alunos
* A-09-03 - Ver alunos de disciplina com um aluno
* A-09-04 - Ver alunos de disciplina com vários alunos e inseridos por ordem
* A-09-05 - Ver alunos de disciplina com vários alunos e inseridos fora de ordem
* A-09-06

A-10-01 - Cria 2 projectos na disciplina D1 e 1 na D2; grava em e1.obj; Professor vê projecto sem submissões D1-P1 e D1-P2, D2-P3 
A-10-02 - Vê submissões de projecto não-existente
A-10-03 - Aluno submete em projecto de disciplina em que não está inscrito 
A-10-04 - Aluno submete em projecto não existente de disciplina em que está inscrito 
A-10-05 - Aluno ai1 submete em projecto P1 de disciplina D1 em que está inscrito (grava em e1.obj)
A-10-06 - Docente vê projecto com 1 submissão
A-10-07 - Aluno submete no mesmo projecto duas vezes (P2); gravar
A-10-08 - Docente vê projecto P2 com 1 submissão  
A-10-09 - Delegado submete em projecto a que não está inscrito
A-10-10 - Aluno ai2 submete no projecto P1; gravar 
A-10-11 - Docente vê projecto P1 com 2 submissões
A-10-12 - Aluno di1 fora de ordem submete no projecto P1; gravar
A-10-13 - Delegado cria inquérito para projecto existente e em disciplina inscrita (P1); gravar
A-10-14 - Professor vê inquérito criado 
A-10-15 - Professor vê inquérito criado
A-10-16 - Professor vê projecto P1 com 3 submissões, fecha P1; gravar
A-10-17 - Delegado inscrito faz login e vê uma notificação; gravar
A-10-18 - Delegado volta a fazer login e já não vê notificação
A-10-19 - Delegado não inscrito faz login e vê uma notificação
A-10-20 - Delegado de outro curso faz login e não vê notificação
A-10-21 - Professor faz login e vê uma notificação; gravar 
A-10-22 - Professor volta a fazer login e já não vê notificação
A-10-23 - Aluno ai1 volta a fazer login e vê notificação; gravar
A-10-24 - Aluno di1 submete em projecto fechado (P1); gravar
A-10-25 - Professor vê submissões de projecto fechado
A-10-26 - Aluno vê inquérito aberto
A-10-27 - Professor vê inquérito aberto
A-10-29 - Delegado vê inquérito não existente de projecto existente e não existente
A-10-30 - Aluno (di2) que não fez submissão vê inquérito criado
A-10-31 - Criar inquérito em disciplina não existente e em disciplina sem projecto
A-10-32 - Criar inquérito em disciplina com um projecto mas com projecto não existente
A-10-33 - Criar inquérito em disciplina com um projecto e existente e delegado não inscrito na disciplina (guardar A2)
A-10-34 - Criar um segundo inquérito para o mesmo projecto
A-10-35 - Criar vários projectos e fechar P4 (D2); guardar
          D1-P1 (3 submissões, fechado e com inquérito), P2, P4  (P1 está aberto, os outros estão criados)
          D2-P3, P4, P5 (P4 fechado)
A-10-36 - Criar inquérito em disciplina com um projecto fechado (D2-P3)
A-10-37 - Cancelar inquérito criado
A-10-38 - Delegado cancelar inquérito aberto e sem respostas
A-10-39 - Cancelar inquérito aberto e com uma resposta (grava com uma resposta)
A-10-40 - Cancelar inquérito fechado 
A-10-41 - Cancelar inquérito finalizado
A-10-42 - Cancelar inquérito fechado por delegado não inscrito 
A-10-43 - Cancelar inquérito criado por delegado não inscrito 
A-10-44 - Delegado não vê inquérito de disciplina não inscrita como aluno
A-10-45 - Professor vê inquérito de disciplina e projecto sem inquérito. Criar projecto P7 em D1 sem inquérito; guardar
A-10-46 - Aluno vê inquérito de disciplina e projecto sem inquérito
A-10-47 - Delegado vê inquéritos de disciplina só com um inquérito criado e cria inquérito em P2 e P4 de D1; guardar
A-10-48 - Professor fecha projectos P2 e P4; guarda; Vê inquérito criado e fechado
A-10-49 - Delegado entra e vê duas notificações; guardar
A-10-50 - Delegado vê inquéritos de disciplina sem inquéritos
A-10-51 - Delegado não inscrito na disciplina entra e vê duas notificações; guardar
A-10-52 - Delegado fecha inquérito fechado e vê vários inquéritos
A-10-53 - Delegado fecha inquérito criado
A-10-54 - Delegado fecha inquérito finalizado
A-10-55 - Delegado não inscrito finaliza Inquérito fechado
A-10-56 - Delegado não inscrito finaliza inquérito Aberto
A-10-57 - Delegado não inscrito finaliza inquérito criado
A-10-58 - Delegado vê inquéritos de disciplina sem projectos
A-10-59 - Delegado abre projecto fechado
A-10-60 - Delegado abre projecto criado 
A-10-61 - Delegado abre projecto finalizado 
A-10-62 - Delegado vê inquérito de disciplina não existente e projeco não existente
A-10-63 - Delegado vê inquérito finalizado só com uma resposta; gravar
A-10-64 - Professor vê notificação de finalização; gravar
A-10-65 - Professor vê inquérito só com uma resposta e cria projecto P0 e P5 e grava
A-10-66 - Aluno vê notificação de finalização e submete em P5; gravar
A-10-67 - Delegado vê notificação de finalização e cria inquérito em P0 e P5 e submete em P5; gravar
A-10-68 - Aluno submete resposta a inquérito por abrir
A-10-69 - Ver inquéritos ordenados inseridos desordenadamente e di1 submete projecto P5
A-10-70 - Aluno sem submissão responde a inquérito aberto e submete projecto a P5; gravar
A-10-71 - Professor vê submissões em P5 e fecha P5; gravar
A-10-72 - Delegado sem submissão responde a inquérito aberto; gravar
A-10-73 - Delegado di1 submete resposta a inquérito fechado (D1-P5) 
A-10-74 - Delegado e aluno vêm inquérito finalizado com 0 respostas
A-10-75 - Delegado di1 submete resposta a inquérito finalizado (D1-P5) 
A-10-76 - Delegado não inscrito recebe notificação de inquérito finalizado
A-10-77 - Delegado, finaliza P4 (vazio), responde uma vez a D1-P5; grava e responde várias vezes a D1-P5 e vê resultado
A-10-78 - Professor vê inquérito com 0 respostas e submissões de D1-P5
A-10-79 - Professor vê projecto com várias submissões
A-10-80 - Aluno ai2 vê inquérito só com uma resposta e responde a novo inquérito D1-P5  e submete em D1-P0; gravar 
A-10-81 - Aluno ai1 responde a novo inquérito D1-P5  e submete em D1-P0; gravar
A-10-82 - Delegado di1 submete em D1-P0, finaliza D1-P5 e vê inquérito como delegado; gravar 
A-10-83 - Aluno ai1 vê inquérito D1-P5; gravar
A-10-84 - Professor vê inquérito D1-P5; gravar
A-10-85 - Professor vê submissões de D1-P0, fecha P0; gravar
A-10-86 - Delegado cria inquérito para projecto fechado
A-10-87 - Abrir inquérito por abrir
A-10-88 - Abrir inquérito fechado, abrir inquérito finalizado; gravar
A-10-89 - Delegado vê que recebe notificações

Resultados dos Testes

Os resultados da execução dos vários testes estão disponíveis nos seguintes locais:

Pacotes de Testes para a Entrega Intermédia

Os pacotes de testes para o projecto são os seguintes:

Descrição dos testes de avaliação
* A-01-01 - Login com funcionário
* A-01-02 - Login com professor
* A-01-03 - Login com aluno
* A-01-04 - Login com delegado

* A-02-01 - Login funcionário e vê funcionário
* A-02-02 - Login professor sem disciplinas e vê professor
* A-02-03 - Login professor só com uma disciplina e vê professor
* A-02-04 - Login professor com várias disciplina e vê professor disciplinas inseridas ordenadamente com mesmo curso
* A-02-12 - Login professor com várias disciplina e vê professor disciplinas inseridas desordenadamente com mesmo curso 
* A-02-13 - Login professor com várias disciplina e vê professor disciplinas inseridas desordenadamente com curso  diferente
* A-02-05 - Login professor com várias disciplina (e há várias disciplinas com o mesmo nome) e vê professor
* A-02-06 - Login aluno com uma disciplina e vê aluno 
* A-02-07 - Login aluno com várias disciplinas ordenadas e vê aluno  
* A-02-08 - Login aluno com várias disciplinas desordenadas e vê aluno
* A-02-09 - Login delegado com uma disciplina e vê delegado
* A-02-10 - Login delegado com várias disciplinas e vê delegado
* A-02-11 - Login de pessoa que não existe

* A-03-01 - Procura pessoa com string que não existe 
* A-03-02 - Procura pessoa com string que faz match com uma pessoa existente 
* A-03-03 - Procura pessoa com string que faz match com várias pessoas (e lista de pessoas por id tb ordenada por nome)
* A-03-04 - Procura pessoa com string que faz match com várias pessoas (e lista de pessoas por id não ordenada por nome)

* A-04-01 - Altera o número de telefone de um funcionário 
* A-04-02 - Altera o número de telefone de um professor 

* A-05-01 - Mostra apenas uma pessoa
* A-05-02 - Mostar vários funcionários inseridos pela ordem do id
* A-05-03 - Mostar vários funcionários inseridos com uma ordem diferente do id
* A-05-04 - Mostra vários tipos de utilizadores

* A-06-01 - Persistência de Pessoas - guardar  
* A-06-02 - Persistência de Pessoas - abrir 
* A-06-03 - Persistência de Pessoas - guardar 2x
* A-06-04 - Persistência - abrir com uma pessoa que não existe no estado persistente
* A-06-05 - Persistência de Pessoas, cursos e disciplinas - guardar  
* A-06-06 - Persistência de Pessoas, cursos e disciplinas - abrir e criar projecto e guardar

* A-07-01 - Criar projecto de disciplina não leccionada mas existente
* A-07-02 - Criar projecto de disciplina não leccionada e não existente  
* A-07-03 - Criar projecto de disciplina lecionada e guardar (proj3)
* A-07-04 - Criar projecto com mesmo nome de disciplina lecionada  
* A-07-05 - Criar projecto com mesmo nome em diferentes disciplinas lecionada  
* A-07-06 - Criar projecto 2 projectos em duas disciplinas distintas com o mesmo nome
* A-07-07 - Abrir proj3 e Criar o mesmo projecto na disciplina mas por um docente diferente
* A-07-08

* A-08-01 - Fechar projecto existente e aberto
* A-08-02 - Fechar projecto não existente
* A-08-03 - Fechar projecto existente e já fechado

* A-09-01 - Ver alunos de disciplina não existente e existente mas não leccionada
* A-09-02 - Ver alunos de disciplina sem alunos
* A-09-03 - Ver alunos de disciplina com um aluno
* A-09-04 - Ver alunos de disciplina com vários alunos e inseridos por ordem
* A-09-05 - Ver alunos de disciplina com vários alunos e inseridos fora de ordem
* A-09-06

Resultados dos testes

Os resultados da execução dos vários testes estão disponíveis nos seguintes locais: