1. TDD
1.1. Test Driven Development
1.1.1. Baixo acoplamento
1.1.2. Desenvolvedores realizam
1.1.2.1. Voltado para eles
1.1.3. Refatoração
1.2. CICLO
1.2.1. RED
1.2.1.1. Teste NÃO Passa
1.2.2. GREEN
1.2.2.1. NOVA Funcionalidade
1.2.2.2. Teste que PASSA
1.2.3. REFATORAÇÃO
1.2.4. Próximo teste
1.3. Vantagens
1.3.1. Código melhor elaborado
1.3.2. Baixa sujeição a falhas
1.4. Desvantagens
1.4.1. Requer conhecimento de programação
1.4.2. Apenas desenvolvedores realizam
1.4.3. Se bem realizado
1.4.3.1. Equipe de teste será desnecessária
1.4.4. Mudança de cultura
1.4.4.1. Além de desenvolver terão de testar
2. ATDD
2.1. Acceptance Test Driven Development
3. CONCEITOS
3.1. Menor burocracia
3.1.1. Maior prática
3.2. Maior interação
3.3. Exige boa comunicação
3.4. MANIFESTO ÁGIL
3.4.1. SOFTWARE FUNCIONANDO
3.4.1.1. Documentação abrangente
3.4.2. Indivíduos e Interações
3.4.2.1. Processos e ferramentas
3.4.3. Colaboração com cliente
3.4.3.1. Negociação de contratos
3.4.4. RESPONDER A MUDANÇA
3.4.4.1. Seguir plano estritamente
4. BDD
4.1. Behavior Driven Development
4.1.1. Aceitação
4.1.2. Palavras chave **(GWT)**
4.1.2.1. GIVEN
4.1.2.2. WHEN
4.1.2.3. THEN
4.1.3. Escreve-se estórias
4.1.3.1. Linguagem natural
4.1.3.2. Exemplo
4.1.3.2.1. CENÁRIO (SCENARIO): Tratamento para valor de compra DADO (GIVEN) um valor X QUANDO (WHEN) X >= 30 ... ENTÃO (THEN) exibe a mensagem ... QUANDO (WHEN) X < 30 ... ENTÃO (THEN) ... E (AND) ...
4.1.4. Entende melhor o negócio
4.1.5. Framework BDD
4.1.5.1. http://jbehave.org/
4.2. Vantagens
4.2.1. Voltado ao negócio
4.2.2. Fácil entendimento
4.3. Desvantagens
4.3.1. Requer conhecimento do negócio
4.3.2. Grande participação do cliente
4.3.3. Falta ferramental
4.3.4. Depende da definição de critérios de aceitação
4.3.4.1. Pelo cliente