Logo do curso
Curso

Python:

testes automatizados e qualidade de código

Quero estudar na alura

14h

Para conclusão

26

Pessoas nesse curso

Certificado

De participação

Introdução_

O que você aprenderá_

  • Implemente testes de unidade, integração e aceitação utilizando PyTest, unittest e pytest-cov.
  • Aplique fixtures e mocks para isolar componentes e simular interações externas.
  • Parametrize testes para cobrir múltiplos cenários de forma eficiente e legível.
  • Monitore métricas de cobertura, complexidade e manutenibilidade para manter a qualidade do código.
  • Organize e padronize o código seguindo o PEP 8 e boas práticas de programação.
  • Automatize a execução de testes e a análise de qualidade com GitHub Actions e integração contínua.

Público alvo_

Destinado a profissionais, estudantes e entusiastas que desejam aprimorar suas habilidades no desenvolvimento em Python, com ênfase na implementação de testes automatizados, garantia de qualidade de código e integração contínua.

Danilo de Souza Miguel

github

linkedin

Mestre em Ciências com ênfase em Engenharia da Computação pela USP, onde curso o doutorado. Bacharel em Ciência da Computação. Atuo há mais de 10 anos como Engenheiro de Software, com experiência em mobile (Android, React Native), e web (Flask) e (Node), nuvem (AWS), Docker, Kubernetes e bancos de dados. Também atuei como Líder Técnico, e Pesquisador e sou professor universitário, lecionando disciplinas ligadas a programação, enegenharia de software, nuvem, redes e arquitetura de computadores.

Curso atualizado em 13/08/2025

Ementa

  1. Fundamentos de Testes de Software

    • Conceitos de teste de software, níveis e tipos de teste
    • Demostração da estrutura da aplicação utilizada como estudo de caso
    • Clonando a aplicação a partir do repositório GitHub
    • Preparando ambiente: Clonando a aplicação a partir do repositório GitHub
    • Configurando o banco de dados mongoDB
    • Preparando ambiente: Configurando o banco de dados mongoDB
    • Executando a aplicação
    • Para saber mais: Executando a aplicação
    • Iniciando testes unitários com o framework pytest
    • Criando diferentes casos de teste com o framework pytest
    • Revisando a aula
    • Testando a integração no Cinetopia
    • Garantindo a integridade dos dados no aplicativo Fokus
    • Garantindo a qualidade do aplicativo Cinetopia
    • Faça como eu fiz: Criando casos de teste, user-service/model/user_model.py
    • Desafio: Criando casos de teste, product-service/model/product_model.py
  2. Testes de Qualidade de software

    • Cobertura de testes com o plugin pytest-cov
    • Para saber mais: Cobertura de testes com o plugin pytest-cov, principais conceitos
    • Executando testes de cobertura com o plugin pytest-cov
    • Centralizando e automatizando a execução dos testes com pytest.ini
    • Para saber mais: Centralizando e automatizando a execução dos testes com pytest.ini
    • Entendendo o pylint, análise de qualidade do código
    • Para saber mais: O que é pylint, análise de qualidade do código
    • Analisando o código com pylint
    • Explorando a complexidade ciclomática
    • Para saber mais: O que é radon, análise da complexidade do código
    • Análise da complexidade do código com radon
    • Garantindo a qualidade dos contatos na Indexa
    • Gerenciando a complexidade de rotas no CodeChella
    • Garantindo a qualidade das receitas no Cookin'UP
    • Desafio: Análise da qualidade do código do microsserviço user-service
  3. Testes com múltiplas entradas e simulação

    • Explorando o uso de mocks
    • Para saber mais: Entendendo mais sobre mock
    • Criando diferentes casos de teste com unittest.mock
    • Entendendo o Pytest.mark.parametrize
    • Para saber mais: pytest.mark.parametrize, o que é, por que e quando utilizar
    • Criando testes parametrizados com o @pytest.mark.parametrize
    • Análise dos resultados da aplicação do @pytest.mark.parametrize
    • Simulando interações na plataforma Runner Circle
    • Otimizando testes de funcionalidades na loja online de roupas
    • Faça como eu fiz: Criando testes parametrizados, user-service/model/user_model.py
    • Faça como eu fiz: Criando mock para teste, user-service/config/database.py
    • Desafio: Criando testes parametrizados, product-service/model/product_model.py
  4. Preparação e execução de testes

    • Conceitos de pytest.mark.usefixtures
    • Para saber mais: Conceitos de pytest.mark.usefixtures
    • Configurando fixture global com conftest.py
    • Criando caso de teste e analisando a utlização da fixture
    • Explorando o unittest
    • Para saber mais: Explorando o Unittest
    • Criando casos de teste com unittest
    • Preparando o ambiente de teste para novos pratos no Serenatto
    • Testando a funcionalidade de compartilhamento no Cookin'UP
    • Implementando testes unitários para funcionalidades de e-commerce
    • Faça como eu fiz: Configurando fixture global, user-service/config/database.py
    • Desafio: Criando um caso de teste com Unittest user-service/config/database.py
  5. Testes de integração

    • Avaliando testes de integração
    • Criando arquivo conftest.py
    • Criando casos de teste
    • Executando testes
    • Garantindo a integração de microservices no Cookin'UP
    • Testando a comunicação entre APIs no Cookin'UP
    • Faça como eu fiz: Alteração do arquivo conftest.py
    • Desafio: Criação de mais casos de teste
  6. Testes automatizados e Integração Contínua

    • Integração Contínua e Entrega Contínua
    • Para saber mais: Conceitos de CI/CD – Integração Contínua e Entrega Contínua
    • Criando pipelines e workflows com GitHub Actions
    • Para saber mais: Conceitos de GitHub actions, pipeline e workflows
    • Adicionando mais testes ao pipeline
    • Automatizando a entrega de produtos no Gatito Petshop
    • Automatizando testes para o festival CodeChella
    • Desafio: Adicionando e salvando relatórios

Descubra se esse curso é pra você! Leia as primeiras aulas

Comece essa formação agora mesmo e capacite-se para seu próximo projeto!

Conheça os planos
Escola

Programação

Mergulhe no universo back-end. Programe nas principais plataformas e linguagens, como Python Node.JS, PHP, Java e .NET. Crie sistemas web e desenhe a arquitetura de soluções inovadoras, com código e boas práticas.

Conheça a escola

Faça parte da nossa comunidade no discord!

Troque conhecimentos com a comunidade da Alura

Escolha a duração do seu plano

Conheça os Planos para Empresas