Além do TDD... 
Por Leonardo Eloy
Esta é Fernanda. Ela ganha a vida testando software.
Fernanda costuma levantar os detalhas dos requisitos com 
o Product Owner e traçar o seu roteiro de testes.
Após longas reuniões, Fernanda compreendeu as user stories e 
criou o seu roteiro de testes.
User Stories Cenários 
Realizar baixa de depósito • Realizar baixa (happy day) 
• Realizar baixa com depósito inválido 
Incluir novo cliente no SERASA • Incluir cliente (happy day) 
• Incluir cliente inativo 
• Incluir cliente menor de idade 
Resolver o conflito Israel-Palestina • Bla bla bla 
• Ble ble ble
Gustavo, um desenvolvedor esperto, utiliza o roteiro de testes de 
Fernanda para implementar os requisitos.
Gustavo desenvolve todo o sistema utilizando os cenários que 
Fernanda projetou. Uma excelente abordagem!
A essência do TDD 
Criação de 
Massa de Testes Isolar Dependências 
Dados na Tela Parâmetros do 
Método 
Validar se houve 
erro 
Assertions
ATDD vs. TDD
Gustavo faz o trabalho dele muito bem, mas Fernanda, 
ávida testadora, consegue sempre quebrar o sistema 
com testes exploratórios.
Após encontrar uma falha, Gustavo cria um novo teste 
Para reproduzir o erro. Somente após isso, ele 
prossegue com a correção.
Porém, entrega após entrega, Fernanda ainda 
consegue quebrar o sistema.
Gustavo andou pesquisando o que está errado neste 
ciclo.
Ele percebeu que Fernanda costuma entrar 
com valores aleatórios em diversas campos, fazendo um 
grande teste funcional e de integração entre os 
componentes.
Gustavo percebeu que poderia tentar imitar o 
comportamento de Fernanda para alguns dos 
componentes, replicando os bugs que ela encontrava. 
Só que começou a fazer isso de forma automatizada 
em seus métodos.
Após pesquisar vastamente no Google, Gustavo 
conheceu 3 técnicas novas de como testar seu sistema.
Testes de Comportamento !!!
Testes de Comportamento 
Funcionalidade: Realizar Inscrição em Curso 
A fim de melhorar minhas capacidades técnicas 
Como um aluno 
Eu desejo realizar o cadastro em um curso 
Cenário: Realizar Cadastro em Curso 
Dado que eu esteja página de cadastro de cursos 
Quando eu preencho "Nome" com "Fulano" 
E eu preencho "Email" com "blabla@bla.com" 
E eu seleciono "CSD" em "Curso" 
E eu seleciono "Transferência" em "Forma de Pagamento" 
E eu pressiono o botao "Realizar Inscrição" 
Então eu quero ver "Seu numero de inscricao eh 1!"
Testes de Mutação !!!
Testes de Mutação 
if (a == b && a != z) { 
// algo 
} 
if (a != b || a == z) { 
// algo 
}
Testes de Propriedade !!!
Testes de Propriedade 
Maior de Idade = (n >= 18) 
Limite Percentual = (n >= 0 && n <= 100)
Após explicar tudo isso a Fernanda, 
ela ficou com uma dúvida. 
Se o Gustavo tem a capacidade de automatizar isso tudo em 
relação ao código, será que é possível fazer estas abordagens 
com a interface de forma funcional?
Cuma?
Agora, com novas habilidades, Fernanda participa de 
grupos de discussão, cursos e eventos mostrando como é 
melhor sair um pouco da zona de conforto e 
ser dona do próprio nariz!
Obrigado! 
leonardo.eloy@gotoagile.com.br

Além do TDD...

  • 1.
    Além do TDD... Por Leonardo Eloy
  • 2.
    Esta é Fernanda.Ela ganha a vida testando software.
  • 3.
    Fernanda costuma levantaros detalhas dos requisitos com o Product Owner e traçar o seu roteiro de testes.
  • 4.
    Após longas reuniões,Fernanda compreendeu as user stories e criou o seu roteiro de testes.
  • 5.
    User Stories Cenários Realizar baixa de depósito • Realizar baixa (happy day) • Realizar baixa com depósito inválido Incluir novo cliente no SERASA • Incluir cliente (happy day) • Incluir cliente inativo • Incluir cliente menor de idade Resolver o conflito Israel-Palestina • Bla bla bla • Ble ble ble
  • 6.
    Gustavo, um desenvolvedoresperto, utiliza o roteiro de testes de Fernanda para implementar os requisitos.
  • 7.
    Gustavo desenvolve todoo sistema utilizando os cenários que Fernanda projetou. Uma excelente abordagem!
  • 8.
    A essência doTDD Criação de Massa de Testes Isolar Dependências Dados na Tela Parâmetros do Método Validar se houve erro Assertions
  • 9.
  • 10.
    Gustavo faz otrabalho dele muito bem, mas Fernanda, ávida testadora, consegue sempre quebrar o sistema com testes exploratórios.
  • 11.
    Após encontrar umafalha, Gustavo cria um novo teste Para reproduzir o erro. Somente após isso, ele prossegue com a correção.
  • 12.
    Porém, entrega apósentrega, Fernanda ainda consegue quebrar o sistema.
  • 13.
    Gustavo andou pesquisandoo que está errado neste ciclo.
  • 14.
    Ele percebeu queFernanda costuma entrar com valores aleatórios em diversas campos, fazendo um grande teste funcional e de integração entre os componentes.
  • 15.
    Gustavo percebeu quepoderia tentar imitar o comportamento de Fernanda para alguns dos componentes, replicando os bugs que ela encontrava. Só que começou a fazer isso de forma automatizada em seus métodos.
  • 16.
    Após pesquisar vastamenteno Google, Gustavo conheceu 3 técnicas novas de como testar seu sistema.
  • 17.
  • 18.
    Testes de Comportamento Funcionalidade: Realizar Inscrição em Curso A fim de melhorar minhas capacidades técnicas Como um aluno Eu desejo realizar o cadastro em um curso Cenário: Realizar Cadastro em Curso Dado que eu esteja página de cadastro de cursos Quando eu preencho "Nome" com "Fulano" E eu preencho "Email" com "blabla@bla.com" E eu seleciono "CSD" em "Curso" E eu seleciono "Transferência" em "Forma de Pagamento" E eu pressiono o botao "Realizar Inscrição" Então eu quero ver "Seu numero de inscricao eh 1!"
  • 19.
  • 20.
    Testes de Mutação if (a == b && a != z) { // algo } if (a != b || a == z) { // algo }
  • 21.
  • 22.
    Testes de Propriedade Maior de Idade = (n >= 18) Limite Percentual = (n >= 0 && n <= 100)
  • 23.
    Após explicar tudoisso a Fernanda, ela ficou com uma dúvida. Se o Gustavo tem a capacidade de automatizar isso tudo em relação ao código, será que é possível fazer estas abordagens com a interface de forma funcional?
  • 24.
  • 25.
    Agora, com novashabilidades, Fernanda participa de grupos de discussão, cursos e eventos mostrando como é melhor sair um pouco da zona de conforto e ser dona do próprio nariz!
  • 26.