Saltar para:
Logótipo
Você está em: Início > M.EIC045

Teste, Verificação e Validação de Software

Código: M.EIC045     Sigla: TVVS

Áreas Científicas
Classificação Área Científica
OFICIAL Engenharia de Software

Ocorrência: 2024/2025 - 1S Ícone do Moodle

Ativa? Sim
Página Web: https://moodle2425.up.pt/course/view.php?id=5057
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
M.EIC 48 Plano de estudos oficial 2 - 6 39 162

Docência - Responsabilidades

Docente Responsabilidade
José Carlos Medeiros de Campos Regente

Docência - Horas

Teórico-Práticas: 3,00
Tipo Docente Turmas Horas
Teórico-Práticas Totais 2 6,00
José Carlos Medeiros de Campos 6,00

Língua de trabalho

Inglês

Objetivos

O objetivo desta unidade curricular é: a familiarização com a terminologia usada em testes de software; a sensibilização com as questões relacionadas com a qualidade de software; e exploração e prática de diferentes técnicas de Verificação e Validação (V&V) necessárias para a construção de sistemas de software de qualidade.

Resultados de aprendizagem e competências

No final da Unidade curricular os estudantes devem ser capazes de projetar e executar um plano de Verificação e Validação (V&V). Mais especificamente, espera-se que os estudantes sejam capazes de:
- Planear uma estratégia de Verificação e Validação.
- Selecionar as melhores técnicas e ferramentas de teste de software para um determinado contexto.
- Projetar e desenvolver testes em diferentes níveis (e.g., unidade, integração, sistema e aceitação).
- Testar situações excepcionais (e.g., boundary value analysis).
- Refletir sobre as limitações e qualidade dos testes desenvolvidos.
- Usar métricas para avaliar a qualidade dos testes (e.g., cobertura de instruções).
- Escrever código de teste sustentável, evitando problemas conhecidos (e.g., flakiness, ilegível, dependente, fat testes, etc.).

Modo de trabalho

Presencial

Programa

1. Introdução à Verificação e Validação de Software
2. Partição em classes de equivalência / “category partition” e análise de valores fronteira
3. Teste baseado em modelos
4. “Structural Testing (Line and Decision coverage)” e “Logical Coverage (Condition coverage and Modified Condition/Decision Coverage (MC/DC))”
5. Teste de mutação
6. “Test-Driven Development (TDD)”, “Behavior-Driven Development (BDD) Testing”, e “Property-Based Testing (PBT)”
7. Geração automática de testes utilizando abordagens aleatórias, fuzzing, e search-based
8. Geração automática de testes utilizando inteligência artificial
9. Teste de integração, teste de sistema, teste de aceitação, testes de performance, testes de segurança, e teste de regressão
10. Gestão e documentação de testes
11. Teste estático

Bibliografia Obrigatória

Maurício Aniche; Effective software testing, 2022. ISBN: 978-1-633-43993-1
Paul Ammann; Introduction to software testing, 2016. ISBN: 978-1-107-17201-2
Paul C. Jorgensen; Software Testing A Craftsman's Approach, 2013. ISBN: 978-1-466-56069-7
Dorothy Graham, Rex Black, Erik van Veenendaal; Foundations of Software Testing: ISTQB Certification, 2020. ISBN: 978-1-473-76479-8
Ilene Burnstein; Practical Software Testing, 2003. ISBN: 978-0-387-95131-7
Gordon Fraser and José Miguel Rojas; Software Testing, 2019. ISBN: 978-3-030-00262-6
Mark Utting; Practical Model-Based Testing, 2007. ISBN: 978-0-12-372501-1
Tomek Kaczanowski; Bad Tests, Good Tests, 2013. ISBN: 978-8-393-84713-6

Bibliografia Complementar

Kent Beck; Test Driven Development: By Example, 2002. ISBN: 978-0-321-14653-3
Petar Tahchiev, Felipe Leme, Vincent Massol, and Gary Gregory; JUnit 4.8 In Action, 2010. ISBN: 978-1-935-18202-3
Tomek Kaczanowski; Practical Unit Testing with JUnit and Mockito, 2019. ISBN: 978-8-393-48939-8
Chak Shun Yu, Christoph Treude, Maurício Aniche; Comprehending Test Code: An Empirical Study, 2019. ISBN: 978-1-7281-3095-8
Michal Young and Mauro Pezzè; Software testing and analysis: process, principles, and techniques, 2008. ISBN: 978-0-471-45593-6

Métodos de ensino e atividades de aprendizagem

Esta unidade curricular promove o contínuo envolvimento dos estudantes através do estudo, discussão e aplicação prática dos temas apresentados. De forma a contribuir para uma aprendizagem contínua e autónoma, os estudantes resolvem exercícios práticos ao longo do semestre. Para além destes exercícios, os estudantes têm que realizar um projeto onde aplicam os conceitos apresentados, em particular, diferentes estratégias e ferramentas de V&V.

As aulas teóricas são usadas para exposição formal dos conceitos e aspetos fundamentais de V&V. Sempre que possível, os conceitos teóricos são acompanhados da apresentação e discussão de casos práticos reais.

As aulas teórico-práticas são usadas para realizar exercícios, aplicar técnicas de V&V, usar/experimentar diversas ferramentas de auxílio à escrita e execução de testes e para apoiar na realização do projeto.

Palavras Chave

Ciências Tecnológicas > Engenharia > Engenharia de computadores
Ciências Tecnológicas > Tecnologia > Tecnologia de computadores > Tecnologia de software

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 60,00
Trabalho prático ou de projeto 40,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 100,00
Frequência das aulas 39,00
Trabalho laboratorial 23,00
Total: 162,00

Obtenção de frequência

Para concluir com sucesso esta unidade curricular, os estudantes devem obter:
- nota mínima de 47,5% no projecto (P)
- nota mínima de 47,5% no exame final (E)

Fórmula de cálculo da classificação final

A classificação final é calculada da seguinte forma: P x 40% + E x 60%

P: projeto
E: exame final

Avaliação especial (TE, DA, ...)

Todas as componentes de avaliação são obrigatórias para todos os estudantes, mesmo para aqueles dispensados de frequência às aulas.

Melhoria de classificação

- A classificação obtida no projeto pode ser melhorada na edição seguinte da unidade curricular.
- A classificação do exame pode ser melhorada em exame de recurso.
Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-10-19 às 09:26:25 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias