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

A parte teórica da disciplina é avaliada com um exame final que vale 50% da nota final. Depois temos um projecto feito durante a primeira parte da disciplina e que avalia o desenho e concretização de testes de softare para um dado sistema (vale 25%). A componente final do método de avaliação corresponde à apresentação de um artigo, nas últimas semanas de aulas, sobre a realização automática de testes. A nota da apresentação oral tem em conta a presença dos alunos nas várias aulas de apresentações de artigos. Cada aula de apresentação em que um aluno não participa implica uma penalização de 10%/A (A representa o número de aulas de apresentações) da nota da apresentação oral. Existe uma nota mínima de 9.5 no exame e de 9,5 na média da apresentação oral e do projecto. Os alunos trabalhadores-estudantes só precisam de comparecer na aula de apresentação do seu artigo sem terem qualquer penalização na nota da apresentação oral.

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

2.0 h/semana

1.5 h/semana

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

Motivação para testes e validação de software. Testes de caixa branca baseados em análise de código: análise baseada em fluxo de dados e fluxo de controlo. Testar código orientado a objetos: a aproximação baseada no model/testes de caixa preta: teste dos valores fronteira, teste de classes de equivalência, teste baseado em tabela de decisão, teste de código recursivo, teste de máquinas de estado finitas; testes ao nível de método e de classe. Gestão do processo de teste: testes unitários, testes de sub-sistema, testes de integração, testes de sistema e testes de regressão. Ferramentas para testes automáticos. Testes não-funcionais: Carga, desempenho e segurança, Análise estática de código. Geração automática de testes: testes de mutação, testes concólicos, execução simbólica, verificação do modelo. Tópicos adicionais: “delta debugging”, instrumentalização de código e identificação de invariantes.

Metodologia de avaliação

A parte teórica da disciplina é avaliada com um exame final que vale 50% da nota final. Depois temos um projecto feito durante a primeira parte da disciplina e que avalia o desenho e concretização de testes de softare para um dado sistema (vale 25%). A componente final do método de avaliação corresponde à apresentação de um artigo, nas últimas semanas de aulas, sobre a realização automática de testes. A nota da apresentação oral tem em conta a presença dos alunos nas várias aulas de apresentações de artigos. Cada aula de apresentação em que um aluno não participa implica uma penalização de 10%/A (A representa o número de aulas de apresentações) da nota da apresentação oral. Existe uma nota mínima de 9.5 no exame e de 9,5 na média da apresentação oral e do projecto. Os alunos trabalhadores-estudantes só precisam de comparecer na aula de apresentação do seu artigo sem terem qualquer penalização na nota da apresentação oral.

Pré-requisitos

Conhecimentos básicos de programação orientada a objectos

Componente Laboratorial

A componente laboratorial pretende desenvolver as competências de desenho e concretização de testes de software dos alunos por forma a exercitar os conceitos lecionados nas aulas teóricas. Na parte final da disciplina, os alunos terão que fazer uma apresentação oral sobre um artigo que descreve uma solução para a realização de testes automáticos.

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Componente de Programação e Computação

No curso onde esta UC é oferecida estão asseguradas as componentes de Computação e Programação de acordo com o MEPP 2122.

Componente de Competências Transversais

Nesta disciplina exercita-se a capacidade de apresentação oral por parte dos alunos. Esta capacidade é avaliada na componente de apresentação oral de um artigo que cada aluno tem que realizar. Cada apresentação é feita durante uma aula teórica ou de laboratório. Esta componente de avaliação vale 25% da nota final da disciplina.

Bibliografia

Principal

Software Testing: A Craftsman's Approach, 4th edition.  

Paul Jorgensen

2013

Auerbach Publications


Testing Object-Oriented Systems: Models, Patterns, and Tools

Robert V. Binder

2000

Addison-Wesley