Disciplina

Á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.

Paul Jorgensen

2013

Auerbach Publications


Handbook of Model Checking

E. Clarke, T. Henzinger, H. Veith

2014

Springer