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 Kubernetes for Full-Stack Developer

32 horas Curso Pratico

Curso OpenShift Docker & Kubernetes

40 horas

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

40 horas

Curso Application Performance Monitoring APM

24 horas