Entrar

Plano de aula de Testes em Python

Programação em Python

Original Teachy

Testes em Python

Objetivos

<10 - 15 minutos>

  1. Explicar os conceitos básicos dos testes de software, incluindo os diferentes tipos de teste (unitário, de integração, de sistema, de aceitação, etc.) e suas finalidades.
  2. Apresentar as ferramentas e frameworks de teste Python, como unittest, pytest, doctest, nose, etc, explicando as vantagens, desvantagens e casos de uso de cada uma.
  3. Desenvolver habilidades de escrita de código de teste, envolvendo a criação de testes unitários que verifiquem uma única função ou módulo, e testes de integração que verifiquem como várias partes do software funcionam juntas.

Objetivos Secundários

  1. Introduzir a metodologia Test-Driven Development (TDD) e como ela pode melhorar a qualidade do código e a eficiência do desenvolvimento de software.
  2. Expor a importância das habilidades de depuração para encontrar e corrigir problemas quando um teste falha.
  3. Explicar o conceito de Continuous Integration/Continuous Deployment (CI/CD) e como os testes se encaixam nesse processo.
  4. Ensinar sobre Mocking e Patching no contexto de testes em Python.
  5. Demonstrar a aplicação e importância da análise de cobertura de código.

Introdução

<15 - 20 minutos>

Antes de mergulharmos no tópico de hoje, vamos relembrar um pouco do que aprendemos na aula anterior sobre "Python para Web: Banco de Dados e Autenticação de Usuários". Revisaremos rapidamente a sintaxe básica do Python, as funções e os módulos, além de como trabalhamos com banco de dados e autenticação de usuários em web.

Agora, imagine as seguintes situações: você acabou de desenvolver um novo recurso para um aplicativo e precisa garantir que ele não só funciona corretamente, mas também não quebrou nenhuma funcionalidade existente. Ou, você está trabalhando em um projeto de equipe, e todos estão constantemente alterando o código. Como você pode ter certeza de que todas as partes do aplicativo ainda estão funcionando como esperado?

É aqui que entram os Testes em Python. São eles que nos ajudam a garantir que nosso código está funcionando corretamente e que qualquer novo recurso ou alteração não quebrou nada existente. Além disso, a adoção de práticas de teste pode nos ajudar a identificar e corrigir bugs antes que eles cheguem à produção.

Agora, vamos falar sobre algumas curiosidades. Você sabia que a prática de Test-Driven Development (TDD), onde primeiro escrevemos os testes antes do código, foi popularizada por Kent Beck, um dos 17 signatários originais do Manifesto Ágil? Além disso, estudos mostram que o TDD pode reduzir o número de bugs em produção em até 40%.

Portanto, preparados para mergulhar no mundo dos testes em Python? Vamos lá!

Desenvolvimento

<40 - 50 minutos>

Revisão de Conhecimentos Anteriores

<5 - 10 minutos>

Antes de mergulhar nos testes, é importante revisar alguns conceitos fundamentais de programação Python, como funções, classes, módulos e manipulação de exceções.

Teoria de Testes em Python

<15 - 20 minutos>

  • Introduzir os conceitos básicos dos testes de software, explicando por que os testes são importantes e quais são os diferentes tipos de testes (unitário, de integração, de sistema, de aceitação, etc.).
  • Apresentar as ferramentas e frameworks de teste Python, como unittest, pytest, doctest, nose, etc, explicando as vantagens, desvantagens e casos de uso de cada uma.
  • Explicar o que é Test-Driven Development (TDD) e como ele pode melhorar a qualidade do código e a eficiência do desenvolvimento de software.
  • Discutir sobre Continuous Integration/Continuous Deployment (CI/CD) e como os testes se encaixam nesse processo.

Práticas e Experimentos

<20 - 25 minutos>

  1. Atividade Prática 1 - Escrevendo Testes Unitários Usando exemplos concretos, os alunos serão orientados a escrever testes unitários para uma função ou módulo Python. Esta atividade permitirá que eles pratiquem a escrita de casos de teste e a execução de testes usando uma ferramenta de teste Python.

  2. Atividade Prática 2 - Aplicando TDD Os alunos serão desafiados a escrever testes para uma nova funcionalidade antes de escrever o código que implementa essa funcionalidade. Isso permitirá que eles vejam em primeira mão como o TDD pode melhorar a qualidade do código e a eficiência do desenvolvimento de software.

  3. Experimento - CI/CD em Ação Demonstração de como os testes se encaixam em um pipeline de CI/CD. Os alunos verão um pipeline de CI/CD em ação, onde o código é automaticamente testado e implantado.

Materiais Necessários

  • Computadores com Python instalado
  • Acesso à Internet para pesquisas adicionais e instalação de ferramentas de teste Python
  • IDE de Python (como PyCharm, Jupyter Notebook, etc.)
  • Conta no GitHub para o experimento de CI/CD
  • Ferramenta de CI/CD (como Jenkins, CircleCI, etc.) para o experimento de CI/CD

Retorno

<25 - 30 minutos>

Revisão e Reflexão

<10 - 15 minutos>

Após a conclusão das atividades práticas e do experimento, os alunos serão convidados a compartilhar suas experiências, as dificuldades encontradas e como conseguiram superá-las. Esta é uma oportunidade para esclarecer dúvidas que possam ter surgido durante a prática.

Através desta discussão, será feita uma conexão com a teoria apresentada no início da aula, reforçando os conceitos e práticas de Testes em Python, TDD e CI/CD.

Feedback Instantâneo

<5 - 10 minutos>

Cada aluno receberá um pequeno pedaço de papel e será solicitado a responder às seguintes perguntas:

  1. Qual foi o conceito mais importante aprendido hoje?
  2. Quais questões ainda não foram respondidas?

Eles terão um minuto para escrever suas respostas. As respostas serão recolhidas e revisadas para ajudar a planejar as próximas aulas e abordar quaisquer áreas de dificuldade.

Trabalho de Casa

<10 - 15 minutos>

Os alunos receberão uma lista de exercícios sobre Testes em Python para resolverem em casa. Os exercícios irão abranger a escrita de testes unitários, a aplicação de TDD e a utilização de ferramentas de teste Python. Isso reforçará o que foi aprendido na aula e ajudará os alunos a se familiarizarem com as práticas de teste em Python.

Os alunos também serão incentivados a explorar mais sobre CI/CD e como configurar um pipeline de CI/CD para um projeto Python. Podem-se usar ferramentas gratuitas online para isso, como o GitHub Actions ou o Travis CI.

Na próxima aula, alguns desses exercícios serão revisados e as dúvidas serão esclarecidas.

Conclusão

<10 - 15 minutos>

Para concluir a aula, será feito um resumo dos principais pontos abordados durante a aula. Este resumo incluirá uma revisão de conceitos fundamentais de testes de software, a importância dos testes para a qualidade do software, a introdução a diferentes tipos de testes e ferramentas de teste Python, a aplicação prática da escrita de testes, a introdução ao Test-Driven Development (TDD), e a relação entre testes e Continuous Integration/Continuous Deployment (CI/CD).

Será destacado como a aula conectou a teoria dos testes de software à prática de escrita de testes e à aplicação de testes em um pipeline de CI/CD. Isso ajuda a consolidar o entendimento dos alunos sobre a relevância dos testes em Python na prática do desenvolvimento de software.

Para aprofundar o entendimento dos alunos sobre o assunto da aula, serão sugeridos materiais adicionais para leitura e estudo, incluindo artigos online, tutoriais e documentação oficial das ferramentas de teste Python. Os alunos também serão encorajados a explorar mais sobre TDD e CI/CD, e a praticar a escrita de testes para seus próprios projetos de Python.

Por fim, será destacado como os testes em Python são uma parte fundamental do desenvolvimento de software de qualidade. Os testes ajudam a garantir que o software funciona como esperado, aumentam a confiabilidade do software e facilitam a manutenção e a evolução do software ao longo do tempo. Portanto, as habilidades de teste em Python são essenciais para qualquer desenvolvedor Python e são altamente valorizadas no mercado de trabalho.

Comentários mais recentes
Nenhum comentário ainda. Seja o primeiro a comentar!
Iara Tip

DICA DA IARA

Você tem dificuldade de prender a atenção dos alunos em sala?

Na plataforma da Teachy você encontra uma série de materiais sobre esse tema para deixar a sua aula mais dinâmica! Jogos, slides, atividades, vídeos e muito mais!

Quem viu esse plano de aula também gostou de...

Community img

Faça parte de uma comunidade de professores direto no seu WhatsApp

Conecte-se com outros professores, receba e compartilhe materiais, dicas, treinamentos, e muito mais!

Teachy logo

Reinventamos a vida dos professores com inteligência artificial

Instagram LogoLinkedIn LogoTwitter LogoYoutube Logo
BR flagUS flagES flagIN flagID flagPH flagVN flagID flagID flag
FR flagMY flagur flagja flagko flagde flagbn flagID flagID flagID flag

2025 - Todos os direitos reservados

Termos de usoAviso de PrivacidadeAviso de Cookies