Análise e Teste de Software
Notas Finais Teste + Projeto
Exame Recurso Exame de Recurso
1- Docentes
João Saraiva (
homepage)
Aula Teórica: 3a feira, 14:00-15:00 (sala DI 1.10)
Jorge Mendes (
homepage)
Aula Prática: 3a feira, 15:00-17:00 (sala DI 1.10)
2- Programa
-
Teste de Software
- teste "white-box" versus "black box"
- teste unitário, regressão, integração, sistema
- Teste Automático
- Geração de casos de teste
- Teste de propriededas
- Qualidade dos Testes
- Análise de cobertura (de código)
Critério de cobertura (instruções, blocos, caminhos e condições)
- Mutação de testes
- Teste baseado em modelos
Algoritmos para Apredizagem do Modelo (black box)
- Teste em aplicações móveis (android) e web
- Teste e Localização de Falhas em Software
-
Análise de Software
- Análise de Fluxo (Controlo/Dados) de Programas
- Complexidade Ciclomática
- Métricas de Software
- Maus Cheiros
- Refabricação de Software
- Análise de consumo de Energia: Técnicas e Ferramentas
3- Material
3.1- Slides:
SoftwareTesting.pdf
Geração de Casos de Teste e Teste de Propriedades
-->*Slides atualizados*
Fault Localization
Green Software (UPDATED)
Software Metrics
Code Smells
Energy (Red) Smells
ProgramRefactoring
3.2- Projecto em Grupo:
O enunciado do projecto de ATS está disponível em:
Projecto-Fase1.pdf
Projeto (sw)
UMer.zip
Ficheiro de input adicional:
log2.txt
Apesar de não gostarmos de adiar datas de entregas, caso na aula de dia 9 de Outubro a grande maioria dos grupos precisar de mais uns dias para concluir o trabalho nós seremos flexiveis.
Para terem acesso ao repositório SVN onde deverão desenvolver o vosso projeto, por favor enviem email com a composição do grupo ao Prof. Jorge Mendes.
Projeto: 2ª Fase: 2ª Fase do Projeto
Template QuickCheck (Haskell) para gerar o ficheiro de logs: ats1819-log-generator.zip
Avaliação da 1ª Fase::
avaliação
Avaliação da 2ª Fase::
grupo | avaliação estimada* (0–20) |
g001 | 14.0 |
g002 | 13.5 |
g003 | 13.0 |
g004 | 17.0 |
g005 | 17.5 |
g006 | 16.5 |
g007 | 15.5 |
g008 | 13.5 |
g009 | 15.0 |
g010 | 15.0 |
g011 | não entregou |
g012 | 9.0 |
* dependente da defesa final
Enunciado da 3ª Fase::
3ª Fase do Projeto
*A data de entrega do projeto é dia 2/1/2019*
4- Fichas Laboratoriais
Ficha 1: Ficha sobre ANTLR
Ficha 2: Ficha sobre Testes Unitários (software:
Poligono.zip)
Ficha 3: Ficha sobre Cobertura e Mutações de Testes
Ficha 4: Ficha sobre Teste de Propriedades
Ficha 5: Geração Aleatória de Casos de Teste
Ficha 6: Métricas de Software
Ficha 7: Refactoring de Programas (software:
Contactos.zip)
5- Software
Sistema ANTLR:
homepage
Sistema RAPL:
RAPL.tar.gz
6- Avaliação
A avaliação dos alunos é feita tendo em conta três componentes:
- Nota do Teste individual (NT)
- Nota do Projecto em grupo (NP)
- Avaliação Contínua (AC)
de acordo com a fórmula:
nota final = 0.45 * NT + 0.45 * NP + 0.1 * AC
Nas componentes NT e NP é obrigatório o aluno ter uma nota mínima de 8 valores.
7- Sumários
Aula 1: 18/09/2018
Sumário (Aula Teórica): Apresentação da disciplina: Objectivos, Programa, Metodologia de Ensino e Avaliação.
Apresentação do Projecto Prático.
Sumário (Aula Prática): Apresentação do Software a usar no projecto prático.
Breve apresentação do sistema ANTLR.
Aula 2: 25/09/2018
Sumário (Aula Teórica): Gramáticas Independentes do Contexto e Análise Sintática de Programas.
Breve descrição das técnicas de Parsing Top-Down e Bottom Up.
Sumário (Aula Prática): O Sistema ANTLR: Resolução de exercícios.
Apresentação do plugin do ANTLR para o IDE IntelliJ.
Aula 3: 02/10/2018
Sumário (Aula Teórica, Prática): Continuação da realização da 1ª tarefa do projeto prático.
Aula 4: 09/10/2018
Sumário (Aula Teórica): Introdução ao Teste de Software.
Testes Unitários. Critérios de cobertura de instruções, blocos, caminhos e condições.
Sumário (Aula Prática): Testes Unitários em Java: JUnit. Análise de cobertura de testes unitátios em IntelliJ.
O Sistema Cobertura.
Aula 5: 16/10/2018
Sumário (Aula Teórica): Mutação de Software e Testes. Definição de mutantes. Testes que matam a mutação.
Sumário (Aula Prática): Análise de cobertura de testes unitátios em IntelliJ.
O Sistema Cobertura. O Sistema PIT para mutação de software e execução de testes.
Aula 6: 23/10/2018
Sumário (Aula Teórica, Prática): Geração Automática de Casos de Teste: Introdução ao sistema EvoSuite e resolução de exercícios.
Aula 7: 30/10/2018
Sumário (Aula Teórica): Teste de Propriedades. Introdução ao sistema QuickCheck.
Sumário (Aula Prática): Resolução de exercícios em QuickCheck e jUnit-QuickCheck.
Aula 8: 06/11/2018
Sumário (Aula Teórica): Geração Automática de Casos de Teste. Geração de listas e árvores em QuickCheck.
Sumário (Aula Prática): Continuação da Resolução de exercícios em QuickCheck e jUnit-QuickCheck.
Aula 9: 13/11/2018
Sumário (Aula Teórica): Localização de Falhas no Código Fonte. Introdução ao Spectrum-based Fault Localization.
Sumário (Aula Prática): Aula de acompanhamento da realização da 2a tarefa do projeto em grupo.
Aula 10: 20/11/2018
Sumário (Aula Teórica): Aula sobre Análise de Performance: Runtime, Energy and memory consumption.
Sumário (Aula Prática): O Sistema RAPL para estimar o consumo de energia.
Aula 11: 27/11/2018
Sumário (Aula Teórica): Métricas de Software. Complexidade Ciclomárica.
Sumário (Aula Prática): Introdução à ferramenta
OpenClover? . Resolução da ficha de exercícios 6 sobre métricas de software.
Aula 12: 04/12/2018
Sumário (Aula Teórica): Introdução ao conceito de
Bad Smells. Source code Smells: catálogo.
Sumário (Aula Prática): Apresentação da ferramenta PMD. Análise de software para detectar code smells e más práticas de programação.
Aula 13: 11/12/2018
Sumário (Aula Teórica): Refactoring.
Sumário (Aula Prática): Apresentação das funcionalidades de refactoring do
IntelliJ? IDEA. Resolução da ficha de exercícios 7 sobre refactoring de programas.
Aula 14: 08/01/2019
*Sumário (Aula Teórica, Prática):*Apresentação dos projetos em grupo: grupos 2, 3, 4, 5, 8 e 10.
Aula 15: 15/01/2019
Sumário (Aula Teórica, Prática): Apresentação dos projetos em grupo: grupos 1,6,7,9 e 11.
Aula 16: 22/01/2019
Sumário (Aula Teórica, Prática):
Teste Individual
Aula Extra: 24/01/2019 (14:00-16:00)
Sumário (Aula Teórica, Prática): Visita à Primavera Sw.
Aula 17: 29/01/2019
Sumário (Aula Teórica, Prática):
Exame
8- Bibliografia
- Introduction to Software Testing
J. Offutt and P. Amman
Cambridge University Press, 2008
9- Alunos
Nome | Nr |
Alexandre Miguel Costa Dias | A78425 |
Alia Nabil Mahmoud | E9658 |
António Jorge Monteiro Chaves | A75870 |
Armando João Isaias Ferreira dos Santos | A77628 |
Axel da Silva Ferreira | A53064 |
Bruno Renato Fernandes Carvalho | A67847 |
Carla Andreia Malheiro Alves | E3359 |
Daniel Camelo Rodrigues | A75655 |
David Daniel Pinto Coelho Kramer | A77849 |
Diana Cristina Abreu Lopes | E10852 |
Diogo Filipe Lopes Soares | A74478 |
Emanuel Coelho | E9701 |
Flávio Joel Martins Peixoto | PG38414 |
Francisco Jose Moreira Oliveira | A78416 |
Fábio Rafael Pereira Araújo | A78508 |
Hugo Miguel Matalonga | PG37152 |
Joana Fernandes Cunha | E9321 |
José Miguel Silva Dias | A78494 |
João Luís Alves Barreiros Martins | A68646 |
João Manuel da Silva Gomes Fernandes | E9673 |
Ludgero da Silva Diogo | PG38417 |
Luis Miguel Pinheiro Guimarães | A77004 |
Manuel Gouveia Carneiro de Sousa | A78869 |
Paula Sofia da Cunha Pereira | A77672 |
Pedro Miguel Marques Freitas | E9123 |
Samuel José Dias Martins | PG37163 |
Sandra Teixeira Marques de Sousa | E9632 |
Telmo André Moreira Cardoso | PG38427 |
Tiago Daniel Amorim Alves | A78218 |
Vera Lúcia Vilela Trindade Silva | E9640 |