SlideShare uma empresa Scribd logo
© 2015 Marcio Marchini
BDD Minimalista no
NamoroOn.com :
um Exemplo Pragmático de
API First
Marcio Marchini
www.BetterDeveloper.net
2015/11/02
© 2015 Marcio Marchini
O Poblema: Ajudando em www.NamoroOn.com
Implementar o “Gosta ou
Não?” (tipo Tinder)
Servidor existente
(“legado” sem BDD/TDD)
© 2015 Marcio Marchini
Passo 1: API First
Preciso de camadas (MVC)
Preciso de APIs
API First (Jim des Rivieres)
Insight: Um teste é uma
spec executável de uma
use case da API (mindset
diferente!)
© 2015 Marcio Marchini
Passo 2: Pensando na camada Modelo
Tenho que ter a nova
funcionalidade na camada
Modelo
Tenho que poder usar de uma
GUI ou até mesmo de uma UI de
texto se for o caso
Insight: Testes podem ser
vistos como uma “UI de texto”
© 2015 Marcio Marchini
Passo 3: Modelando camada Modelo
Rankeamento de pessoas
Engine independente de GUI
(Camadas!)
 Descoberta a abstração:
“RankingEngine” (nome da
classe com a fachada da API –
service API)
© 2015 Marcio Marchini
Passo 4: Modelando a API
Idealmente como User Stories
Idealmente polimórficas (multi
camada se possível)
Idealmente de validação
executável
© 2015 Marcio Marchini
Passo 4: Modelando as Use Cases da API
1. Rankeados como Gostados São
Listados como Gostados
2. Rankeados como Não Gostados São
Listados como Não Gostados
3. Deve Ser Possível Rankear um
grupo de uma só vez (perf)
4. Deve Ser Possível obter quem me
Gostou tambem(Nos Gostamos)
5. ...
© 2015 Marcio Marchini
Passo 4: Modelando as Use Cases da API
5. Voto Duplicado Deve Ser Ignorado
6. Deve ser possível ser notificado
quando alguém gosta
unilateralmente de mim (Observer
Pattern!!!)
7. Deve ser possível ser notificado
quando alguém gosta mutuamente
de mim (Observer Pattern!!!)
© 2015 Marcio Marchini
Passo 5: Modelando as Use Cases da API com Testes
Por pragmatismo: usar framework
de teste unitário
Cada teste instancia a engine
Note: Pensar em serviços não quer dizer se prender a REST!!!
© 2015 Marcio Marchini
Passo 5: Modelando as Use Cases da API com Testes
Cada teste exercita uma ou mais
das APIs para completar toda
uma Use Case da API:
rank_as_liked ... ranked_as_liked?
© 2015 Marcio Marchini
Passo 5: Modelando as Use Cases da API com Testes
Vários testes da API (use cases):
© 2015 Marcio Marchini
Parênteses: Note o padrão nos nomes
1. Canônico:
As a <role> I should be able to <action>
in order to <value>
2. Pro Infinitivo:
<role> can <action>…
3. Nome do teste/spec:
test_[role]_can_<action>
4. Alternativa: Deve ser possível…
test_it_is_possible_to_<action>
© 2015 Marcio Marchini
Passo 6: Implementando a Camada Modelo
A API da Engine:
© 2015 Marcio Marchini
Passo 7: Rodar Testes, Verificar Cobertura etc
Rodar da IDE
Rodar do cmd-line, etc. Varia de
IDE pra IDE, de runtime pra
runtime, de linguagem pra
linguagem (uso Paver)
© 2015 Marcio Marchini
Passo 8: Repetir a dose pra camada Controller - testes
Mesma coisa na camada
Controller
Tentar preservar mesmas use
cases e mesma APIs, se possível
(API polimórfica de camada)
© 2015 Marcio Marchini
Passo 8: Modelando as Use Cases da API [REST] com Testes
Cada teste exercita uma ou mais
das APIs para completar toda a
Use Case da API:
(.../rank/group, .../rank/liked)
© 2015 Marcio Marchini
Passo 8: Repetir a dose pra camada Controller - impl
Mesma coisa na camada
Controller
Tentar preservar mesmas APIs, se
possível (API polimórfica de
camada)
Parâmetros e APIs extra são o
valor agregado da camada (auth)
© 2015 Marcio Marchini
Passo 8: Repetir a dose pra camada Controller - impl
Thin Controllers (fat Models)
• Adicionam auth, param sanity, usam Engine.
• Adaptam de REST p/ sua linguagem
• Single Responsibility Principle!
© 2015 Marcio Marchini
Passo 9: Rodar Testes, Verificar Cobertura etc
Rodar da IDE
Rodar do cmd-line, etc. Varia de
IDE pra IDE, de runtime pra
runtime, etc (uso Paver)
© 2015 Marcio Marchini
ALERTA: Quão Bem Está Seu Grupo? Joel On Software
 The Joel Test: 12 Stepsto Better Code, By Joel Spolsky
 Wednesday, August 09, 2000
 http://www.joelonsoftware.com/articles/fog0000000043.html
1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugsbefore writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmershave quiet working conditions?
9. Do you use the best toolsmoney can buy?
10.Do you have testers?
11.Do new candidateswrite code during their interview?
12.Do you do hallway usability testing?
© 2015 Marcio Marchini
Especificação Ágil Executável: K.I.S.S.
Resumo: No NamoroOn, Regras de Negócio são Executáveis
Pinocchio com spectest
© 2015 Marcio Marchini
• No seu projeto, você tem um macarrão (caro de manter $$$) ou
algo bem arquitetado (e maleável $)?
• Coisasóbviasajudam: Injeção de Dependência no constructor:
RankingController(ranking_engine = RankingEngine())
• Camadas:
API First = Camadas Independentes e Boas Métricas
Na www.Nexxera.com estamosusando ferramental para
projetar & garantir camadase métricas, em Python!
© 2015 Marcio Marchini
• “Faça 2 UIs” – Vai dificultar você seguir o caminho do mal (da
massaroca)
• Ou: Consigo fazer um app console (sem GUI) usando somente
sua camada modelo, sem sua camada REST?
• Ou: Consigo fazer um app de GUI (Python+Qt?) usando somente
sua camada modelo, sem sua camada REST?
• Ou: você pensa/modela em camadas/componentesbottom-up
SRP, ou “fazer um sistema”?
• Ou: consigo dar um “pip install” da sua camada modelo sem
trazer a capa RESTjunto?
Heurística do Marchini
© 2015 Marcio Marchini
Resumo da Mensagem
APIs, BDD, Camadas  ROI:
“Pay me now ($) or pay me later ($$$)”
Because, one way or another, you will pay…
“If you think it's expensive to hire a
professional to do the job, wait until you
hire an amateur.”
© 2015 Marcio Marchini
FIM : Resumindo. Perguntas/Comentários?
BDD é TDD do jeito certo.
BDD sozinho não garante boas APIs!
Use BDD de componentes/APIs (API First)
para arquitetura LEGO
Use BDD polimórfico multi-camada MVC
Verbos e Substativos do Domínio do
Problema (legibilidade, DDD)
Não esqueça do apêndice! (próximo slide)
© 2015 Marcio Marchini
Apêndice: Alguns Links e Comentários Úteis
• API First
http://www.eclipsecon.org/2005/presentations/EclipseCon2005_12.2APIFirst.pd
f
• How to Design a Good API and Why it Matters
http://lcsd05.cs.tamu.edu/slides/keynote.pdf ,
https://www.youtube.com/watch?v=aAb7hSCtvGw
• Web API Design
http://blog.apigee.com/detail/announcement_new_ebook_on_web_api_design/
• Python Pinocchio e SpecTest: https://github.com/mkwiatkowski/pinocchio
• Python Behave http://pythonhosted.org/behave/
• Python Lettuce http://lettuce.it
• Robot Framework (ATDD): http://robotframework.org
• Investigue o modelo canônico de User Stories: “As a <role> I should be able to
<action> so that <business value>”
• Investigue o modelo canônico de Acceptance Criteria: “Given <pre-condition(s)>
When <action(s)> Then <post-condition(s)>”
• Curso Better Developer  : http://www.betterdeveloper.net/cursos.html
”Quem Lê Sabe Mais…” – Sabedoria repassada pelo papa Marchini

Mais conteúdo relacionado

PPT
01-b-Ping
Marcio Marchini
 
PDF
TDC2018SP | Trilha Mobile - Learn once, code anywhere
tdc-globalcode
 
PDF
Medindo a performance de aplicações web com JMeter
Júlio de Lima
 
PDF
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Samanta Cicilia
 
PDF
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
Samanta Cicilia
 
PDF
MTC - Automatizando Visual Regression Testing
Samanta Cicilia
 
PPTX
WTM - Entrega Contínua
Samanta Cicilia
 
PDF
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
Elias Nogueira
 
01-b-Ping
Marcio Marchini
 
TDC2018SP | Trilha Mobile - Learn once, code anywhere
tdc-globalcode
 
Medindo a performance de aplicações web com JMeter
Júlio de Lima
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Samanta Cicilia
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
Samanta Cicilia
 
MTC - Automatizando Visual Regression Testing
Samanta Cicilia
 
WTM - Entrega Contínua
Samanta Cicilia
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
Elias Nogueira
 

Mais procurados (20)

PDF
Automatizando uma app Híbrida
Elias Nogueira
 
PDF
Coders On Beer + Ministry Of Testing - Agile Testing
Samanta Cicilia
 
PDF
Uma Sprint na Vida do Tester
Vitor Pelizza
 
PDF
Acelerando o feedback e deploy com Automação de Testes!
Elias Nogueira
 
PDF
Formando Desenvolvedores Efetivos
Diego Santos
 
PPTX
[DevOps Carioca] Testes Automatizados
Samanta Cicilia
 
PPTX
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
Samanta Cicilia
 
PDF
O Testador Técnico
Elias Nogueira
 
PDF
Apenas um script de teste para iOS e Android
Elias Nogueira
 
PDF
Automação de Teste em Front End - Caipira Ágil
Elias Nogueira
 
PPTX
#Moving br workshop
Fernanda Ferreira
 
PPTX
Automação de Teste para REST, Web e Mobile
Elias Nogueira
 
PDF
Automação de Teste - BRATESTE 2010
Elias Nogueira
 
PDF
Lottie API Para Animações no Android
Vinícius Thiengo
 
PPTX
[Lady talks]Continuous Delivery
Samanta Cicilia
 
PDF
Testes de Performance na Nuvem com JMeter e Blazemeter
Elias Nogueira
 
PPTX
Feedback mais rápido na sua build dividindo os testes funcionais
Elias Nogueira
 
PPTX
Tudo o que você precisa saber para começar a automação de testes em dispositi...
Elias Nogueira
 
PDF
Papel do QA na Transformação Ágil
Elias Nogueira
 
PDF
Automação de Teste com Robotium - Tche Mobile 2014
Elias Nogueira
 
Automatizando uma app Híbrida
Elias Nogueira
 
Coders On Beer + Ministry Of Testing - Agile Testing
Samanta Cicilia
 
Uma Sprint na Vida do Tester
Vitor Pelizza
 
Acelerando o feedback e deploy com Automação de Testes!
Elias Nogueira
 
Formando Desenvolvedores Efetivos
Diego Santos
 
[DevOps Carioca] Testes Automatizados
Samanta Cicilia
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
Samanta Cicilia
 
O Testador Técnico
Elias Nogueira
 
Apenas um script de teste para iOS e Android
Elias Nogueira
 
Automação de Teste em Front End - Caipira Ágil
Elias Nogueira
 
#Moving br workshop
Fernanda Ferreira
 
Automação de Teste para REST, Web e Mobile
Elias Nogueira
 
Automação de Teste - BRATESTE 2010
Elias Nogueira
 
Lottie API Para Animações no Android
Vinícius Thiengo
 
[Lady talks]Continuous Delivery
Samanta Cicilia
 
Testes de Performance na Nuvem com JMeter e Blazemeter
Elias Nogueira
 
Feedback mais rápido na sua build dividindo os testes funcionais
Elias Nogueira
 
Tudo o que você precisa saber para começar a automação de testes em dispositi...
Elias Nogueira
 
Papel do QA na Transformação Ágil
Elias Nogueira
 
Automação de Teste com Robotium - Tche Mobile 2014
Elias Nogueira
 
Anúncio

Semelhante a BDD-NamoroOn (20)

PDF
Desenvolvimento Client-Side 2016 (BrazilJS)
Huge
 
PDF
TDC2016SP - Construindo Web APIs em Java na era do Big Data
tdc-globalcode
 
PPTX
Arquitetura de Software e o DNAD2013
André Borgonovo
 
PDF
compreensão geral para estruturar uma api
dsfabiano451
 
PDF
Criando uma arquitetura para seus testes de API com RestAssured
Elias Nogueira
 
PDF
Construindo APIs RESTful com Spring
Mateus Malaquias
 
PDF
PyData - Consumindo e publicando web APIs com Python
Bruno Rocha
 
PPTX
Uaijug ADF - spring boot - microservice - Introdução
Rogerio Fontes
 
KEY
Arquitetura de Software
Saulo Arruda
 
PDF
Campus Party 2015: Os 10 Atributos de uma API de Sucesso
Kleber Bacili
 
ODP
Boas práticas no desenvolvimento de uma RESTful API
Fernando Camargo
 
ODP
Boas práticas no desenvolvimento de uma RESTful API
Fernando Camargo
 
PDF
Camunda User Group Brazil - Remote Meetup #3 - 8 jun 2021
Maurício Bitencourt
 
PDF
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
iMasters
 
PDF
Construindo ap is usando php
James Miranda
 
PPTX
API testing - Pq a vida não é só ID's, Css, Xpath...
Eduardo Cini
 
PDF
Projeto de API, por Gilmar P.S
Thoughtworks
 
PDF
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Gilmar PSL
 
PDF
Design de RESTful APIs
Fernando Camargo
 
PPTX
API testing - Pq a vida não é só ID's, Css, Xpath...
Eduardo Cini
 
Desenvolvimento Client-Side 2016 (BrazilJS)
Huge
 
TDC2016SP - Construindo Web APIs em Java na era do Big Data
tdc-globalcode
 
Arquitetura de Software e o DNAD2013
André Borgonovo
 
compreensão geral para estruturar uma api
dsfabiano451
 
Criando uma arquitetura para seus testes de API com RestAssured
Elias Nogueira
 
Construindo APIs RESTful com Spring
Mateus Malaquias
 
PyData - Consumindo e publicando web APIs com Python
Bruno Rocha
 
Uaijug ADF - spring boot - microservice - Introdução
Rogerio Fontes
 
Arquitetura de Software
Saulo Arruda
 
Campus Party 2015: Os 10 Atributos de uma API de Sucesso
Kleber Bacili
 
Boas práticas no desenvolvimento de uma RESTful API
Fernando Camargo
 
Boas práticas no desenvolvimento de uma RESTful API
Fernando Camargo
 
Camunda User Group Brazil - Remote Meetup #3 - 8 jun 2021
Maurício Bitencourt
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
iMasters
 
Construindo ap is usando php
James Miranda
 
API testing - Pq a vida não é só ID's, Css, Xpath...
Eduardo Cini
 
Projeto de API, por Gilmar P.S
Thoughtworks
 
Projeto de API - TDC 2014 - Floripa - Trilha Arquitetura - 18/05/2014
Gilmar PSL
 
Design de RESTful APIs
Fernando Camargo
 
API testing - Pq a vida não é só ID's, Css, Xpath...
Eduardo Cini
 
Anúncio

Mais de Marcio Marchini (8)

PDF
Critérios de Aceite de Código Para Times Internos ou Terceirizados
Marcio Marchini
 
PPT
É Pythonico, mas... é macarrônico
Marcio Marchini
 
PDF
Whitepaper-Custos
Marcio Marchini
 
PPT
01-a-Intro-BetterDev
Marcio Marchini
 
PPTX
OmbrosDeGigantes-TDC2014
Marcio Marchini
 
PPT
mqm-Agile
Marcio Marchini
 
PDF
Branches-Intro
Marcio Marchini
 
Critérios de Aceite de Código Para Times Internos ou Terceirizados
Marcio Marchini
 
É Pythonico, mas... é macarrônico
Marcio Marchini
 
Whitepaper-Custos
Marcio Marchini
 
01-a-Intro-BetterDev
Marcio Marchini
 
OmbrosDeGigantes-TDC2014
Marcio Marchini
 
mqm-Agile
Marcio Marchini
 
Branches-Intro
Marcio Marchini
 

BDD-NamoroOn

  • 1. © 2015 Marcio Marchini BDD Minimalista no NamoroOn.com : um Exemplo Pragmático de API First Marcio Marchini www.BetterDeveloper.net 2015/11/02
  • 2. © 2015 Marcio Marchini O Poblema: Ajudando em www.NamoroOn.com Implementar o “Gosta ou Não?” (tipo Tinder) Servidor existente (“legado” sem BDD/TDD)
  • 3. © 2015 Marcio Marchini Passo 1: API First Preciso de camadas (MVC) Preciso de APIs API First (Jim des Rivieres) Insight: Um teste é uma spec executável de uma use case da API (mindset diferente!)
  • 4. © 2015 Marcio Marchini Passo 2: Pensando na camada Modelo Tenho que ter a nova funcionalidade na camada Modelo Tenho que poder usar de uma GUI ou até mesmo de uma UI de texto se for o caso Insight: Testes podem ser vistos como uma “UI de texto”
  • 5. © 2015 Marcio Marchini Passo 3: Modelando camada Modelo Rankeamento de pessoas Engine independente de GUI (Camadas!)  Descoberta a abstração: “RankingEngine” (nome da classe com a fachada da API – service API)
  • 6. © 2015 Marcio Marchini Passo 4: Modelando a API Idealmente como User Stories Idealmente polimórficas (multi camada se possível) Idealmente de validação executável
  • 7. © 2015 Marcio Marchini Passo 4: Modelando as Use Cases da API 1. Rankeados como Gostados São Listados como Gostados 2. Rankeados como Não Gostados São Listados como Não Gostados 3. Deve Ser Possível Rankear um grupo de uma só vez (perf) 4. Deve Ser Possível obter quem me Gostou tambem(Nos Gostamos) 5. ...
  • 8. © 2015 Marcio Marchini Passo 4: Modelando as Use Cases da API 5. Voto Duplicado Deve Ser Ignorado 6. Deve ser possível ser notificado quando alguém gosta unilateralmente de mim (Observer Pattern!!!) 7. Deve ser possível ser notificado quando alguém gosta mutuamente de mim (Observer Pattern!!!)
  • 9. © 2015 Marcio Marchini Passo 5: Modelando as Use Cases da API com Testes Por pragmatismo: usar framework de teste unitário Cada teste instancia a engine Note: Pensar em serviços não quer dizer se prender a REST!!!
  • 10. © 2015 Marcio Marchini Passo 5: Modelando as Use Cases da API com Testes Cada teste exercita uma ou mais das APIs para completar toda uma Use Case da API: rank_as_liked ... ranked_as_liked?
  • 11. © 2015 Marcio Marchini Passo 5: Modelando as Use Cases da API com Testes Vários testes da API (use cases):
  • 12. © 2015 Marcio Marchini Parênteses: Note o padrão nos nomes 1. Canônico: As a <role> I should be able to <action> in order to <value> 2. Pro Infinitivo: <role> can <action>… 3. Nome do teste/spec: test_[role]_can_<action> 4. Alternativa: Deve ser possível… test_it_is_possible_to_<action>
  • 13. © 2015 Marcio Marchini Passo 6: Implementando a Camada Modelo A API da Engine:
  • 14. © 2015 Marcio Marchini Passo 7: Rodar Testes, Verificar Cobertura etc Rodar da IDE Rodar do cmd-line, etc. Varia de IDE pra IDE, de runtime pra runtime, de linguagem pra linguagem (uso Paver)
  • 15. © 2015 Marcio Marchini Passo 8: Repetir a dose pra camada Controller - testes Mesma coisa na camada Controller Tentar preservar mesmas use cases e mesma APIs, se possível (API polimórfica de camada)
  • 16. © 2015 Marcio Marchini Passo 8: Modelando as Use Cases da API [REST] com Testes Cada teste exercita uma ou mais das APIs para completar toda a Use Case da API: (.../rank/group, .../rank/liked)
  • 17. © 2015 Marcio Marchini Passo 8: Repetir a dose pra camada Controller - impl Mesma coisa na camada Controller Tentar preservar mesmas APIs, se possível (API polimórfica de camada) Parâmetros e APIs extra são o valor agregado da camada (auth)
  • 18. © 2015 Marcio Marchini Passo 8: Repetir a dose pra camada Controller - impl Thin Controllers (fat Models) • Adicionam auth, param sanity, usam Engine. • Adaptam de REST p/ sua linguagem • Single Responsibility Principle!
  • 19. © 2015 Marcio Marchini Passo 9: Rodar Testes, Verificar Cobertura etc Rodar da IDE Rodar do cmd-line, etc. Varia de IDE pra IDE, de runtime pra runtime, etc (uso Paver)
  • 20. © 2015 Marcio Marchini ALERTA: Quão Bem Está Seu Grupo? Joel On Software  The Joel Test: 12 Stepsto Better Code, By Joel Spolsky  Wednesday, August 09, 2000  http://www.joelonsoftware.com/articles/fog0000000043.html 1. Do you use source control? 2. Can you make a build in one step? 3. Do you make daily builds? 4. Do you have a bug database? 5. Do you fix bugsbefore writing new code? 6. Do you have an up-to-date schedule? 7. Do you have a spec? 8. Do programmershave quiet working conditions? 9. Do you use the best toolsmoney can buy? 10.Do you have testers? 11.Do new candidateswrite code during their interview? 12.Do you do hallway usability testing?
  • 21. © 2015 Marcio Marchini Especificação Ágil Executável: K.I.S.S. Resumo: No NamoroOn, Regras de Negócio são Executáveis Pinocchio com spectest
  • 22. © 2015 Marcio Marchini • No seu projeto, você tem um macarrão (caro de manter $$$) ou algo bem arquitetado (e maleável $)? • Coisasóbviasajudam: Injeção de Dependência no constructor: RankingController(ranking_engine = RankingEngine()) • Camadas: API First = Camadas Independentes e Boas Métricas Na www.Nexxera.com estamosusando ferramental para projetar & garantir camadase métricas, em Python!
  • 23. © 2015 Marcio Marchini • “Faça 2 UIs” – Vai dificultar você seguir o caminho do mal (da massaroca) • Ou: Consigo fazer um app console (sem GUI) usando somente sua camada modelo, sem sua camada REST? • Ou: Consigo fazer um app de GUI (Python+Qt?) usando somente sua camada modelo, sem sua camada REST? • Ou: você pensa/modela em camadas/componentesbottom-up SRP, ou “fazer um sistema”? • Ou: consigo dar um “pip install” da sua camada modelo sem trazer a capa RESTjunto? Heurística do Marchini
  • 24. © 2015 Marcio Marchini Resumo da Mensagem APIs, BDD, Camadas  ROI: “Pay me now ($) or pay me later ($$$)” Because, one way or another, you will pay… “If you think it's expensive to hire a professional to do the job, wait until you hire an amateur.”
  • 25. © 2015 Marcio Marchini FIM : Resumindo. Perguntas/Comentários? BDD é TDD do jeito certo. BDD sozinho não garante boas APIs! Use BDD de componentes/APIs (API First) para arquitetura LEGO Use BDD polimórfico multi-camada MVC Verbos e Substativos do Domínio do Problema (legibilidade, DDD) Não esqueça do apêndice! (próximo slide)
  • 26. © 2015 Marcio Marchini Apêndice: Alguns Links e Comentários Úteis • API First http://www.eclipsecon.org/2005/presentations/EclipseCon2005_12.2APIFirst.pd f • How to Design a Good API and Why it Matters http://lcsd05.cs.tamu.edu/slides/keynote.pdf , https://www.youtube.com/watch?v=aAb7hSCtvGw • Web API Design http://blog.apigee.com/detail/announcement_new_ebook_on_web_api_design/ • Python Pinocchio e SpecTest: https://github.com/mkwiatkowski/pinocchio • Python Behave http://pythonhosted.org/behave/ • Python Lettuce http://lettuce.it • Robot Framework (ATDD): http://robotframework.org • Investigue o modelo canônico de User Stories: “As a <role> I should be able to <action> so that <business value>” • Investigue o modelo canônico de Acceptance Criteria: “Given <pre-condition(s)> When <action(s)> Then <post-condition(s)>” • Curso Better Developer  : http://www.betterdeveloper.net/cursos.html ”Quem Lê Sabe Mais…” – Sabedoria repassada pelo papa Marchini

Notas do Editor

  • #22: Marchini entra e mostra a Agenda, começa a apresentar.
  • #23: Marchini entra e mostra a Agenda, começa a apresentar.
  • #24: Marchini entra e mostra a Agenda, começa a apresentar.