TDD Design Evolutivo

TDD Design Evolutivo

Introdução Kent Beck

software

avião

Não é feito assim

dobrando

fazendo voar para longe

planta

valiosa

produtiva

tem que ser

alimentada

podada

ceifada

fertilizada

regada

Prefácio

Cultivar

celulas biologicas enviando msg

Guiado

codigo melhor

explica intenção

ferramenta d apoio

aprender a desenv incremental

escutar os testes

deixar os testes guiar desenv

Susuushs

Qual a finalidade do TDD

Dev como processo aprendizado

ninguem fez antes

tecnologia

dominio

envolvidos

r

todos sabem que havera mudanças, apenas não sabem quais.Eles precisam de um processo que os ajudará a lidar com as incertezas à medida que suas experiencias aumentam

Desenvolvedores

r

muitas vezes não conhecem todas as tecnologias usadas

aprendem durante desenv

muitas possibilidades

novos app forçam por caminhos desconhecidos

clintes/usuarios

antes

convenções

experincias

depois

negociar

codificar processos

O retorno é a ferramenta fundamental

r

quanto mais rapido conseguirmos o retorno em relação a qualquer aspcto do projeto melhor

cilclos repetidos

expor resultado

descobrir erros

corrigir errors

concepções equivocadas

Praticas que encorajam mudanças

r

se escrevermos testes durante todo o processo de desenvolvimento, podemos montar uma rede de segurança de testes de regressão automatizados que nos dá confiança para fazer alterações

tecnicas

testes constantes

r

identica erros na regressão

codigo simples

r

dev perde mais tempo lendo do q escrevendo

problemas

testes

automatizados visto trabalho irreal

trabalho enfadonho

custoso

codigo simples

simplorio

frescura

solução

tdd

testes antes

não verifica qualidade

garante qualidade

separar projeto logico do fisico

Quadro Geral

Iniciar por testes de unidade

Erros basicos

Expressções Boleanas
incorretas

Erros afins

Como Saber onde começar?
Como saber quando parar?

Testes de Aceitação

Testes de Unidade

Loop do Teste Externo e Interno

Como Saber onde começar?

Como Saber onde começar?

Qualidade

Externa

Necessidades Clientes/Usuarios

Funcional/Confiavel/Disponivel

Interna

Necessidade Dev/Adm

facil entender/alterar

Projeto

Expor cedo as incerteza

Problemas no inicio

aumento no stress

r

time q não ta acostumado com com dev incremental

Stakeholders reagem mau
instabilidade no inicio

Inicio caos e fim calmo

Compotamento e não metodos
devem ser testados

Escutar os testes

Niveis de Testes

Aceitacação

Integração

Unidade