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

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: 2019/10/18 12:00 (inicial); 2019/11/18 12:00 (intercalar); 2019/12/09 12:00 (final); 2019/12/16-2019/12/20 (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
  • m19-core (classes do "core") (via CVS) (deve ser completada -- os nomes das classes fornecidas não podem ser alterados)
  • m19-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).

Ficheiros removidos do módulo m19-core (durante os testes) e substituídos por versões canónicas
m19-core/
├── Makefile
└── src
    └── m19
        └── exceptions
            ├── BadEntrySpecificationException.java
            ├── FailedToOpenFileException.java
            ├── ImportFileException.java
            └── MissingFileAssociationException.java
Ficheiros removidos do módulo m19-app (durante os testes) e substituídos por versões canónicas
m19-app/
├── Makefile
└── src
    └── m19
        └── app
            ├── App.java
            ├── exceptions
            │   ├── FileOpenFailedException.java
            │   ├── Message.java
            │   ├── NoSuchUserException.java
            │   ├── NoSuchWorkException.java
            │   ├── RuleFailedException.java
            │   ├── UserIsActiveException.java
            │   ├── UserRegistrationFailedException.java
            │   └── WorkNotBorrowedByUserException.java
            ├── main
            │   ├── DoOpenRequestsMenu.java
            │   ├── DoOpenUsersMenu.java
            │   ├── DoOpenWorksMenu.java
            │   ├── Label.java
            │   ├── Menu.java
            │   └── Message.java
            ├── requests
            │   ├── Label.java
            │   ├── Menu.java
            │   └── Message.java
            ├── users
            │   ├── Label.java
            │   ├── Menu.java
            │   └── Message.java
            └── works
                ├── Label.java
                ├── Menu.java
                └── Message.java

Pacotes de Testes para a Entrega Final

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

Resultados dos Testes

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

Descrição dos testes da entrega final (diários)
A-01-01-M-ok - Abrir aplicação ver menu inicial
A-01-02-M-ok - Abrir aplicação ver restantes menus
A-01-03-M-ok - Abrir aplicação com livros em import e ver as obras
A-01-04-M-ok - Abrir aplicação com DVD em import e ver as obras
A-01-05-M-ok - Abrir aplicação com um utilizador em import e ver os utilizadors

A-02-01-M-ok - Ver obras sem nenhuma obra
A-02-02-M-ok - Ver obras com vários livros
A-02-03-M-ok - Ver obras com vários DVD's
A-02-04-M-ok - Ver obras só com várias obras livros e DVD´s

A-03-03-M-ok - Efectuar pesquisa com substring com uma obra

A-04-01-M-ok - Mostrar obra não existente sem obras
A-04-02-M-ok - Mostrar obra não existente com obras
A-04-03-M-ok - Mostar livro existente com várias obras
A-04-04-M-ok - Mostar DVD existente com várias obras

A-05-01-M-ok - Ver utilizadors sem nenhum utilizador
A-05-02-M-ok - Abrir aplicação com utilizadors em import e ver os utilizadors
A-05-03-M-ok - Abrir aplicação com utilizadors desordenados em import e ver as utilizadors
A-05-04-M-ok - Abrir aplicação com utilizadors desordenados e nomes repetidos em import e ver as utilizadors

A-06-01-M-ok - Mostrar data inicial
A-06-02-M-ok - Avançar data válida e Mostrar data
A-06-03-M-ok - Avançar data inválida e Mostrar data
A-06-04-M-ok - Avançar data duas vezes e Mostrar data

A-07-01-M-ok - Serializar obras e guarda em works
A-07-02-M-ok - Desserializar obras e vê works
A-07-03-M-ok - Serializar utilizador  e guarda em utilizador
A-07-04-M-ok - Desserializar utilizadors vê utilizador
A-07-05-M-ok - Desserializar utilizadors, cria novo utilizador, vê novo utilizador
A-07-06-M-ok - Desserializar utilizadors, cria novo utilizador, vê novo utilizador e guarda em utilizador
A-07-07-M-ok - Abre ficheiro não existente
A-07-08-M-ok - Serializar requisição  e guarda em requests
A-07-09-M-ok - Desserializar utilizadors, vê requisições, cria nova e vê
A-07-10-M-ok - Serializar notiificação  e guarda em notifications
A-07-11-M-ok - Deserializar notiificação e vê

A-08-01-M-ok - Registrar utilizador sem estado inicial
A-08-02-M-ok - Registrar utilizador com estado inicial via import
A-08-03-M-ok - Registrar utilizador em diferentes posições
A-08-04-M-ok - Registrar utilizador com nome inválido
A-08-05-M-ok - Registrar utilizador com email inválido

A-09-01-M-ok - Ver utilizador sem notificações /Ver utilizador não existente
A-09-02-M-ok - Ver utilizador com uma  notificação
A-09-04-M-ok - Ver utilizador com várias notificações

A-11-01-M-ok - Requisitar obra não existente
A-11-02-M-ok - Requisitar obra por utilizador não existente
A-11-03-M-ok - Requisitar obra existente (7) com 1 exemplar por utilizador normal e ver prazo de entrega
A-11-04-M-ok - Requisitar obra existente com 5 exemplares (6) e com 3 exemplares (1) por utilizador normal e ver prazo de entrega
A-11-05-M-ok - Requisitar obra existente com mais do que 5 (2) exemplar por utilizador normal e ver prazo de entrega
A-11-06-M-ok - fazer normal (de 0) para cumpridor (5 entregas), guardar cumpridor
A-11-07-M-ok - fazer normal para faltoso, guardar faltoso  (três atraso de uma vez)

A-12-01-M-ok - Devolver obra não requisitada/mão existente pelo utilizador
A-12-03-M-ok - Requisitar obra, entregar no mesmo dia
A-12-04-M-ok - Requisitar obra entregar no dia seguinte por utilizador normal
A-12-05-M-ok - Requisitar obra entregar no último dia do prazo por utilizador normal/faltoso

A-13-01-M-ok - faltoso/normal, 1 obra atrasada entrega e não paga multa. Paga depois
A-13-02-M-ok - normal, 2 obra atrasada entrega e não paga multa. Paga depois
A-13-05-M-ok - Paga utilizador sem multa/não existente
Descrição dos testes da entrega final (avaliação)
A-01-01-M-ok - Abrir aplicação ver menu inicial
A-01-02-M-ok - Abrir aplicação ver restantes menus
A-01-03-M-ok - Abrir aplicação com Livros em import e ver as obras   
A-01-04-M-ok - Abrir aplicação com DVD em import e ver as obras   
A-01-05-M-ok - Abrir aplicação com um user em import e ver os users

A-02-01-M-ok - Ver obras sem nenhuma obra
A-02-02-M-ok - Ver obras com vários Livros
A-02-03-M-ok - Ver obras com vários DVDs
A-02-04-M-ok - Ver obras só com várias obras Livros e DVDs

A-03-01-M-ok - Efectuar pesquisa sem nenhuma obra
A-03-02-M-ok - Efectuar pesquisa com string igual com uma obra
A-03-03-M-ok - Efectuar pesquisa com substring com uma obra
A-03-04-M-ok - Efectuar pesquisa com vários resultado por realizador DVD com várias obras
A-03-05-M-ok - Efectuar pesquisa com vários resultado por título DVD com várias obras
A-03-06-M-ok - Efectuar pesquisa com vários resultados Livro por autor/título e vários livros/DVD por autor
A-03-07-M-ok - Efectuar pesquisa com dois resultados Livro/DVD que verificam ambos os campos
A-03-08-M-ok - Efectuar pesquisa com um resultado Livro por autor/título e termo de pesquisa em maiúsculas/minúsculas com várias obras
A-03-09-M-ok - Efectuar pesquisa com um resultado DVD por realizador/título e termo de pesquisa em maiúsculas/minúsculas com várias obras

A-04-01-M-ok - Mostrar obra não existente sem obras
A-04-02-M-ok - Mostrar obra não existente com obras
A-04-03-M-ok - Mostar livro existente com várias obras
A-04-04-M-ok - Mostar DVD existente com várias obras

A-05-01-M-ok - Ver utentes sem nenhum utente
A-05-02-M-ok - Abrir aplicação com utentes em import e ver os utentes
A-05-03-M-ok - Abrir aplicação com users desordenados em import e ver as users
A-05-04-M-ok - Abrir aplicação com users desordenados e nomes repetidos em import e ver as users

A-06-01-M-ok - Mostrar data inicial
A-06-02-M-ok - Avançar data válida e Mostrar data
A-06-03-M-ok - Avançar data inválida e Mostrar data
A-06-04-M-ok - Avançar data duas vezes e Mostrar data

A-07-01-M-ok - Serializar obras e guarda em works
A-07-02-M-ok - Desserializar obras e vê works
A-07-03-M-ok - Serializar utilizador  e guarda em utilizador
A-07-04-M-ok - Desserializar utilizadors vê utilizador
A-07-05-M-ok - Desserializar utilizadors, cria novo utilizador, vê novo utilizador
A-07-06-M-ok - Desserializar utilizadors, cria novo utilizador, vê novo utilizador e guarda em utilizador
A-07-07-M-ok - Abre ficheiro não existente
A-07-08-M-ok - Serializar requisição  e guarda em requests
A-07-09-M-ok - Desserializar utilizadors, vê requisições, cria nova e vê
A-07-10-M-ok - Serializar notiificação  e guarda em notifications
A-07-11-M-ok - Deserializar notiificação e vê

A-08-01-M-ok - Registrar utilizador sem estado inicial
A-08-02-M-ok - Registrar utilizador com estado inicial via import
A-08-03-M-ok - Registrar utilizador em diferentes posições
A-08-04-M-ok - Registrar utilizador com nome inválido
A-08-05-M-ok - Registrar utilizador com email inválido

A-09-01-M-ok - Ver utente sem notificações /Ver utente não existente
A-09-02-M-ok - Ver utente com uma notificação  
A-09-03-M-ok - Ver utente sem notificação por recusar
A-09-04-M-ok - Ver utente com várias notificações
A-09-05-M-ok - Ver utente com uma notificação ver que é apagada
A-09-06-M-ok - Ver utente com uma subscrição e ver que subscrição é cancelada
A-09-07-M-ok - Ver várias notificação para vários utentes

A-11-01-M-ok - Requisitar obra não existente
A-11-02-M-ok - Requisitar obra por user não existente
A-11-03-M-ok - Requisitar obra existente (7) com 1 exemplar por utente normal e ver prazo de entrega
A-11-04-M-ok - Requisitar obra existente com 5 exemplares (6) e com 3 exemplares (1) por utente normal e ver prazo de entrega
A-11-05-M-ok - Requisitar obra existente com mais do que 5 (2) exemplar por utente normal e ver prazo de entrega
A-11-06-M-ok - fazer normal (de 0) para cumpridor (5 entregas), guardar cumpridor
A-11-07-M-ok - fazer normal para faltoso, guardar faltoso  (três atraso de uma vez)
A-11-08-M-ok - fazer faltoso para normal
A-11-09-M-ok - fazer normal para faltoso (um atraso de cada vez)   
A-11-10-M-ok - Levar faltoso a normal e depois a cumpridor
A-11-11-M-ok - Requisitar obra existente (7) com 1 exemplar e com mais do que 5 (2) exemplar por utente cumpridor e ver prazo de entrega
A-11-12-M-ok - Requisitar obra existente com 5 exemplares (6) e com 3 exemplares (1) por utente cumpridor e ver prazo de entrega   
A-11-13-M-ok - Requisitar obra existente (7) com 1 exemplar e com mais do que 5 (2) exemplar por utente faltoso e ver prazo de entrega
A-11-14-M-ok - Requisitar obra existente com 5 exemplares (6) e com 3 exemplares (1) por utente faltoso e ver prazo de entrega
A-11-15-M-ok - Requisitar obra existente por utente normal suspenso  sem entegar
A-11-16-M-ok - Requisitar obra existente por utente normal suspenso  entregar mas não pagar
A-11-17-M-ok - Requisitar obra existente por utente cumpridor suspenso
A-11-18-M-ok - Requisitar obra existente por utente faltoso suspenso
A-11-19-M-ok - Carregar cumpridor requisitar uma obra, fica atrasada e fica suspenso
A-11-20-M-ok - Carregar cumpridor requisitar três obras, uma fica atrasada e fica suspenso
A-11-21-M-ok - Requisitar uma obra por normal/faltoso, fica atrasada e fica suspenso
A-11-22-M-ok - Requisitar duas obras por normal, ficam atrasadas e fica suspenso
A-11-23-M-ok - Carregar cumpridor requisitar uma obra e levar a normal não suspenso
A-11-24-M-ok - Carregar cumpridor requisitar duas obras, ficar atrasado e levar a normal não suspenso e depois faltoso
A-11-25-M-ok - Carregar cumpridor requisitar três obras, ficar atrasado e levar a normal não suspenso e depois faltoso
A-11-26-M-ok - Carregar cumpridor requisitar três obra, fica atrasado para uma e entrega, entrega duas no prazo e entrega três novas no prazo e fica cumpridor
A-11-27-M-ok - Cumpridor, requisitar 4, entregar três atrasadas, faltoso e tentar requisitar obra
A-11-28-M-ok - Requisitar obra existente utente activo cumpridor sem vagas
A-11-29-M-ok - Requisitar obra existente utente activo faltoso e normal sem vagas
A-11-30-M-ok - Requisitar obra existente mas só com um exemplar por utente activo
A-11-31-M-ok - Requisitar obra existente mas sem exemplares disponíveis por utente activo
A-11-32-M-ok - Requisitar 4 exemplares de obra só com três existente
A-11-33-M-ok - Requisitar obra existente duas vezes pelo mesmo utente
A-11-34-M-ok - Requisitar obra existente de referência por utilizador normal e faltoso
A-11-35-M-ok - Requisitar obra existente de referência por utilizador cumpridor
A-11-36-M-ok - Requisitar obra existente com preço superior a 25 por utente cumpridor
A-11-37-M-ok - Requisitar obra existente com preço superior a 25 por utente normal e faltoso
A-11-38-M-ok - Requisitar obra, não consegue e verificar que utente não fica com a obra
A-11-39-M-ok - Verifica ordem de regras de requisição (2x e suspenso mais prioritária que restantes)
A-11-40-M-ok - Verifica ordem de regras de requisição (sem obras, cheio, referência e preço  mais prioritária que restantes)

A-12-01-M-ok - Devolver obra não requisitada/mão existente pelo utente
A-12-02-M-ok - Devolver obra requisitada por outro utente por utente existente/não existente
A-12-03-M-ok - Requisitar obra, entregar no mesmo dia
A-12-04-M-ok - Requisitar obra entregar no dia seguinte por utente normal
A-12-05-M-ok - Requisitar obra entregar no último dia do prazo por utente normal/faltoso
A-12-06-M-ok - Requisitar obra entregar no último dia do prazo por utente cumpridor
A-12-07-M-ok - Requisitar obra entregar no dia seguinte do prazo por utente cumpridor
A-12-08-M-ok - Requisitar obra entregar no dia seguinte do prazo por utente faltoso/normal
A-12-09-M-ok - Requisitar obra entregar três dias depois do prazo por utente cumpridor
A-12-10-M-ok - Requisitar obra entregar três dias depois do prazo por utente normal e faltoso
A-12-11-M-ok - Requisitar obra, utente normal fica cheio, devolver obra e requisitar de seguida
A-12-12-M-ok - faltoso, devolver 5 obras, 2 no prazo, uma atrasado e duas no prazo, continua faltoso
A-12-13-M-ok - normal, devolver 5 obras, 2 fora do prazo, uma no prazo e duas atrasdas, continua normal
A-12-14-M-ok - normal, devolver 7 obras, 3 dentro do prazo, uma fora do prazo e três no prazo, continua normal
A-12-15-M-ok - cumpridor, Devolver 5 obras  obra dentro do prazo e continua cumpridor
A-12-16-M-ok - normal com 3 entregas no prazo, requisita mais 3 e fica com uma atrasada, devolve duas no prazo e passa a cumpridor e devolve atrasada passa a normal.

A-13-01-M-ok - faltoso/normal, 1 obra atrasada entrega e não paga multa. Paga depois
A-13-02-M-ok - normal, 2 obra atrasada entrega e não paga multa. Paga depois
A-13-03-M-ok - normal, 2 obra atrasada entrega 1 e não paga multa, entrega 2ª e paga.
A-13-04-M-ok - cumpridor 2 obra atrasada entrega e não paga multa. Paga depois
A-13-05-M-ok - Paga utente sem multa/não existente
A-13-06-M-ok - Paga utente suspenso e com multa a 0
A-13-07-M-ok - Paga utente suspenso com multa e com obras em atraso
A-13-08-M-ok - Obra atrasada, alterar data e ver que multa aumenta
A-13-09-M-ok - Obra atrasada, entrega obra,  alterar data e ver que multa mantém

Pacotes de Testes para a Entrega Intermédia

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

Resultados dos testes

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

Descrição dos testes da entrega intermédia (diários)
A-01-01-M-ok - Abrir aplicação ver menu inicial
A-01-02-M-ok - Abrir aplicação ver restantes menus
A-01-03-M-ok - Abrir aplicação com Livros em import e ver as obras   
A-01-05-M-ok - Abrir aplicação com um user em import e ver os users
A-02-01-M-ok - Ver obras sem nenhuma obra 
A-02-02-M-ok - Ver obras com vários Livros  
A-02-03-M-ok - Ver obras com vários DVDs  
A-04-03-M-ok - Mostar DVD existente com várias obras  
A-04-04-M-ok - Mostar livro existente com várias obras  
A-05-01-M-ok - Ver utentes sem nenhum utente
A-05-02-M-ok - Abrir aplicação com utentes em import e ver os utentes
A-06-01-M-ok - Mostrar data inicial 
A-06-02-M-ok - Avançar data válida e mostrar data
A-07-01-M-ok - Serializar obras e guarda em works
A-07-02-M-ok - Desserializar Obras e vê works
A-07-07-M-ok - Abre ficheiro não existente
A-08-01-M-ok - Registrar utente sem estado inicial 
A-08-02-M-ok - Registrar utente com estado inicial via import
A-08-03-M-ok - Registrar utente em diferentes posições
Descrição dos testes da entrega intermédia (avaliação)
A-01-01-M-ok - Abrir aplicação ver menu inicial
A-01-02-M-ok - Abrir aplicação ver restantes menus
A-01-03-M-ok - Abrir aplicação com Livros em import e ver as obras   
A-01-04-M-ok - Abrir aplicação com DVD em import e ver as obras   
A-01-05-M-ok - Abrir aplicação com um user em import e ver os users
A-02-01-M-ok - Ver obras sem nenhuma obra 
A-02-02-M-ok - Ver obras com vários Livros  
A-02-03-M-ok - Ver obras com vários DVDs  
A-02-04-M-ok - Ver obras só com várias obras Livros e DVDs
A-04-01-M-ok - Mostrar obra não existente sem obras 
A-04-02-M-ok - Mostrar obra não existente com obras 
A-04-03-M-ok - Mostar DVD existente com várias obras  
A-04-04-M-ok - Mostar livro existente com várias obras  
A-05-01-M-ok - Ver utentes sem nenhum utente
A-05-02-M-ok - Abrir aplicação com utentes em import e ver os utentes
A-06-01-M-ok - Mostrar data inicial 
A-06-02-M-ok - Avançar data válida e mostrar data
A-06-03-M-ok - Avançar data inválida e mostrar data 
A-06-04-M-ok - Avançar data duas vezes e mostrar data 
A-07-01-M-ok - Serializar obras e guarda em works
A-07-02-M-ok - Desserializar Obras e vê works
A-07-03-M-ok - Serializar user e guarda em user
A-07-04-M-ok - Desserializar users vê user
A-07-05-M-ok - Desserializar users, cria novo utilizador, vê novo utente
A-07-06-M-ok - Desserializar users, cria novo utilizador, vê novo utente e guarda em user
A-07-07-M-ok - Abre ficheiro não existente
A-08-01-M-ok - Registrar utente sem estado inicial 
A-08-02-M-ok - Registrar utente com estado inicial via import
A-08-03-M-ok - Registrar utente em diferentes posições
A-08-04-M-ok - Registrar utente com nome inválido
A-08-05-M-ok - Registrar utente com email inválido