Curso TDD Test-Driven Development Desenvolvimento Orientado a Testes

  • DevOps | CI | CD | Kubernetes | Web3

Curso TDD Test-Driven Development Desenvolvimento Orientado a Testes

24 horas
Visão Geral

O curso TDD – Test-Driven Development (Desenvolvimento Orientado a Testes) apresenta os conceitos, princípios, práticas e técnicas necessárias para aplicar o desenvolvimento orientado a testes no ciclo de desenvolvimento de software.

O treinamento aborda a utilização de testes automatizados como parte fundamental do processo de desenvolvimento, explorando o ciclo Red-Green-Refactor, criação de testes unitários, definição de comportamentos esperados, refatoração segura, isolamento de dependências, mocks e stubs, cobertura de testes e integração do TDD às práticas modernas de engenharia de software.

A abordagem é predominantemente prática, permitindo aos participantes desenvolver funcionalidades a partir dos testes e compreender como o TDD pode contribuir para a qualidade, manutenibilidade, confiabilidade e evolução dos sistemas.

Objetivo

Após realizar este curso TDD – Test-Driven Development – Desenvolvimento Orientado a Testes, você será capaz de:

  • Compreender os fundamentos, princípios e benefícios do TDD
  • Aplicar o ciclo Red-Green-Refactor
  • Escrever testes antes da implementação do código
  • Criar testes unitários eficazes
  • Utilizar testes para orientar o design do software
  • Identificar e isolar dependências
  • Utilizar mocks, stubs e outras técnicas de test double
  • Refatorar código mantendo a segurança proporcionada pelos testes
  • Avaliar cobertura e qualidade dos testes
  • Identificar problemas comuns na adoção do TDD
  • Integrar TDD ao processo de desenvolvimento de software
  • Desenvolver código mais testável, modular e sustentável
  • Aplicar boas práticas de TDD em projetos reais
Publico Alvo
  • Desenvolvedores de software
  • Engenheiros de software
  • Analistas de sistemas
  • Arquitetos de software
  • Profissionais de Quality Assurance
  • Engenheiros de testes
  • Líderes técnicos
  • Profissionais envolvidos com desenvolvimento e manutenção de sistemas
Pre-Requisitos
  • Conhecimentos básicos de lógica de programação
  • Conhecimentos de desenvolvimento de software
  • Experiência básica com pelo menos uma linguagem de programação
  • Conhecimentos básicos sobre testes de software são recomendados
  • Familiaridade com controle de versão é desejável
Materiais
Inglês/Português + Exercícios + Lab Pratico
Conteúdo Programatico

Módulo 1 – Fundamentos de Test-Driven Development

  • Conceitos de TDD
  • Evolução das práticas de desenvolvimento orientado a testes
  • TDD x testes tradicionais
  • Benefícios e limitações
  • Princípios fundamentais
  • TDD e qualidade de software
  • TDD e engenharia de software

Módulo 2 – O Ciclo Red-Green-Refactor

  • Conceito do ciclo TDD
  • Escrevendo o primeiro teste
  • Red: teste inicialmente falhando
  • Green: implementação mínima
  • Refactor: melhoria do código
  • Pequenos ciclos de desenvolvimento
  • Feedback rápido
  • Evolução incremental da implementação

Módulo 3 – Testes Unitários

  • Conceitos de testes unitários
  • Estrutura de um teste
  • Arrange, Act, Assert
  • Testes positivos e negativos
  • Testes de exceções
  • Testes parametrizados
  • Organização dos testes
  • Boas práticas para testes unitários

Módulo 4 – TDD e Design de Software

  • Testabilidade como característica de design
  • Baixo acoplamento
  • Alta coesão
  • Separação de responsabilidades
  • Dependency Injection
  • Interfaces e abstrações
  • TDD como ferramenta de design
  • Evolução incremental da arquitetura

Módulo 5 – Test Doubles

  • Conceito de Test Doubles
  • Mocks
  • Stubs
  • Fakes
  • Spies
  • Isolamento de dependências
  • Quando utilizar cada técnica
  • Problemas decorrentes do excesso de mocks

Módulo 6 – Refatoração Orientada por Testes

  • Conceito de refatoração
  • Identificação de code smells
  • Refatoração segura
  • Preservação do comportamento
  • Simplificação de código
  • Melhoria de legibilidade
  • Evolução contínua do design

Módulo 7 – TDD na Prática

  • Desenvolvimento incremental de uma funcionalidade
  • Definição dos testes
  • Implementação mínima
  • Refatoração
  • Tratamento de cenários alternativos
  • Evolução da suíte de testes
  • Exercícios práticos

Módulo 8 – TDD em Projetos Reais

  • Integração do TDD ao ciclo de desenvolvimento
  • TDD e integração contínua
  • TDD e pipelines de CI/CD
  • Cobertura de testes
  • Manutenção da suíte de testes
  • Principais dificuldades de adoção
  • Estratégias para implantação do TDD nas equipes
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Databricks Advanced Engineering AI ML and Data Products Nivel Intermediario Avancado

32 horas

Google Professional DevOps Engineer Advanced Monitoring & Incident Response

32 horas Curso Pratico

Curso Google Professional DevOps Engineer CI/CD Techniques & Security Practices

32 horas Curso Pratico

Curso Site Reliability Engineering SRE Improving Service

32 horas Curso Pratico

Curso SQL For Data Analysis Advanced Techniques for Transforming Data into Insights

40 horas