Skip to content

Desenvolvimento e Testes de SoftwareAtividades e Estratégias de Ensino

A aprendizagem ativa funciona especialmente bem neste tema porque os alunos aprendem a depurar e testar software através da prática direta. Ao resolverem erros em pares ou em estações rotativas, eles compreendem a importância de ciclos iterativos de testes e correções. Esta abordagem prática reforça conceitos teóricos, como a distinção entre testes unitários e de integração, de forma mais eficaz do que a exposição passiva.

11° AnoInovação Digital e Pensamento Computacional Avançado4 atividades30 min60 min

Objetivos de Aprendizagem

  1. 1Demonstrar a aplicação de técnicas de depuração para identificar e corrigir erros lógicos e de sintaxe num programa.
  2. 2Comparar a eficácia de testes unitários e testes de integração na validação de diferentes aspetos de uma aplicação de software.
  3. 3Avaliar o impacto da automação de testes na redução de tempo e no aumento da fiabilidade durante o ciclo de desenvolvimento de software.
  4. 4Criar um conjunto de testes de aceitação para verificar se uma funcionalidade cumpre os requisitos definidos pelo utilizador.
  5. 5Explicar o papel da documentação de testes na comunicação do estado de qualidade do software a equipas de desenvolvimento e stakeholders.

Pretende um plano de aula completo com estes objetivos? Gerar uma Missão

Par Programação: Depuração de Erros

Os pares escrevem um código simples com erros intencionais, como loops infinitos ou variáveis indefinidas. Em seguida, alternam papéis de condutor e navegador para identificar e corrigir os erros usando depuradores. Registam as estratégias usadas num relatório partilhado.

Preparação e detalhes

Quais são as estratégias mais eficazes para identificar e corrigir erros no código?

Sugestão de Facilitação: Durante a Par Programação: Depuração de Erros, circule entre os pares para garantir que estão a seguir métodos sistemáticos, como adicionar logs ou usar breakpoints.

Setup: Espaço de trabalho flexível com acesso a materiais e tecnologia

Materials: Guião do projeto com a questão orientadora, Modelo de planificação e cronograma, Grelha de avaliação com metas intercalares, Materiais de apresentação

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão
45 min·Pequenos grupos

Estações de Testes: Unitários e Integração

Crie quatro estações com módulos de código: duas para testes unitários (funções isoladas) e duas para integração (combinação de funções). Os grupos rotacionam a cada 10 minutos, executam testes e comparam resultados num quadro colaborativo.

Preparação e detalhes

Diferencie testes unitários de testes de integração.

Sugestão de Facilitação: Nas Estações de Testes: Unitários e Integração, prepare exemplos de código curtos e intencionalmente falhos para que os alunos possam comparar resultados entre testes unitários e de integração.

Setup: Espaço de trabalho flexível com acesso a materiais e tecnologia

Materials: Guião do projeto com a questão orientadora, Modelo de planificação e cronograma, Grelha de avaliação com metas intercalares, Materiais de apresentação

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão
50 min·Individual

Desafio Automação: Testes com Ferramentas

Individualmente, os alunos escrevem testes automatizados para um código base usando ferramentas como pytest ou JUnit. Depois, em grupo, executam os testes e discutem falhas, ajustando o código original com base nos resultados.

Preparação e detalhes

Avalie a importância da automação de testes no ciclo de desenvolvimento de software.

Sugestão de Facilitação: No Desafio Automação: Testes com Ferramentas, forneça tutoriais rápidos em vídeo ou impressos para as ferramentas escolhidas (ex: JUnit ou pytest) e peça aos alunos para replicarem um teste simples antes de avançarem para cenários mais complexos.

Setup: Espaço de trabalho flexível com acesso a materiais e tecnologia

Materials: Guião do projeto com a questão orientadora, Modelo de planificação e cronograma, Grelha de avaliação com metas intercalares, Materiais de apresentação

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão
60 min·Pequenos grupos

Simulação Ciclo Ágil: Sprint de Testes

Em small groups, simulam um sprint: implementam funcionalidade, testam unitariamente, integram e automatizam. Apresentam métricas de cobertura de testes ao final.

Preparação e detalhes

Quais são as estratégias mais eficazes para identificar e corrigir erros no código?

Sugestão de Facilitação: Na Simulação Ciclo Ágil: Sprint de Testes, defina um tempo limite para cada sprint e incentive os alunos a refletirem sobre o que funcionou ou não nos testes realizados.

Setup: Espaço de trabalho flexível com acesso a materiais e tecnologia

Materials: Guião do projeto com a questão orientadora, Modelo de planificação e cronograma, Grelha de avaliação com metas intercalares, Materiais de apresentação

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão

Ensinar Este Tópico

Ensinar desenvolvimento e testes de software requer um equilíbrio entre teoria e prática. Evite aulas expositivas longas sobre conceitos abstratos; em vez disso, use exemplos concretos e problemas reais para ilustrar a importância dos testes. Pesquisas mostram que os alunos retêm melhor quando aplicam métodos sistemáticos, como a depuração passo a passo, em contextos colaborativos. Também é útil conectar os testes a situações do mundo real, como bugs em aplicações populares, para aumentar a motivação.

O Que Esperar

No final destas atividades, espera-se que os alunos consigam identificar erros de forma sistemática, aplicar testes unitários e de integração corretamente, e justificar a escolha de testes com base no contexto do desenvolvimento. Além disso, devem ser capazes de discutir a relevância da automação de testes no ciclo ágil, demonstrando compreensão prática e teórica.

Estas atividades são um ponto de partida. A missão completa é a experiência.

  • Guião completo de facilitação com falas do professor
  • Materiais imprimíveis para o aluno, prontos para a aula
  • Estratégias de diferenciação para cada tipo de aluno
Gerar uma Missão

Atenção a estes erros comuns

Erro comumDurante a Par Programação: Depuração de Erros, os alunos podem pensar que a depuração é apenas 'adivinhar' onde está o erro.

O que ensinar em alternativa

Use esta atividade para mostrar que a depuração segue métodos estruturados, como inspecionar logs, usar breakpoints ou dividir o código em partes menores. Peça aos pares para documentarem os passos que seguiram para resolver o erro e compararem com os métodos vistos na aula.

Erro comumDurante as Estações de Testes: Unitários e Integração, os alunos podem confundir testes unitários com testes de integração.

O que ensinar em alternativa

Nesta atividade, forneça exemplos de código onde um teste unitário falha mas um teste de integração passa, ou vice-versa. Peça aos alunos para registarem observações em grupo e explicarem as diferenças com as suas próprias palavras antes de avançarem para a próxima estação.

Erro comumDurante o Desafio Automação: Testes com Ferramentas, os alunos podem acreditar que os testes só devem ser feitos manualmente.

O que ensinar em alternativa

Neste desafio, mostre como ferramentas de automação como JUnit ou pytest permitem executar testes repetidamente e com consistência. Peça aos alunos para compararem o tempo gasto a executar testes manualmente versus automaticamente e discutirem as vantagens de cada abordagem.

Ideias de Avaliação

Avaliação entre Pares

Após a Par Programação: Depuração de Erros, peça aos alunos que avaliem o colega com base na clareza da explicação do erro encontrado e da correção proposta. Use uma grelha simples com critérios como 'identificou corretamente o erro', 'explicou de forma clara' e 'proposto uma solução válida'.

Bilhete de Saída

Durante as Estações de Testes: Unitários e Integração, forneça um pequeno cenário (ex: uma função que calcula a média de temperaturas) e peça aos alunos para escreverem um teste unitário e um teste de integração que validem essa função. Peça também uma justificação curta para a escolha do teste de integração.

Verificação Rápida

Após a Simulação Ciclo Ágil: Sprint de Testes, apresente afirmações como 'Testes unitários são sempre mais rápidos de executar do que testes de integração' ou 'A automação de testes reduz o tempo total de desenvolvimento'. Peça aos alunos para responderem Verdadeiro ou Falso e discutirem as respostas em grupo para clarificar mal-entendidos.

Extensões e Apoio

  • Challenge: Peça aos alunos que criem uma pequena aplicação com uma funcionalidade nova e implementem testes unitários e de integração para ela, usando uma ferramenta de automação como JUnit ou pytest.
  • Scaffolding: Para alunos que têm dificuldade em distinguir testes unitários de integração, forneça um fluxograma ou tabela comparativa com exemplos visuais de cada tipo de teste.
  • Deeper: Proponha um debate sobre como a automação de testes influencia a velocidade de desenvolvimento em equipas ágeis, usando casos de estudo de empresas tecnológicas.

Vocabulário-Chave

Depuração (Debugging)O processo de encontrar e remover erros (bugs) num programa de computador. Inclui a análise de logs, a utilização de pontos de interrupção e a inspeção de variáveis.
Teste UnitárioUm teste que verifica uma pequena unidade de código isolada, como uma função ou método, para garantir que funciona corretamente por si só.
Teste de IntegraçãoUm teste que verifica a interação entre diferentes módulos ou componentes de um software para garantir que comunicam e funcionam juntos como esperado.
Automação de TestesA utilização de software para executar casos de teste e comparar os resultados reais com os resultados esperados, acelerando o processo de teste e permitindo testes mais frequentes.
Caso de TesteUm conjunto de condições e variáveis iniciais, passos de execução e resultados esperados, projetado para verificar uma funcionalidade específica ou um requisito do sistema.

Preparado para lecionar Desenvolvimento e Testes de Software?

Gere uma missão completa com tudo o que precisa

Gerar uma Missão