Este documento apresenta os princípios e benefícios da abordagem Behavior-Driven Development (BDD) para especificação de software. O BDD utiliza uma estrutura Given-When-Then para descrever cenários de teste em linguagem natural do ponto de vista do usuário. Também discute desafios na manutenção das especificações BDD e apresenta uma demonstração prática.
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.
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