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 Docker Kubernetes Istio

40 horas

Curso Cloud-Native Infrastructure with Azure

32 horas

Curso CI CD Strategies with Docker & Kubernetes

24 horas

Curso Kubernetes for Full-Stack Developer

32 horas Curso Pratico

Curso Zadara Certified Cloud Practitioner

24 horas