Métodos Formais em Engenharia de Software

Mestrado Integrado em Engenharia Informática - MFES 2018/2019

Tópicos

Avisos

14 Jun - VF: tinynew.gif O exame de VF realiza-se no dia 19 de Junho (4ª feira), às 14:00, na sala CP2 1.12. Os alunos deverão trazer os seus computadores pessoais com o software utilizado nas aulas instalado. É permitida a consulta da documentação na parte laboratorial do exame.

14 Jun - VF: tinynew.gif As notas dos projecto e notas finais foram lançadas no Blackboard.

11 Jun - VF: As notas do 2º teste foram lançadas no Blackboard.

3 Jun - VF: A apresentação dos projectos realiza-se no dia 12 de Junho (4º feira), às 9:00, na sala 1.10 do DI. As apresentações são de 15 min. + 5 min. para perguntas. Todos os alunos deverão estar presentes na sessão. Os relatórios deverão ser entregues por email até ao dia 10 de Junho.

27 Mai - VF: O 2º teste de VF realiza-se na próxima 5ª feira, 30 de Maio, às 14:00, na sala E7 1.10. Os alunos deverão trazer os seus computadores pessoais com o sistemas Frama-C e CBMC instalados. É permitida a consulta da documentação.

16 Abr - VF: As notas do 1º teste foram lançadas no Blackboard.

16 Abr - VF: A distribuição dos projectos por grupos já está disponível na página de VF.

4 Abr - VF: Os temas dos projectos estão disponíveis. Por favor, comuniquem as vossas escolhas dos projectos a mjf@di.uminho.pt até 15-Abr.

26 Fev - A Workshop ClearSy terá lugar 4ª-feira 6-Mar, às 14h30. Estejam atentos a mais informações. Até lá, recomenda-se que vejam este video.

10 Fev - LEI: a quem estiver interessado - por favor comuniquem as vossas escolhas dos projectos em LEI a jno@di.uminho.pt até 21-Fev.

10 Fev - CSI: as notas após o exame de recurso foram lançadas na página de CSI.

31 Jan - VF: As aulas de Verificação Formal começam a 14-Fev.

29 Jan - Informa-se que o exame de recurso de CSI foi adiado para dia 6-Fev, às 15h00, na sala 0.05 do DI.

29 Jan - EM: as notas do exame foram lançadas no blackboard da disciplina.

28 Jan - O enunciado do teste de CSI tem agora a correcção proposta.

28 Jan - A Workshop ClearSy de que se falou nas aulas está prevista para 6-Mar (em não Fevereiro como arradamente se referiu). Será conduzida por Thierry Lecomte, especialista em uso de MFs na indústria dos transportes.

27 Jan - CSI: as notas à data do teste foram lançadas na página de CSI.

22 Jan - EM: as notas finais da época normal foram lançadas no blackboard da disciplina. (correção parcial na wiki)

16 Jan - CSI: o teste de CSI de amanhã decorrerá na sala 0.05 do DI.

15 Jan - EM: as notas do segundo teste foram lançadas no blackboard da disciplina.

11 Jan - CSI: as notas do mini-teste foram lançadas na página de CSI.

9 Jan - EM: o teste de EM decorrerá na sala 0.05 do DI.

30 Dec - EM: as notas do TP1 e do primeiro mini-teste foram lançadas no blackboard da disciplina.

21 Dec - EM: foi lançado o enunciado do TP2 sobre Alloy na página EM. A data limite da entrega é 20-Jan.

13 Dez - O segundo teste de EM decorrerá no dia 10-Jan às 9h00 (sala a indicar). O segundo teste de CSI decorrerá no dia 17-Jan (sala e hora a confirmar).

8 Dez - Lista recente e actualizada de empresas que usam métodos formais na indústria.

28 Nov - CSI: haverá hoje uma aula de dúvidas às 16h00, na sala 1.16.

24 Nov - CSI: já está disponível o formulário na página de CSI, bem como algumas FAQs.

24 Nov - CSI: o mini-teste decorrerá às 14h00 de 29-Nov, na sala das aulas. Os alunos podem consultar (apenas) informação escrita ou impressa.

14 Nov - EM: o primeiro teste decorrerá às 9h00 na sala das aulas. Podem usar os portáteis para testar execuções no NuSMV.

8 Nov - CSI: em casa, completar os invariantes I3 e I4 do modelo Alloy do problema Plano de Estudos do MEI saído da aula de hoje material pedagógico na página CSI.

5 Nov - CSI: há novo material pedagógico na página CSI.

25 Out - EM: foi lançado o enunciado do TP1 sobre NuSMV na página EM. A data limite da entrega é 11-Nov.

21 Out - CSI: ver exemplos Alloy das aulas na página CSI.

02 Out - CSI: preparação para as aulas: ver sumários previstos e seguir as respectivas indicações nos apontamentos fornecidos na bibliografia. (Em CSI segue-se o método 'Flipped Classroom')

15 Set - Início das aulas: 20-Set, 9h00, sala E7 1.10.

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

r38 - 15 Feb 2019 - 11:06:28 - JoaoSaraiva
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM