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 Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h