Disciplina
Teste e Validação de Software
Área
Área Científica de Metodologia e Tecnologias da Programação > Engenharia da Programação
Activa nos planos curriculares
MMA 2006 > MMA 2006 > 2º Ciclo > Perfis > Matematica da Computação > Metodologia e Tecnologia da Programação > Opções - Mtp > Teste e Validação de Software
MEIC-T 2021 > MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Engenharia de Software > Teste e Validação de Software
MEIC-T 2015 > MEIC-T 2015 > 2º Ciclo > Agrupamentos > Engenharia de Software > Teste e Validação de Software
MEIC-A 2021 > MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Engenharia de Software > Teste e Validação de Software
MEIC-A 2015 > MEIC-A 2015 > 2º Ciclo > Agrupamentos > Engenharia de Software > Teste e Validação de Software
Nível
Exame (60%) + Projecto (40%)
Tipo
Não Estruturante
Regime
Semestral
Carga Horária
1º Semestre
3.0 h/semana
1.5 h/semana
147.0 h/semestre
Objectivos
O tamanho e a complexidade de programas de software tem vindo a crescer, sendo por isso cada vez mais importante conseguir validar a correção dos programas. Um dos custos principais no desenvolvimento de software é a sua validação. Existem várias técnicas de validação, sendo a técnica de teste de software uma das técnicas mais utilizadas. A UC de Teste e Validação de Software (TVS) oferece formação avançada nas técnicas de teste de software, incluindo técnicas manuais, semi-automáticas e automáticas. A UC de TVS oferece também formação sobre técnicas adicionais de validação de software, incluindo a análise estática e a verificação de modelos. A UC proporciona também contacto com ferramentas académicas e industriais de validação de software.
Programa
Introdução à qualidade de software. Limitações de testar software. Testes de Software aplicado a código com objetos Testes de Caixa Branca: Grafo de controlo de fluxo; Modelos de cobertura Testes de Caixa Preta: Testes baseado num modelo do código; Testes ao nível de método: Testes aos valores fronteira; Testes por classes de equivalência; Testes baseados numa tabela decisão; testes a recursão Testes ao nível de classe: Testes a classes modais e não modais e impacto de herança nos testes; Testes ao nível de subsistema; Testes de integração: Big Bang, Top-Down, Bottom-Up, Por camadas, Sistemas Distribuídos Testes de regressão: Definição de técnica de seleção de casos de teste. Diferentes técnicas de seleção Testes ao nível de sistema. Testes a requisitos funcionais; Testes a requisitos não- funcionais: Testes de carga, Testes de desempenho. Geração Automática de Testes: Teste por mutação; Teste concólico; Execução simbólica Análise Estática de Software: Técnicas de análise estática; Apresentar algumas ferramentas existentes; Verificação de Modelos de Software: Fundamentos: lógica temporal, restrições, etc. Algoritmos para verificação de modelos Tópicos Adicionais: Depuração delta; Instrumentação de código; Identificação de invariantes
Metodologia de avaliação
Exame (60%) + Projecto (40%)
Pré-requisitos
Componente Laboratorial
Princípios Éticos
Componente de Programação e Computação
Componente de Competências Transversais
Bibliografia
Principal
Software Testing: A Craftsman's Approach, 4th edition.
E. Clarke, T. Henzinger, H. Veith