|
Heleno de Souza Campos Junior (a.k.a. Heleno Campos) Assistant Professor, PESC/COPPE/UFRJ Postdoctoral Researcher, IC/UFF D.Sc., IC/UFF, 2025 M.Sc., PGCC/UFJF, 2018 B.Sc., Campus Juiz de Fora/IF Sudeste MG, 2016 |
|
Horário: terças e quintas, das 10h às 12h
Sala: H-324A
Período letivo 2026.2: de 10 de agosto a 19 de dezembro de 2026. Primeira aula em 11/08/2026, última em 17/12/2026. Não há aula em 08/09 e 10/09, nem na semana de integração acadêmica, de 05 a 09/10.
Curso: Engenharia de Computação e Informação (ECI) — Escola Politécnica / COPPE.
Sala de aula virtual da disciplina: usaremos o Moodle do PESC para os avisos, o material das aulas e a entrega de todas as atividades.
Qualidade de software: conceitos. Qualidade do processo: ISO 12207, ISO 9000, modelo CMM, SPICE. Características de qualidade de software: ISO 9126. Avaliação de pacotes: ISO 12119. Gerência da qualidade. Definição de requisitos de qualidade de produtos. Planejamento do controle da qualidade. Métricas. Técnicas para avaliação da qualidade.
Obs.: a ementa registrada no SIGA cita normas que foram substituídas. A ISO 9126 deu lugar à ISO/IEC 25010 (série SQuaRE) em 2011, o CMM virou CMMI, hoje na versão 3.0, e a ISO 12207 foi revisada em 2017. O curso apresenta as normas vigentes indicando a correspondência com as antigas.
Ao final da disciplina o aluno deve ser capaz de:
Aulas expositivas e dialogadas, com estudo de caso ao longo de todo o semestre.
Não há laboratório disponível para a turma. Todo conteúdo prático é demonstrado pelo professor em sala, com o código e os passos publicados no Moodle, e o aluno refaz em casa. A única atividade executada em sala é a inspeção de código, que é feita em papel.
O trabalho prático em grupo atravessa a disciplina inteira. Os grupos escolhem um software livre real na quarta semana e aplicam sobre ele, incrementalmente, cada técnica apresentada.
As aulas e as atividades avaliativas usam Java, por ser onde o ferramental de qualidade e teste é maduro, em particular o PIT para teste de mutação.
No trabalho em grupo a linguagem é livre, com a ressalva de que o suporte do professor pode se limitar a Java. Grupos que optarem por outra linguagem assumem a responsabilidade de encontrar e validar o ferramental equivalente.
| Símbolo | O que é | Peso |
|---|---|---|
| T1 | Entrega 1 do trabalho: escopo, plano de teste, testes unitários e testes manuais | 20% |
| T2 | Entrega 2 do trabalho: integração, sistema, estrutural, mutação, ISO 25010, inspeção de código | 30% |
| AP | Nota individual de apresentação, entre 0 e 1, que multiplica a nota do trabalho | multiplicador |
| PT | Prova teórica, sem consulta | 35% |
| A | Média das atividades, descartando a de menor nota | 15% |
Todas as notas na escala de 0 a 10, arredondadas a uma casa decimal.
APROVADO
\[Frequência \geq 75\% ~ E ~ Nota~final \geq 5{,}0\]REPROVADO
Caso contrário.
A nota do trabalho de cada aluno é multiplicada por um valor entre 0 e 1, atribuído individualmente com base na apresentação e nas respostas às perguntas feitas durante ela.
Teremos algumas atividades ao longo do semestre. Descarta-se a de menor nota e a média das restantes é o valor de A. O descarte cobre o imprevisto ordinário (doença, viagem, semana ruim) sem exigir pedido de segunda chamada, e por isso não há segunda chamada para as atividades.
Entrega de todas pelo Moodle.
A prova teórica será feita em aula, sem consulta, e cobrirá o conteúdo teórico da disciplina.
A segunda chamada também será feita em horário de aula, e comparecerá somente quem precisa. O pedido é feito diretamente ao professor, mediante atestado ou justificativa oficial, conforme o Art. 4º da Resolução CEG 104/2022.
README.md. Artefato não referenciado não é avaliado.O uso é permitido desde que devidamente declarado. Indicar como e em quais tarefas foi utilizado. Indicar também qual foi o modelo/agente. Lembre-se que IA deve ser usada como ferramenta de apoio ao ensino, não como substituto do aluno.
“Plágio é a utilização de ideias ou formulações verbais, orais ou escritas de outrem sem dar-lhe por elas, expressa e claramente, o devido crédito, de modo a gerar razoavelmente a percepção de que sejam ideias ou formulações de autoria própria.”
O trabalho consiste em aplicar os conceitos de qualidade e teste em até dois softwares livres escolhidos pelo grupo. Serão 10 grupos, formados por 5 alunos cada. Os integrantes devem ter as responsabilidades documentadas, e a escolha do sistema deve ser consultada com o professor antes de ser fechada.
O software escolhido precisa ter código-fonte disponível e classes com complexidade real, não só cadastros. Um dos projetos deve ter ao menos uma classe de alta complexidade por integrante do grupo, com complexidade ciclomática mínima de 10 por classe sob teste.
| Marco | Data |
|---|---|
| Formação dos grupos e escolha do(s) sistema(s) | até 03/09 |
| Criar o repositório do grupo e fazer fork do(s) sistema(s) | até 10/09 |
| Entrega 1 (20%) | até 11/10 |
| Apresentação da Entrega 1 | 13/10 e 15/10 |
| Acompanhamento e dúvidas da Entrega 2 | 26/11 |
| Plantão do trabalho final | 03/12 |
| Entrega 2 (30%) | até 06/12 |
| Apresentação final | 08/12, 10/12 e 15/12 |
Entrega 1: descrição do escopo, código-fonte original (fork), casos de teste unitários de pelo menos uma classe por integrante, plano de teste no template IEEE 829, casos de teste manuais projetados e executados em pelo menos um cenário, e issues reportadas em um bug tracker.
Entrega 2: ampliação dos testes unitários com isolamento de dependências (Mockito), testes de integração, medidas dos atributos de qualidade da ISO/IEC 25010, testes de sistema com Selenium ou similar (ao menos um teste E2E por integrante), melhoria do conjunto de casos de teste pelas técnicas funcional, estrutural (mínimo de 80% de cobertura no critério todas-arestas) e baseada em defeitos (mínimo de 80% de escore de mutação), e relatório de inspeção do código-fonte com correção dos problemas apontados.
O enunciado completo, com os critérios de avaliação e o formato das apresentações, estará no Moodle.
A frequência mínima para aprovação é de 75% das aulas.
Básica
Complementar
| # | Data | Tópico |
|---|---|---|
| 1 | 11/08 ter | Apresentação da disciplina, regras, avaliação e trabalho |
| 2 | 13/08 qui | Fundamentos de Qualidade e Teste |
| 3 | 18/08 ter | Verificação e Validação |
| 4 | 20/08 qui | Inspeção e Revisão de Software |
| 5 | 25/08 ter | Métricas de produto: LOC, complexidade ciclomática, acoplamento, coesão, GQM |
| 6 | 27/08 qui | Princípios de Teste I: engano, defeito, erro, falha e critérios de teste |
| 7 | 01/09 ter | Princípios de Teste II: casos de teste, oráculos, limites do teste |
| 8 | 03/09 qui | Java essencial para teste e Introdução ao JUnit · formação dos grupos e escolha do sistema |
| — | 08/09 ter | Sem aula |
| — | 10/09 qui | Sem aula |
| 9 | 15/09 ter | Dívida Técnica |
| 10 | 17/09 qui | Processo de Teste I: planejamento, IEEE 829, plano de teste |
| 11 | 22/09 ter | Processo de Teste II: execução, relato de defeitos, TestLink |
| 12 | 24/09 qui | Fases de Teste I: teste de unidade |
| 13 | 29/09 ter | Fases de Teste II: integração e Mockito |
| 14 | 01/10 qui | Fases de Teste III: teste de sistema e de aceitação |
| — | 06/10 ter | Sem aula (semana de integração acadêmica) |
| — | 08/10 qui | Sem aula (semana de integração acadêmica) |
| — | 11/10 dom | Entrega 1 do Trabalho, 23h59 |
| 15 | 13/10 ter | Apresentação da Entrega 1, parte 1 |
| 16 | 15/10 qui | Apresentação da Entrega 1, parte 2 |
| 17 | 20/10 ter | Teste Funcional I: partição de equivalência, análise do valor limite |
| 18 | 22/10 qui | Teste Funcional II: tabela de decisão, grafo de causa-efeito |
| 19 | 27/10 ter | Selenium: automação de teste de sistema |
| 20 | 29/10 qui | Teste Estrutural I: grafo e critérios de fluxo de controle |
| 21 | 03/11 ter | Teste Estrutural II: fluxo de dados, cobertura com JaCoCo |
| 22 | 05/11 qui | Teste Baseado em Defeitos I: teste de mutação |
| 23 | 10/11 ter | Teste Baseado em Defeitos II: operadores, escore de mutação, PIT |
| 24 | 12/11 qui | CI/CD para qualidade: pipeline, quality gates, SonarQube |
| 25 | 17/11 ter | Qualidade do Processo: ISO 12207, ISO 9000, CMM, SPICE, medição de processo e controle estatístico |
| 26 | 19/11 qui | Normas e Modelos de Maturidade: ISO 12207, ISO 9001, ISO/IEC 33000, CMMI, MPS.BR |
| 27 | 24/11 ter | Qualidade do Produto: ISO 9126 para ISO/IEC 25010, ISO 14598, ISO 12119 |
| 28 | 26/11 qui | Acompanhamento dos grupos, dúvidas da Entrega 2, revisão para a prova |
| 29 | 01/12 ter | Prova teórica, sem consulta |
| 30 | 03/12 qui | Plantão do trabalho final |
| — | 06/12 dom | Entrega 2 do Trabalho, 23h59 |
| 31 | 08/12 ter | Apresentação Final, parte 1 |
| 32 | 10/12 qui | Apresentação Final, parte 2 |
| 33 | 15/12 ter | Apresentação Final, parte 3 |
| 34 | 17/12 qui | Segunda chamada da prova (comparece só quem precisa) |