Skip to content
Informática · 11.º Ano

Ideias de aprendizagem ativa

Desenvolvimento e Testes de Software

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.

Aprendizagens EssenciaisDGE: Secundário - ProgramaçãoDGE: Secundário - Resolução de Problemas
30–60 minPares → Turma inteira4 atividades

Atividade 01

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.

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

Sugestão de FacilitaçãoDurante 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.

O que observarDivida os alunos em pares. Cada aluno entrega um pequeno trecho de código com um erro intencional. O colega deve atuar como depurador, identificando o erro e propondo uma correção. Peça aos alunos para avaliarem a clareza das explicações do colega sobre o erro e a correção.

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão
Gerar Aula Completa

Atividade 02

Aprendizagem Baseada em Projetos45 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.

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

Sugestão de FacilitaçãoNas 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.

O que observarForneça aos alunos um cenário de desenvolvimento de software (ex: uma nova funcionalidade para uma app de meteorologia). Peça-lhes para escreverem dois testes unitários e um teste de integração que seriam necessários para validar essa funcionalidade. Peça também uma breve justificação para a escolha do teste de integração.

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão
Gerar Aula Completa

Atividade 03

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.

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

Sugestão de FacilitaçãoNo 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.

O que observarApresente aos alunos uma lista de afirmações sobre testes de software (ex: 'Testes unitários são mais demorados que testes de integração'). Peça aos alunos para responderem Verdadeiro ou Falso e, para as falsas, explicarem brevemente porquê. Use isto para clarificar mal-entendidos comuns.

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão
Gerar Aula Completa

Atividade 04

Aprendizagem Baseada em Projetos60 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.

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

Sugestão de FacilitaçãoNa 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.

O que observarDivida os alunos em pares. Cada aluno entrega um pequeno trecho de código com um erro intencional. O colega deve atuar como depurador, identificando o erro e propondo uma correção. Peça aos alunos para avaliarem a clareza das explicações do colega sobre o erro e a correção.

AplicarAnalisarAvaliarCriarAutogestãoCompetências RelacionaisTomada de Decisão
Gerar Aula Completa

Algumas notas sobre lecionar esta unidade

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.

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.


Atenção a estes erros comuns

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

    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.

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

    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.

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

    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.


Metodologias usadas neste resumo