Análise e Teste de Software
AVISO (31/1): Final do torneio do
CodeDefender? Live:
foto.
AVISO (27/1): A final do torneio do
CodeDefender? é 6a feira, dia 31/1 às 15:00 (no Aquário do piso 2 do DI).
AVISO (23/1): O exame é dia 28/1 às 9am (
sala CP1-1.10).
- Nesse dia de tarde (14:00-16:00, sala de reuniões do DI) daremos um tutorial sobre Selenium (teste de applicações web), no contexto do programa doutoral MAPi: os alunos de
ATS estão convidados a assistir.
- Ás 16:00 tentaremos fazer a final do torneio
CodeDefender? (a confirmar com os finalistas).
- Até ao fim do dia 27/1 os alunos deverão enviar num ficheiro zip com o trabalho (todo o código) + relatório + slides para
ats.2019.2020@gmail.com
AVISO (21/1): A apresentação do trabalho e torneio é na sala
DI-1.09.
AVISO (17/1): O horário da apresentação dos projetos e do torneio pode ser consultado no link:
Apresentação + Torneio
- Quem não tiver grupo (ver secção Grupos) deve enviar email para os docentes (há dois grupos de reserva).
- Os grupo podem trocar de horário de apresentação/torneio desde que ambos grupos concordem.
- Na apresentação todos os membros do grupo devem estar presentes.
- Os grupos devem entregar o relatório impresso.
AVISO (15/1): As notas do teste estão disponíveis na secção da availação.
O teste pode ser consultado, 2a feira, dia 20/1, às 10am (no gabinete DI:2.09)
O torneio
CodeDefender? será realizado em simultâneo com as apresentações do projeto.
AVISO (13/1): A entrega e apresentação do projeto será realizada no 3a feira, dia 21 de Janeiro.
A apresentação consiste em duas partes: Na 1a parte os grupos devem preparar uma
pequena apresentação (10 minutos) onde devem descrever o que fizeram e os resultados atingidos. A 2a parte consiste numa
"tool demo" da aplicação desenvolvida, que deverá também ser
preparada com cuidado. No total a apresentação é de 30 mintos.
Em breve será definida o horário de apresentação de cada um dos grupos.
As notas do teste serão aqui disponibilizadas esta
4a feira.
Equipa Docente
João Saraiva: aula teóricas
José Nuno Macedo: aulas laboratoriais
Apontamentos/Slides
Combinadores de Parser:
Slides-Parsing.pdf
Sonarqube:
Slides-Sonarqube.pdf
Software Metrics:
SoftwareMetrcis.pdf
Source Code Smells:
CodeSmells.pdf
Program Refactoring:
ProgramRefactoring.pdf
Green Software Analysis:
GreenSoftware-Analysis.pdf
Green Software Smells:
GreenSoftware-Smells.pdf
Software Testing:
Testing-Coverage.pdf
Automated Test Generation -
QuickCheck? :
QuickCheck.pdf
Property-Based Testing - QuickCheck? : PropertyBasedTesting.pdf
Fault-Localization -
FaultLocalization.pdf
Sumários
Aula 0 (17/09): Apresentação da disciplina.
Aula 1 (01/10): (T + PL) Combinadores de Parsing.
"Embedded Domain Specific Languages". Gramáticas (BNF) como uma EDSL em Haskell: Combinadores de Parsing.
Aula 2 (08/10): (T + PL) Semântica Estática de Linguagens de Programação: Análise de Nomes.
Aula 3 (15/10): (T + PL) Software Metrics e Code Smells. O sistema
SonarQube.
Aula 4 (22/10):
T: Software Refactoring: Introdução e Apresentação do catálogo de Java. Software
"Technical Debt".
TP: Aplicação de Refactorings disponíveis no
IntelliJ? a software Java.
Aula 5 (29/10):
T: Análise de Consumo de Energia: Introdução a Green Software.
TP: Apresentação da framework RAPL para monitorizar o consumo de energia. Resolução de Exercícios.
Aula 6 (05/11):
T: Teste de Sofware: Introdução. Cobertura de Testes.
TP: Apresentação da framework de teste unitário JUnit (e HUnit). Resolução de Exercícios.
Aula 7 (12/11):
T: Geração Automática de Casos de Teste.
TP: Apresentação do sistema
QuickCheck? . Resolução de Exercícios.
Aula 8 (19/11):
T: Geração Automática de Casos de Teste: Continuação.
TP: Apresentação do sistema
EvoSuite? . Resolução de Exercícios.
Aula 9 (26/11):
T: Teste de Propriedades.
TP: Resolução de Exercícios em
QuickCheck?
Aula 10 (03/12):
T: Análise da Qualidade dos Testes via Mutações.
TP: O sistema de mutação de testes PIT. Resolução de exercícios.
Aula 11 (10/12):
T: Localização de Falhas. Correção Automática de Programas
TP: Teste de aplicações Web: A framework
Selenium.
"Gamefication" da tarefa de Teste de Software: Competição entre os grupos de projeto.
Aula 12 (17/12):
T + TP: Teste Individual.
Fichas de Exercícios
Ficha 1: Combinadores de Parsing
*Parsing.pdf*
Ficha 2: Static Semantics
*Semantics.pdf*
Ficha 3: Refactoring
Refactoring.pdf
Ficha 4: Unit Testing & Cobertura
*Testing.Cobertura.pdf*
Ficha 5: Geração de Casos de Teste em
QuickCheck? Geração de Valores.pdf
Ficha 6: Geração de Testes Unitários em
EvoSuite? EvoSuite.pdf
Ficha 7: Teste de Propriedades em
QuickCheck? property_testing.pdf
Ficha 8: Mutação de Testes
Mutation-Testing.pdf
Entrega da Geração Automática de Logs: A solução da geração automática de inputs para a aplicação
UmCarroJa? ! deve ser entregue enviando a solução para o seguinte email:
ats.2019.2020@gmail.com
O email deve ter o título:
Entrega - Logs da UmCarroJa? ! e incluir o nome dos elementos do grupo. Em anexo deve ser incluído um ficheiro zip com todo o código da solução. Deve ainda ser incluído um ficheiro
readme.txt onde se descreve como executar o software.
Data Limite: 04 de Dezembro (PT time)
Software
1- Combinadores de Parsing: Biblioteca desenvolvida na aula:
*Parser.hs*
Exemplo desenvolvido na aula: Lang.hs
2-Projeto UMCarroJa? (desenvolvido pelos alunos na dsciplina de POO):
enunciado.pdf
Soluções dos alunos:
p1.zip e
p2.zip
3-Projetos Java: Poligono (
Poligono.zip) e Contactos (
Contactos.zip)
4-Monitorização do Consumo de Energia: Rapl.tar.gz
Projeto em Grupo
O enúnciado do projeto a desenvolver em grupo está disponível
aqui (versão atualizada em 19/11)
Ficheiro de Log para execução em batch: logsPOO_carregamentoInicial.bak
Regime de Avaliação
A avaliação consiste em três componentes: prova individual (PI) (teste ou exame escritos), Projeto em Grupo (PG) (a resolver durante o semestre) e Avaliação Contínua (AC) (com base em problemas propostos nas aulas TP). As provas escritas são de consulta de material impresso, apenas.
A Nota final é calcula de acordo com a seguinte fórmula: 40% PI + 40% PG + 20% AC, com nota mínima de 8 valores em todas as componentes de avaliação.
O teste individual é de consulta: os alunos podem consultar todo o material (não eletrónico) que tiverem consigo.
Datas da Avaliação
Prova Individual::
17/12/2019 (última aula de 2019)
Exame::
28/01/2020 (a confirmar)
Entrega do Projeto em Grupo: 14/01/2020 (a confirmar)
Grupos
Grupo | Nome | Número |
1 | Bruno Martins | A80410 |
| Eduardo Barbosa | A83344 |
| Filipe Monteiro | A80229 |
| Miguel Brandão | A82349 |
| Márcio Sousa | A82400 |
2 | Luís Braga | a82088 |
| João Nunes | a82300 |
| Bárbara Cardoso | a80453 |
3 | Nelson Teixeira | PG41091 |
| José Boticas | PG41081 |
| Pedro Moura | PG41094 |
| Moisés Ramires | A80499 |
4 | Carlos Barbosa | a82324 |
| Jaime Leite | a80757 |
| José Carvalho | a80424 |
| Pedro Gonçalves | a82313 |
| Ricardo Martins | a78914 |
5 | José Duarte Santos Freitas | A63129 |
| Bruno Manuel Borlido Arieira | A70565 |
| Alexandre Nunes da Costa Morango Teixeira | A73547 |
| João Miguel Freitas Palmeira | A73864 |
6 | Henrique José Carvalho Faria | a82200 |
| Bruna Vieira Cruz | pg41905 |
7 | Mariana de Oliveira Pereira | a81146 |
| Carla Isabel Novais da Cruz | a80564 |
| Ana Filipa Vilela Pereira | a81712 |
8 | José Luís Costa | A82136 |
| Joel Gama | A82202 |
| Tiago Pinheiro | A82491 |
| Maria Inês Pinto | PG39292 |
9 | Ricardo Milhazes Veloso | A81919 |
| Tiago Dias de Sousa | A81922 |
| César Augusto da Costa Borges | A81644 |
10 | Tiago Pereira | a61032 |
| Bruno Silva | a71385 |
| Gonçalo Nogueira Costeira | a79799 |
11 | Francisco Saraiva | PG39287 |
| Paulo Gameiro | A72067 |
| Pedro Lima | A80328 |
| Sofia Teixeira | A80624 |
12 | Rita Pereira | PG41098 |
| Miguel Solans | PG41841 |
| Diogo Duarte | PG41843 |
| André Coutinho | PG39284 |
13 | Diogo Silva | A79021 |
| João Sousa | A77768 |
-- Main.Joao Saraiva - 17 Sep 2019