Curso Acceptance & Test-Driven Development

  • DevOps | CI | CD | Kubernetes | Web3

Curso Acceptance & Test-Driven Development

16 horas
Visão Geral

O curso "Acceptance & Test-Driven Development" é um treinamento prático que capacita os participantes a implementar duas abordagens poderosas de desenvolvimento de software: Test-Driven Development (TDD), focado em escrever testes antes do código, e Acceptance Test-Driven Development (ATDD), que alinha os requisitos de aceitação com testes automatizados. Este curso explora como essas práticas melhoram a qualidade do código, reduzem defeitos e facilitam a colaboração entre desenvolvedores, testadores e partes interessadas. Os participantes aprenderão a criar testes unitários e de aceitação, usar ferramentas populares e aplicar esses conceitos em projetos reais. Estruturado em 2 dias, com 16 horas totais, o curso combina teoria, demonstrações e exercícios práticos para promover um desenvolvimento de software mais confiável e orientado a resultados.

Objetivo

Após realizar este Acceptance & Test-Driven Development, você será capaz de:

  • Aplicar o ciclo TDD (Red-Green-Refactor) para escrever código guiado por testes unitários.
  • Criar testes de aceitação automatizados baseados em requisitos com ATDD.
  • Utilizar ferramentas de teste populares (ex.: xUnit, SpecFlow) em projetos reais.
  • Colaborar com equipes para definir critérios de aceitação claros e testáveis.
  • Implementar boas práticas para manter testes sustentáveis e escaláveis.
Publico Alvo
  • Desenvolvedores de software que desejam melhorar a qualidade do código com testes automatizados.
  • Engenheiros de qualidade (QA) interessados em colaborar na definição de critérios de aceitação.
  • Gerentes de produto ou analistas de negócios buscando alinhar requisitos com desenvolvimento.
  • Arquitetos de software explorando práticas ágeis para equipes técnicas.
  • Estudantes ou entusiastas de programação que querem aprender TDD e ATDD na prática.
Pre-Requisitos
  • Conhecimento básico de programação em uma linguagem como C#, Java, Python ou similar.
  • Familiaridade com conceitos de desenvolvimento de software (ex.: funções, classes, debugging).
  • Experiência introdutória com testes manuais ou automatizados é desejável, mas não obrigatória.
  • Noções de metodologias ágeis (ex.: Scrum, Kanban) são úteis, mas não essenciais.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Dia 1 – Módulo 1: Introdução ao TDD e ATDD

  • Tópicos:
    1. O que é Test-Driven Development (TDD): definição, princípios e benefícios.
    2. O que é Acceptance Test-Driven Development (ATDD): alinhamento de requisitos e testes.
    3. Diferenças entre TDD e ATDD: escopo, foco e colaboração.
    4. Benefícios: qualidade de código, redução de bugs, feedback rápido.
    5. Ciclo TDD: Red (teste falha), Green (teste passa), Refactor (melhoria do código).
  • Atividade Prática: Escrever um teste unitário simples que falha e corrigi-lo com TDD.

Dia 1 – Módulo 2: Fundamentos de Test-Driven Development

  • Tópicos:
    1. Configuração de um framework de testes (ex.: xUnit, JUnit).
    2. Escrevendo testes unitários: estrutura (Arrange-Act-Assert), assertions e mocks.
    3. Aplicação do ciclo TDD: exemplos práticos em uma funcionalidade simples.
    4. Refatoração segura: como melhorar o código sem quebrar os testes.
    5. Testes de borda: cobertura de cenários extremos e falhas esperadas.
  • Atividade Prática: Desenvolver uma função de cálculo (ex.: soma de lista) usando TDD.

Dia 1 – Módulo 3: Introdução ao ATDD e Critérios de Aceitação

  • Tópicos:
    1. Definindo critérios de aceitação: colaboração entre desenvolvedores e stakeholders.
    2. Formato Given-When-Then: escrita de cenários testáveis.
    3. Ferramentas de ATDD: visão geral de SpecFlow, Cucumber ou similares.
    4. Integração com testes automatizados: do requisito ao código.
  • Atividade Prática: Escrever um critério de aceitação em Given-When-Then para um cenário simples (ex.: login de usuário).

Dia 2 – Módulo 4: Prática de ATDD com Ferramentas

  • Tópicos:
    1. Configuração de uma ferramenta ATDD (ex.: SpecFlow ou Cucumber).
    2. Mapeamento de cenários: ligação de Given-When-Then ao código de teste.
    3. Automação de testes de aceitação: execução e validação de resultados.
    4. Integração com TDD: uso de testes unitários para suportar testes de aceitação.
    5. Depuração: resolução de falhas em cenários de aceitação.
  • Atividade Prática: Implementar um teste de aceitação automatizado para um fluxo de login usando SpecFlow ou Cucumber.

Dia 2 – Módulo 5: Boas Práticas e Manutenção

  • Tópicos:
    1. Boas práticas em TDD: testes pequenos, rápidos e independentes.
    2. Boas práticas em ATDD: clareza nos critérios, foco no comportamento do usuário.
    3. Manutenção de testes: refatoração, cobertura e prevenção de fragilidade.
    4. Integração com CI/CD: execução automática de testes em pipelines.
    5. Próximos passos: Behavior-Driven Development (BDD) e testes avançados.
  • Atividade Prática: Refatorar um conjunto de testes TDD e ATDD para melhorar legibilidade e desempenho.
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Apache NiFi Advanced DataFlow Engineering

24 horas

Curso Real-Time Data Pipelines

24 horas