SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
BDD,GWTDOESPECIFICATION
MATCHINGNO.NET
[linkedin, Facebook, Twitter, GitHub, Medium]/yanjustino
TÓPICOS
AGENDA
BDD


Benefícios


Desa
f
ios


GWTDO


Demo
3
Behavior-Driven Development
https://cucumber.io/docs/bdd/
Em BDD, o comportamento (Behavior) do software é
especificado como um conjunto de interações, expressos
como sentenças em linguagem natural, organizadas ao redor
de uma estrutura Given-When-Then(GWT) [1] [2], um
pequeno texto narrativo redigido do ponto de vista do
usuário[3].
5
SCENARIO Aporte inicial


DESCRIÇÃO


Cliente faz aporte inicial em plano de cotização D+0


DADO


Um plano de previdência com cotização inical D+0 (Dias Úteis) E


Que eu tenho um valor de R$ 500,00 para realizar um aporte


QUANDO


Eu realizo esse aporte inicial hoje


ENTÃO


A data de cotização inicial do meu certif
i
cado deve ser hoje
6
Uma das vantagens desse forma
de especificação está na sua
legibilidade: uma vez que, nesse
nível de abstração, se evita
elementos técnicos, facilita-se a
comunicação e a compreensão por
todos todos. Outro aspecto positivo
é como o uso da abordagem
melhora a forma como o software e
seu código-fonte é documentado. "A
documentação é o código de
trabalho"!
BENEFÍCIOS


DESAFIOS


Se por um lado a legibilidade e a fácil
documentação do código são vantagens,
gerenciar as especificações é um desafio
particular: o rasteio de falhas, a duplicação
de elementos da especificação e a
necessidade de mante-la em adição aos
testes de unidade são exemplos de problemas
associados a BDD.
SPECIFICATIONS
TESTE FIXTURE
C#
X ⇒ Y|Y = f : PAQ
"Um plano de previdência com cotização inical D+0 (Dias Úteis)".MapAction(PlanoCotizacaoD0
)
DEMO
1. L. P
. Binamungu, S. M. Embury and N. Konstantinou, “Maintaining behavior driven
development specifications: Challenges and opportunities,” 2018 IEEE 25th International
Conference on Software Analysis, Evolution and Reengineering (SANER), Campobasso, Italy,
2018, pp. 175–184, doi: 10.1109/SANER.2018.8330207.


2. Fowler, M., 2021. bliki: GivenWhenThen. [online] martinfowler.com. Available at: <https://
martinfowler.com/bliki/GivenWhenThen.html> [Accessed 19 April 2021].


3. Engenharia de Software — 8ª Edição. (2016). (n.p.): McGraw Hill Brasil.


4. L. da Silva and P
. Vilain, “Execution and code reuse between test classes,” in 2016 IEEE 14th
International Conference on Software Engineering Research, Management and Applications
(SERA), Towson, MD, USA, 2016 pp. 99–106. doi: 10.1109/SERA.2016.7516134 —
keywords: {fixtures;robustness;testing;proposals;informatics;writing} — url: https://
doi.ieeecomputersociety.org/10.1109/SERA.2016.7516134


5. Wake, B., 2021. 3A — Arrange, Act, Assert — XP123. [online] Xp123.com. Available at:
<https://xp123.com/articles/3a-arrange-act-assert/> [Accessed 20 April 2021].
REFERÊNCIAS
Artigos, Livros e Websites que fundamentaram essa palestra
OBRIGADO!!!
E ATÉ A PRÓXIMA

Mais conteúdo relacionado

Semelhante a BDD GWT ESPECIFICAÇÕES

ISO 15926 - Interoperabilidade da Informação de Engenharia
ISO 15926 - Interoperabilidade da Informação de EngenhariaISO 15926 - Interoperabilidade da Informação de Engenharia
ISO 15926 - Interoperabilidade da Informação de EngenhariaRicardo Yogui, MSc.
 
Artigo ricardo figueira a seguir bim
Artigo ricardo figueira a seguir bimArtigo ricardo figueira a seguir bim
Artigo ricardo figueira a seguir bimRafael L. Fraga
 
Cobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a Ponta
Cobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a PontaCobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a Ponta
Cobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a PontaFernando Palma
 
Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...
Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...
Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...Rodrigo Neves, MSc, PMP, PMI-PBA
 
Pmi Global 2008 Portfolio
Pmi Global 2008 PortfolioPmi Global 2008 Portfolio
Pmi Global 2008 PortfolioPeter Mello
 
Importância do planejamento na implantação de projetos
Importância do planejamento na implantação de projetosImportância do planejamento na implantação de projetos
Importância do planejamento na implantação de projetosTito Livio M. Cardoso
 
Palestra: Benefícios da Adoção do Gerenciamento de Projetos e PMO
Palestra: Benefícios da Adoção do Gerenciamento de Projetos e PMOPalestra: Benefícios da Adoção do Gerenciamento de Projetos e PMO
Palestra: Benefícios da Adoção do Gerenciamento de Projetos e PMOGUGP SUCESU-RS
 
Goal-Driven Software Process
Goal-Driven Software ProcessGoal-Driven Software Process
Goal-Driven Software ProcessAndré Agostinho
 
Webinar projetos e ti - business intelligence - como fazer
Webinar   projetos e ti - business intelligence - como fazerWebinar   projetos e ti - business intelligence - como fazer
Webinar projetos e ti - business intelligence - como fazerProjetos e TI
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingDaniel Wildt
 
20230822-DOMA-Neon-Auditorio-Microsoft.pdf
20230822-DOMA-Neon-Auditorio-Microsoft.pdf20230822-DOMA-Neon-Auditorio-Microsoft.pdf
20230822-DOMA-Neon-Auditorio-Microsoft.pdfPauloCesarSilva53
 

Semelhante a BDD GWT ESPECIFICAÇÕES (20)

Apresentação fdd
Apresentação fddApresentação fdd
Apresentação fdd
 
ISO 15926 - Interoperabilidade da Informação de Engenharia
ISO 15926 - Interoperabilidade da Informação de EngenhariaISO 15926 - Interoperabilidade da Informação de Engenharia
ISO 15926 - Interoperabilidade da Informação de Engenharia
 
Artigo ricardo figueira a seguir bim
Artigo ricardo figueira a seguir bimArtigo ricardo figueira a seguir bim
Artigo ricardo figueira a seguir bim
 
Afrodite
AfroditeAfrodite
Afrodite
 
Project Time
Project TimeProject Time
Project Time
 
Cucumber com java
Cucumber com javaCucumber com java
Cucumber com java
 
Cobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a Ponta
Cobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a PontaCobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a Ponta
Cobit 5 Parte 02: 2º Princípio- Cobrir a Organização de Ponta a Ponta
 
Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...
Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...
Análise de Negócios e Gerenciamento de Projetos: Uma parceria para o sucesso ...
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Pmi Global 2008 Portfolio
Pmi Global 2008 PortfolioPmi Global 2008 Portfolio
Pmi Global 2008 Portfolio
 
Importância do planejamento na implantação de projetos
Importância do planejamento na implantação de projetosImportância do planejamento na implantação de projetos
Importância do planejamento na implantação de projetos
 
Gestão de Projetos
Gestão de ProjetosGestão de Projetos
Gestão de Projetos
 
Palestra: Benefícios da Adoção do Gerenciamento de Projetos e PMO
Palestra: Benefícios da Adoção do Gerenciamento de Projetos e PMOPalestra: Benefícios da Adoção do Gerenciamento de Projetos e PMO
Palestra: Benefícios da Adoção do Gerenciamento de Projetos e PMO
 
Goal-Driven Software Process
Goal-Driven Software ProcessGoal-Driven Software Process
Goal-Driven Software Process
 
FDWS - Apresentação Projeto Final de Curso
FDWS - Apresentação Projeto Final de CursoFDWS - Apresentação Projeto Final de Curso
FDWS - Apresentação Projeto Final de Curso
 
PIM V GESTÃO DE TI
PIM V GESTÃO DE TIPIM V GESTÃO DE TI
PIM V GESTÃO DE TI
 
Webinar projetos e ti - business intelligence - como fazer
Webinar   projetos e ti - business intelligence - como fazerWebinar   projetos e ti - business intelligence - como fazer
Webinar projetos e ti - business intelligence - como fazer
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
 
Bim
BimBim
Bim
 
20230822-DOMA-Neon-Auditorio-Microsoft.pdf
20230822-DOMA-Neon-Auditorio-Microsoft.pdf20230822-DOMA-Neon-Auditorio-Microsoft.pdf
20230822-DOMA-Neon-Auditorio-Microsoft.pdf
 

Mais de Yan Justino

TDC Future - comunidade XP - Abraçando a variedade de padrões de arquitetura...
TDC Future - comunidade XP -  Abraçando a variedade de padrões de arquitetura...TDC Future - comunidade XP -  Abraçando a variedade de padrões de arquitetura...
TDC Future - comunidade XP - Abraçando a variedade de padrões de arquitetura...Yan Justino
 
Criando multi-agent systems com .net Hosted Services
Criando multi-agent systems com .net Hosted ServicesCriando multi-agent systems com .net Hosted Services
Criando multi-agent systems com .net Hosted ServicesYan Justino
 
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...Yan Justino
 
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...Yan Justino
 
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...Yan Justino
 
Modernizando plataformas eGovernment: migração do sistema Uvt
Modernizando plataformas eGovernment: migração do sistema UvtModernizando plataformas eGovernment: migração do sistema Uvt
Modernizando plataformas eGovernment: migração do sistema UvtYan Justino
 
Modernizando plataformas e-Government : Lições e Método
Modernizando plataformas e-Government : Lições e MétodoModernizando plataformas e-Government : Lições e Método
Modernizando plataformas e-Government : Lições e MétodoYan Justino
 
DocumentDb: escalando sua aplicação
DocumentDb: escalando sua aplicaçãoDocumentDb: escalando sua aplicação
DocumentDb: escalando sua aplicaçãoYan Justino
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do softwareYan Justino
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet CoreYan Justino
 
Vssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosVssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosYan Justino
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasYan Justino
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOYan Justino
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gofYan Justino
 
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Yan Justino
 
Angular - Ruby Morning
Angular - Ruby MorningAngular - Ruby Morning
Angular - Ruby MorningYan Justino
 
GDG NATAL - Dart Flight School
GDG NATAL - Dart Flight SchoolGDG NATAL - Dart Flight School
GDG NATAL - Dart Flight SchoolYan Justino
 
Si - Segurança da Informação
Si - Segurança da InformaçãoSi - Segurança da Informação
Si - Segurança da InformaçãoYan Justino
 

Mais de Yan Justino (20)

TDC Future - comunidade XP - Abraçando a variedade de padrões de arquitetura...
TDC Future - comunidade XP -  Abraçando a variedade de padrões de arquitetura...TDC Future - comunidade XP -  Abraçando a variedade de padrões de arquitetura...
TDC Future - comunidade XP - Abraçando a variedade de padrões de arquitetura...
 
Criando multi-agent systems com .net Hosted Services
Criando multi-agent systems com .net Hosted ServicesCriando multi-agent systems com .net Hosted Services
Criando multi-agent systems com .net Hosted Services
 
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
 
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
 
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
 
Modernizando plataformas eGovernment: migração do sistema Uvt
Modernizando plataformas eGovernment: migração do sistema UvtModernizando plataformas eGovernment: migração do sistema Uvt
Modernizando plataformas eGovernment: migração do sistema Uvt
 
Modernizando plataformas e-Government : Lições e Método
Modernizando plataformas e-Government : Lições e MétodoModernizando plataformas e-Government : Lições e Método
Modernizando plataformas e-Government : Lições e Método
 
DocumentDb: escalando sua aplicação
DocumentDb: escalando sua aplicaçãoDocumentDb: escalando sua aplicação
DocumentDb: escalando sua aplicação
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do software
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet Core
 
Vssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosVssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativos
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadas
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
 
Angular - Ruby Morning
Angular - Ruby MorningAngular - Ruby Morning
Angular - Ruby Morning
 
Angular
AngularAngular
Angular
 
GDG NATAL - Dart Flight School
GDG NATAL - Dart Flight SchoolGDG NATAL - Dart Flight School
GDG NATAL - Dart Flight School
 
Si - Segurança da Informação
Si - Segurança da InformaçãoSi - Segurança da Informação
Si - Segurança da Informação
 
C# limpo
C# limpoC# limpo
C# limpo
 

BDD GWT ESPECIFICAÇÕES

  • 2. [linkedin, Facebook, Twitter, GitHub, Medium]/yanjustino
  • 5. https://cucumber.io/docs/bdd/ Em BDD, o comportamento (Behavior) do software é especificado como um conjunto de interações, expressos como sentenças em linguagem natural, organizadas ao redor de uma estrutura Given-When-Then(GWT) [1] [2], um pequeno texto narrativo redigido do ponto de vista do usuário[3]. 5
  • 6. SCENARIO Aporte inicial 
 DESCRIÇÃO Cliente faz aporte inicial em plano de cotização D+0 
 DADO Um plano de previdência com cotização inical D+0 (Dias Úteis) E Que eu tenho um valor de R$ 500,00 para realizar um aporte 
 QUANDO Eu realizo esse aporte inicial hoje 
 ENTÃO A data de cotização inicial do meu certif i cado deve ser hoje 6
  • 7. Uma das vantagens desse forma de especificação está na sua legibilidade: uma vez que, nesse nível de abstração, se evita elementos técnicos, facilita-se a comunicação e a compreensão por todos todos. Outro aspecto positivo é como o uso da abordagem melhora a forma como o software e seu código-fonte é documentado. "A documentação é o código de trabalho"! BENEFÍCIOS DESAFIOS Se por um lado a legibilidade e a fácil documentação do código são vantagens, gerenciar as especificações é um desafio particular: o rasteio de falhas, a duplicação de elementos da especificação e a necessidade de mante-la em adição aos testes de unidade são exemplos de problemas associados a BDD.
  • 9. X ⇒ Y|Y = f : PAQ "Um plano de previdência com cotização inical D+0 (Dias Úteis)".MapAction(PlanoCotizacaoD0 )
  • 10. DEMO
  • 11. 1. L. P . Binamungu, S. M. Embury and N. Konstantinou, “Maintaining behavior driven development specifications: Challenges and opportunities,” 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), Campobasso, Italy, 2018, pp. 175–184, doi: 10.1109/SANER.2018.8330207. 
 2. Fowler, M., 2021. bliki: GivenWhenThen. [online] martinfowler.com. Available at: <https:// martinfowler.com/bliki/GivenWhenThen.html> [Accessed 19 April 2021]. 
 3. Engenharia de Software — 8ª Edição. (2016). (n.p.): McGraw Hill Brasil. 
 4. L. da Silva and P . Vilain, “Execution and code reuse between test classes,” in 2016 IEEE 14th International Conference on Software Engineering Research, Management and Applications (SERA), Towson, MD, USA, 2016 pp. 99–106. doi: 10.1109/SERA.2016.7516134 — keywords: {fixtures;robustness;testing;proposals;informatics;writing} — url: https:// doi.ieeecomputersociety.org/10.1109/SERA.2016.7516134 
 5. Wake, B., 2021. 3A — Arrange, Act, Assert — XP123. [online] Xp123.com. Available at: <https://xp123.com/articles/3a-arrange-act-assert/> [Accessed 20 April 2021]. REFERÊNCIAS Artigos, Livros e Websites que fundamentaram essa palestra