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

LIVE: BDD, GWTDO e Specification Matching no .NET

  • 1.
  • 2.
    [linkedin, Facebook, Twitter,GitHub, Medium]/yanjustino
  • 3.
  • 4.
  • 5.
    https://cucumber.io/docs/bdd/ Em BDD, ocomportamento (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 Clientefaz 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 vantagensdesse 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.
  • 8.
  • 9.
    X ⇒ Y|Y= f : PAQ "Um plano de previdência com cotização inical D+0 (Dias Úteis)".MapAction(PlanoCotizacaoD0 )
  • 10.
  • 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
  • 12.