Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

Testing (Testes)

Bem-vindo ao Módulo 22!

Visão Geral

Testes automatizados são uma das principais práticas da Engenharia de Software moderna. Eles permitem verificar automaticamente se uma aplicação continua funcionando corretamente após alterações no código, reduzindo a ocorrência de bugs, aumentando a confiabilidade do sistema e facilitando refatorações e evoluções do projeto.

Ao longo do ciclo de desenvolvimento, diferentes tipos de testes podem ser aplicados para validar componentes isolados, integrações entre módulos ou o comportamento completo de uma aplicação. Para isso, o ecossistema Python oferece diversas ferramentas, cada uma voltada para necessidades específicas, como escrita de testes, validação de exemplos presentes na documentação, execução em múltiplos ambientes e automação de processos de qualidade.

Neste módulo serão estudadas as principais ferramentas de testes do ecossistema Python, compreendendo suas características, diferenças, vantagens e aplicações em projetos profissionais.

Objetivos do Módulo

Ao concluir este módulo, você será capaz de:

  • compreender a importância dos testes automatizados;
  • escrever testes unitários utilizando diferentes frameworks;
  • validar exemplos presentes na documentação;
  • automatizar a execução de testes;
  • testar aplicações em múltiplas versões do Python;
  • organizar suítes de testes profissionais;
  • integrar testes a pipelines de Integração Contínua (CI).

Por que Testar?

Testes automatizados ajudam a:

  • detectar erros rapidamente;
  • evitar regressões;
  • validar regras de negócio;
  • facilitar refatorações;
  • documentar o comportamento esperado do sistema;
  • aumentar a confiabilidade do software;
  • reduzir custos de manutenção.

Em projetos profissionais, testes são parte essencial do processo de desenvolvimento e entrega contínua.

Tipos de Ferramentas de Teste

As ferramentas estudadas neste módulo possuem objetivos diferentes.

Algumas são responsáveis pela criação e execução dos testes, enquanto outras automatizam ambientes ou validam exemplos presentes na documentação.

Durante o módulo será possível compreender como elas se complementam em um fluxo moderno de desenvolvimento.

Organização do Módulo

Este módulo é composto pelos seguintes tópicos:

  1. Pytest
  2. Doctest
  3. unittest (PyUnit)
  4. Tox

Como as Ferramentas se Complementam

Embora todas estejam relacionadas à qualidade de software, elas possuem responsabilidades diferentes.

                     Testes Automatizados
                             │
        ┌────────────────────┼────────────────────┐
        │                    │                    │
        ▼                    ▼                    ▼
   unittest             Pytest              Doctest
(Testes unitários)  (Framework moderno) (Testes da documentação)

                             │
                             ▼
                           Tox
      (Automação de ambientes e execução dos testes)

                             │
                             ▼
                           CI/CD

Cada ferramenta ocupa um papel específico dentro do processo de desenvolvimento.

Fluxo de Desenvolvimento

Um fluxo comum em projetos Python é:

Desenvolvimento

↓

Escrita dos Testes

↓

Execução Local

↓

Validação com Pytest ou unittest

↓

Execução em múltiplos ambientes com Tox

↓

Pipeline de CI

↓

Deploy

Esse fluxo reduz significativamente a probabilidade de erros chegarem ao ambiente de produção.

Habilidades Desenvolvidas

Ao concluir este módulo, você será capaz de:

  • criar testes automatizados profissionais;
  • utilizar Pytest e unittest;
  • validar documentação utilizando Doctest;
  • automatizar testes em múltiplos ambientes utilizando Tox;
  • integrar testes ao fluxo completo de desenvolvimento.

Casos de Uso no Mercado

  • Desenvolvimento Web
  • Bibliotecas Python
  • Desenvolvimento Corporativo
  • Projetos Open Source
  • Integração Contínua (CI)

Pré-requisitos

Antes de iniciar este módulo, recomenda-se conhecer:

  • sintaxe da linguagem Python;
  • funções;
  • classes e orientação a objetos;
  • exceções;
  • módulos e pacotes;
  • ambientes virtuais;
  • gerenciadores de dependências.

O que vem depois?

Após dominar os testes automatizados, você estará preparado para estudar tópicos mais avançados relacionados à qualidade de software, como análise estática de código, cobertura de testes, testes de integração, testes de desempenho, testes de segurança, automação de pipelines DevOps e estratégias avançadas de garantia da qualidade (QA).

Resumo

O módulo Testing apresenta as principais ferramentas de testes do ecossistema Python. Você aprenderá a desenvolver testes automatizados com Pytest e unittest (PyUnit), validar exemplos utilizando Doctest e automatizar a execução de testes em múltiplos ambientes com Tox. Ao final do módulo, será capaz de construir uma estratégia completa de testes, integrando qualidade, automação e confiabilidade ao ciclo de desenvolvimento de aplicações Python.