Análise e Teste de Software
A disciplina de
Análise e Teste de Software estuda métodos e ferramentas para a análise e teste de sistemas de software. A parte de análise aborda técnicas para analisar o código fonte dos sistemas de software: técnicas avançadas de
parsing e de travessia de árvores de syntaxe abstracta são apresentadas no curso. Modelos para a análise de qualidade de software, nomeadamente do seu código fonte, serão apesentados, e métricas de software serão estudadas de modo a permitirem a análise automática da qualidade de um sistema de software. Nesta análise será ainda apresentado um catálogo de "bad smells" de código fonte que indicam a existência de problemas na compreensão/evolução/manuntenção de software. Técnicas de teste de software serão também estudas de modo a permitirem analisar a qualidade de software. Testes unitários, teste de aplicações interativas e web, e ainda a geração automática de casos de teste e sua análise de cobertura são estudados em detalhe. Por último, serão apresentadas técnicas para a localização de falhas em software.
Material Pedagógico
Linguagens, Gramáticas e Árvores de Syntaxe Abstrata: (slides)
Combinadores de Parsing:
ParsingCombinators.pdf (slides)
Programação Estratégica:
StrategicProgramming.pdf (slides)
Software Metrics:
Software Metrics (slides)
Code Smells:
Source Code Smells (slides)
Análise Verde de Software:
Green Software (slides)
Análise Verde de Software:
Monitorização de consumo de energia em Java com jRAPL (slides)
Control Flow Graphs:
Control Flow Graphs (slides)
Teste de Software:
Teste de Cobertura de Código - Teste Unitario (slides)
Teste de Software:
Software Test Automation (slides ->
new)
Teste de Software:
Teste de Aplicações Web - Selenium (slides)
Localização de Falhas em Sistemas de Software:
Spectrum-based Fault Localization (slides)
Optimizações para Software Verde:
Green Software Optimization (slides)
Apontamentos: Software Analysis and Testing (with a functional flavor)
_(disponível em breve)_
Projeto de Software
Projeto:
Enunciado
Os grupos que escolherem o projeto 1 (a desenvolver em Java) devem considerar o software que gere um agência noticiosa disponível
aqui e que foi desenvolvido de acordo com os requesitos descritos
aqui
Software
O sistema de Parsing ANTLR:
http://www.antlr3.org/ e o interpretador de gramáticas ANTLRWorks:
http://www.antlr3.org/works/
Programação Estratégica no sistema TOM:
http://tom.loria.fr/wiki/index.php5/Main_Page
ANTLR+TOM -- Parser + normalização de Expressões Regulares:
Expressões Regulares (tgz)
Simple Language:
exemplos.sl (exemplo de programas)
Combinadores de Parsing (módulo desenvolvido nas aulas):
Parser.hs
Construção de Control Flow Graphs:
ControlFLowGraph.tgz
Análide de consumo de energia usando RAPL (versão C e Haskell):
RAPL.tgz
Teste Unitário e Cobertura (jUnit, HUnit):
Teste Unitário
Equipa Docente
João Saraiva:
saraiva@di.uminho.pt
Jorge Mendes:
jorgemendes@di.uminho.pt
Rui Pereira:
ruipereira@di.uminho.pt
Marco Couto:
marcocouto90@gmail.com
Testes, Exames e Avaliação
Teste: 5 de Janeiro de 2017
Avaliação: Teste ou Exame (50%), Projeto (40%), Avaliação Continua (10%)
Resultados do teste: Notas do Teste
Resultados do Exame, Projetos e Notas Finais: Notas Finais
-- Página criada por:
JoaoSaraiva - 21 Sep 2016