Curso Acceptance & Test-Driven Development
16 horasVisã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áticoConteúdo Programatico
Dia 1 – Módulo 1: Introdução ao TDD e ATDD
- Tópicos:
- O que é Test-Driven Development (TDD): definição, princípios e benefícios.
- O que é Acceptance Test-Driven Development (ATDD): alinhamento de requisitos e testes.
- Diferenças entre TDD e ATDD: escopo, foco e colaboração.
- Benefícios: qualidade de código, redução de bugs, feedback rápido.
- 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:
- Configuração de um framework de testes (ex.: xUnit, JUnit).
- Escrevendo testes unitários: estrutura (Arrange-Act-Assert), assertions e mocks.
- Aplicação do ciclo TDD: exemplos práticos em uma funcionalidade simples.
- Refatoração segura: como melhorar o código sem quebrar os testes.
- 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:
- Definindo critérios de aceitação: colaboração entre desenvolvedores e stakeholders.
- Formato Given-When-Then: escrita de cenários testáveis.
- Ferramentas de ATDD: visão geral de SpecFlow, Cucumber ou similares.
- 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:
- Configuração de uma ferramenta ATDD (ex.: SpecFlow ou Cucumber).
- Mapeamento de cenários: ligação de Given-When-Then ao código de teste.
- Automação de testes de aceitação: execução e validação de resultados.
- Integração com TDD: uso de testes unitários para suportar testes de aceitação.
- 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:
- Boas práticas em TDD: testes pequenos, rápidos e independentes.
- Boas práticas em ATDD: clareza nos critérios, foco no comportamento do usuário.
- Manutenção de testes: refatoração, cobertura e prevenção de fragilidade.
- Integração com CI/CD: execução automática de testes em pipelines.
- 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.