Análise e Teste de Software

tinynew.gif Notas Finais Teste + Projeto

tinynew.gif 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

tinynew.gif 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

tinynew.gif

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

tinynew.gif

Enunciado da 3ª Fase:: 3ª Fase do Projeto

tinynew.gif

*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

tinynew.gif

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): tinynew.gif 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): tinynew.gif 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