Identificação
Resumo
A aula 7 dá um passo além do TDD tradicional e ensina como utilizá-mo como Guardrail para Inteligência Artificial. A aula inicia debatendo a importância da modelagem dinâmica e estática. Em seguida, os alunos aprendem como o TDD (C# backend) no padrão AAA transforma essa modelagem em regras imutáveis.
Com as "travas" dos testes (Red) garantindo os contratos arquiteturais, instalamos o AIOX (npx aiox-core@latest install). A IA (via skills de QA e Dev) assume a codificação da implementação (Green/Refactor), acelerando a produtividade sem quebrar a aplicação e mantendo a arquitetura SOA intacta.
Objetivos de aprendizagem
- OA-1Analisar a importância da modelagem dinâmica e estática antes de começar a codificação de backend.
- OA-2Relacionar o TDD ao padrão AAA como um *guardrail* para orientar a geração de código por IA.
- OA-3Instalar e utilizar o AIOX via CLI (
npx aiox-core@latest install) para avaliar a saúde do projeto. - OA-4Aplicar o ciclo TDD-IA: Humano escreve o teste vermelho baseado na modelagem, AIOX-Dev escreve a implementação até a barra ficar verde.
- OA-5Demonstrar que a união de TDD estrito e IA garante o respeito aos contratos da arquitetura SOA de forma rápida e segura.
Pré-requisitos
- Aulas 1 a 6 concluídas: API C# do projeto rodando localmente.
- Pacotes
xunit,Moqecoverlet.collectoradicionados ao projeto de testes —dotnet testverde com pelo menos 1 teste exemplo. - Material da Aula 7 lido; vocabulário do dia mapeado (SUT, AAA, Red/Green/Refactor, Regra dos 3, mock vs stub).
Cronograma do dia
📚 Bloco 1 · Autoestudo
10h00 — 12h00Estudo individual orientado pelo material da aula 7.
- Leitura completa do Material da Aula 7 (POO + SOLID + ciclo TDD).
- Garantir que
dotnet testroda verde no projeto (xUnit + Moq + coverlet). - Ler o bliki de TDD do Martin Fowler (~10 min).
- Caderno de bordo: 1 dúvida concreta sobre quando usar mock vs stub.
📚 Leituras sugeridas:
- xUnit · Getting Started (.NET Core) — documentação oficial
- Moq · Quickstart — exemplos canônicos
- Unit testing best practices — Microsoft Learn
- Mocks Aren't Stubs — Martin Fowler
🍴 Intervalo · Almoço
12h00 — 14h00Janela livre.
🎓 Bloco 2 · Instrução PE — Aula em metodologia ativa
14h00 — 16h00Encontro síncrono com o professor especialista.
- 14h00 — 14h15 · Daily.
- 14h15 — 14h55 · Teoria + live coding TDD (40 min).
- 14h55 — 16h00 · Atividade prática em pares (1h05).
🛠️ Bloco 3 · Desenvolvimento do projeto
16h00 — 18h00Janela de trabalho da equipe.
- Continuar a atividade prática se ainda não tiver fechado o MR.
- Refatorar classes de domínio do projeto adicionando testes para cobrir regras de negócio existentes.
- Aumentar cobertura com
coverlet; abrir Merge Requestfeat(tests): score-usuario-tdd.
Detalhamento da instrução PE (14h00 — 16h00)
14h15
DailyDaily de abertura
Cada aluno apresenta em 1 minuto: 1 regra de negócio vital / 1 dúvida sobre AAA / 1 receio sobre usar IA para codar.
14h25
TalkModelagem Dinâmica e Estática
Por que não podemos codar no escuro. A modelagem (diagramas de classe, sequência) é o contrato. Como ela define os comportamentos esperados.
14h35
TalkTDD como Guardrail para IA
A IA é ótima em gerar código, mas pode alucinar lógicas. O padrão AAA (Arrange/Act/Assert) cria o "guardrail". Você codifica a modelagem como teste; a IA é forçada a acertar o alvo.
14h55
CodingLive coding · AIOX na prática
Live: instalar aiox-core. Escrever manualmente o primeiro teste (Red). Rodar a skill QA do AIOX para avaliar a base. Em seguida, usar a skill Dev do AIOX para gerar a classe e fazer o teste passar (Green). O contrato SOA foi preservado magicamente.
15h55
AtivaAtividade prática em pares · CalculadoraScoreUsuario
Em duplas: A dupla foca puramente em criar a suíte de testes xUnit (Red) baseado nos contratos da modelagem. Com os testes criados, delegam ao AIOX a codificação final (Green/Refactor). Commitam as interações e o resultado final no git.
16h00
AtivaSíntese · "a aula 7 me ensinou que..."
Cada aluno escreve 1 frase sobre IA e Testes. Anuncia-se a aula 8: Testes de Integração (PONDERADA) — testar o fluxo inteiro de um endpoint da API.
Estratégias de metodologia ativa
- Live coding como ritual — o professor demonstra a instalação do AIOX e a falha de um teste escrito para proteger o contrato.
- Pareamento IA-Humano — os alunos operam as regras e o AIOX codifica o que falta. O pareamento agora inclui a máquina como parceira (co-pilot/agente).
- Avaliação por fluxo — a entrega mostra que os alunos definiram as bordas seguras primeiro e a ferramenta respeitou.
TDD não é só escrever teste antes. No mundo da IA agente, TDD é escrever a *cerca* (o guardrail) para que o agente não destrua sua arquitetura. O modelo de negócios vira um teste executável.
Recursos e ferramentas
| Categoria | Recurso | Uso |
|---|---|---|
| Slides | slides/slide-lesson-7.html | Exposição na instrução PE |
| Agente / IA | aiox-core (NPM) | Skills de QA e Dev para codificar |
| Linguagem | C# 12 / .NET 8 | Implementação e testes executados pela IA |
| Frameworks | xUnit, Moq | Testes (guardrails) e mocks |
| CLI | dotnet test · npx aiox-core@latest install | Execução e Setup da IA |
| Repositório | GitLab do grupo | Branch feat/score-usuario-aiox + MR |
Verificação de aprendizagem
- CR-1Converteu o contrato da modelagem estática em testes unitários xUnit (Guardrail/Red).
- CR-2Instalou o AIOX via CLI e utilizou a skill de QA com sucesso para avaliar a base.
- CR-3Delegou o ciclo Green/Refactor para a skill Dev do AIOX e alcançou
dotnet testverde. - CR-4Abriu Merge Request
feat(tests): score-usuario-aioxexibindo as conversas com a IA ou o log do AIOX no descritivo do MR.
Par que sair às 16h sem 5 testes verdes + commits Red/Green/Refactor visíveis está em débito técnico para a aula 8 (Testes de Integração ponderada).
Conexão com a aula 8
A aula 8 amplia para Testes de Integração (PONDERADA): você vai testar não 1 classe isolada, mas o fluxo inteiro de um endpoint da API — request HTTP, controller, service, repositório, banco em memória.
- O hábito do AAA continua, mas o "Arrange" agora monta um
WebApplicationFactory. - Mocks dão lugar a fakes de banco (ex.: SQLite em memória).
- A regra "1 commit = 1 fase do ciclo" continua valendo.
Antes das 10h: ler material da aula 8, instalar Microsoft.AspNetCore.Mvc.Testing no projeto de testes e rodar 1 integração de exemplo verde.