SlideShare una empresa de Scribd logo
1 de 26
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

Más contenido relacionado

Destacado

02 Esc Ernesto Schargrodsky
02 Esc Ernesto Schargrodsky02 Esc Ernesto Schargrodsky
02 Esc Ernesto Schargrodsky
Cityblog
 
Que esta ocurriendo
Que esta ocurriendoQue esta ocurriendo
Que esta ocurriendo
Nora Cervelo
 
метод реком дошк 2014 2015
метод реком дошк 2014 2015метод реком дошк 2014 2015
метод реком дошк 2014 2015
sansanych86
 
Los óRganos De Los Sentidos
Los óRganos De Los SentidosLos óRganos De Los Sentidos
Los óRganos De Los Sentidos
Epaminondasbis
 
Breu històriadelaquimica
Breu històriadelaquimicaBreu històriadelaquimica
Breu històriadelaquimica
Neus Cortiella
 
Girl power in silicon valley
Girl power in silicon valleyGirl power in silicon valley
Girl power in silicon valley
Sramana Mitra
 
Métodos de traducción
Métodos de traducciónMétodos de traducción
Métodos de traducción
albau
 
AnáLisis ClíNico On Line
AnáLisis ClíNico On LineAnáLisis ClíNico On Line
AnáLisis ClíNico On Line
Airung
 
Firmenpräsentation PIXELMECHANICS | Webproduktion
Firmenpräsentation PIXELMECHANICS | WebproduktionFirmenpräsentation PIXELMECHANICS | Webproduktion
Firmenpräsentation PIXELMECHANICS | Webproduktion
PIXELMECHANICS
 
Teoriadelaobesidad
TeoriadelaobesidadTeoriadelaobesidad
Teoriadelaobesidad
Airung
 

Destacado (20)

02 Esc Ernesto Schargrodsky
02 Esc Ernesto Schargrodsky02 Esc Ernesto Schargrodsky
02 Esc Ernesto Schargrodsky
 
FIEL - INDICE DE PRODUCCION INDUSTRIAL
FIEL - INDICE DE PRODUCCION INDUSTRIALFIEL - INDICE DE PRODUCCION INDUSTRIAL
FIEL - INDICE DE PRODUCCION INDUSTRIAL
 
Que esta ocurriendo
Que esta ocurriendoQue esta ocurriendo
Que esta ocurriendo
 
метод реком дошк 2014 2015
метод реком дошк 2014 2015метод реком дошк 2014 2015
метод реком дошк 2014 2015
 
Los óRganos De Los Sentidos
Los óRganos De Los SentidosLos óRganos De Los Sentidos
Los óRganos De Los Sentidos
 
03 - Fernando Navajas
03 - Fernando Navajas03 - Fernando Navajas
03 - Fernando Navajas
 
Breu històriadelaquimica
Breu històriadelaquimicaBreu històriadelaquimica
Breu històriadelaquimica
 
60 minutos por la tierra | Día de la Tierra
60 minutos por la tierra | Día de la Tierra60 minutos por la tierra | Día de la Tierra
60 minutos por la tierra | Día de la Tierra
 
Girl power in silicon valley
Girl power in silicon valleyGirl power in silicon valley
Girl power in silicon valley
 
Klassika
KlassikaKlassika
Klassika
 
P l u t o sobre la riquesa _valencià
P l u t o  sobre la riquesa _valenciàP l u t o  sobre la riquesa _valencià
P l u t o sobre la riquesa _valencià
 
Economia da construção
Economia da construçãoEconomia da construção
Economia da construção
 
Formacao web 2
Formacao web 2Formacao web 2
Formacao web 2
 
Aha activities-mar
Aha activities-marAha activities-mar
Aha activities-mar
 
Métodos de traducción
Métodos de traducciónMétodos de traducción
Métodos de traducción
 
AnáLisis ClíNico On Line
AnáLisis ClíNico On LineAnáLisis ClíNico On Line
AnáLisis ClíNico On Line
 
Firmenpräsentation PIXELMECHANICS | Webproduktion
Firmenpräsentation PIXELMECHANICS | WebproduktionFirmenpräsentation PIXELMECHANICS | Webproduktion
Firmenpräsentation PIXELMECHANICS | Webproduktion
 
Pitagoras
PitagorasPitagoras
Pitagoras
 
Teoriadelaobesidad
TeoriadelaobesidadTeoriadelaobesidad
Teoriadelaobesidad
 
Social-media-marketing-FIMP-2010-gijon-massimo-burgio-web
Social-media-marketing-FIMP-2010-gijon-massimo-burgio-webSocial-media-marketing-FIMP-2010-gijon-massimo-burgio-web
Social-media-marketing-FIMP-2010-gijon-massimo-burgio-web
 

Similar a Além do TDD

Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste - Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste -
Leonardo Galani
 
Test-driven development & Mocking
Test-driven development & MockingTest-driven development & Mocking
Test-driven development & Mocking
Daniel Tamiosso
 

Similar a Além do TDD (20)

Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste - Tdc2013 - Trilha de Teste -
Tdc2013 - Trilha de Teste -
 
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )
 
Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1Ctai Teste De Software Aula 1
Ctai Teste De Software Aula 1
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
Convergido: TDD + ATDD + BDD + xUnit Patterns + Dependency Injection
Convergido: TDD + ATDD + BDD + xUnit Patterns + Dependency InjectionConvergido: TDD + ATDD + BDD + xUnit Patterns + Dependency Injection
Convergido: TDD + ATDD + BDD + xUnit Patterns + Dependency Injection
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
Oficina de Teste de Usabilidade
Oficina de Teste de UsabilidadeOficina de Teste de Usabilidade
Oficina de Teste de Usabilidade
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Cenários de Testes de Software
Cenários de Testes de SoftwareCenários de Testes de Software
Cenários de Testes de Software
 
Teste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTeste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste você
 
C# 8 e ML.NET
C# 8 e ML.NETC# 8 e ML.NET
C# 8 e ML.NET
 
Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)Minicurso - Teste de software (CACSI 2015)
Minicurso - Teste de software (CACSI 2015)
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Test-driven development & Mocking
Test-driven development & MockingTest-driven development & Mocking
Test-driven development & Mocking
 
Não há agile sem práticas ágeis
Não há agile sem práticas ágeisNão há agile sem práticas ágeis
Não há agile sem práticas ágeis
 
Testes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NETTestes e mocks: Em Visual Studio com .NET
Testes e mocks: Em Visual Studio com .NET
 
Agile testing
Agile testingAgile testing
Agile testing
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 

Além do TDD

  • 1. Além do TDD... Por Leonardo Eloy
  • 2. Esta é Fernanda. Ela ganha a vida testando software.
  • 3. Fernanda costuma levantar os 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 desenvolvedor esperto, utiliza o roteiro de testes de Fernanda para implementar os requisitos.
  • 7. Gustavo desenvolve todo o sistema utilizando os cenários que Fernanda projetou. Uma excelente abordagem!
  • 8. 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
  • 10. Gustavo faz o trabalho dele muito bem, mas Fernanda, ávida testadora, consegue sempre quebrar o sistema com testes exploratórios.
  • 11. Após encontrar uma falha, Gustavo cria um novo teste para reproduzir o erro. Somente após isso, ele prossegue com a correção.
  • 12. Porém, entrega após entrega, Fernanda ainda consegue quebrar o sistema.
  • 13. Gustavo andou pesquisando o que está errado neste ciclo.
  • 14. 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.
  • 15. 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.
  • 16. Após pesquisar vastamente no Google, Gustavo conheceu 3 técnicas novas de como testar seu sistema.
  • 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!"
  • 20. Testes de Mutação if (a == b && a != z) { // algo } if (a != b || a == z) { // algo }
  • 22. Testes de Propriedade Maior de Idade = (n >= 18) Limite Percentual = (n >= 0 && n <= 100)
  • 23. 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?
  • 24. Cuma?
  • 25. 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!