Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qualidade além da engenharia

Qualidade além da engenharia

Qualidade de software não é apenas coisa de engenharia, é um conjunto de práticas e pessoas que precisam está bem alinhadas para que possamos ter um projeto concluído com sucesso.

A definição do escopo e dos critérios de aceite é algo fundamental para o sucesso de um projeto. Nessa apresentação falo um pouco sobre como o BDD pode ajudar a reduzir um dos principais problema de um projeto que é a comunicação.

Mattheus Cassundé

March 01, 2024
Tweet

More Decks by Mattheus Cassundé

Other Decks in Programming

Transcript

  1. Estimativa para atender aos critérios Gestão de projetos ágil Critérios

    de aceite Infra/pessoal para atender aos critérios
  2. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Infra/pessoal para atender aos critérios
  3. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Infra/pessoal para atender aos critérios
  4. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Infra/pessoal para atender aos critérios
  5. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Qual o segredo para isso Funcionar ? Infra/pessoal para atender aos critérios
  6. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Qual o segredo para isso Funcionar ? Infra/pessoal para atender aos critérios
  7. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Qual o segredo para isso Funcionar ? Infra/pessoal para atender aos critérios
  8. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Qual o segredo para isso Funcionar ? Comunicação Infra/pessoal para atender aos critérios
  9. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Qual o segredo para isso Funcionar ? Comunicação Infra/pessoal para atender aos critérios
  10. Critérios de aceite Estimativa para atender aos critérios Coisa de

    Produto Coisa de Engenharia Coisa de Engenharia Qual o segredo para isso Funcionar ? Comunicação Infra/pessoal para atender aos critérios
  11. Critérios de aceite O que nosso sistema tem que atender

    para ser aceito como concluído apto
  12. Critérios de aceite O que nosso sistema tem que atender

    para ser aceito como concluído apto para ir para produção
  13. Exemplos Somente podemos aceitar cartões de crédito com bandeiras VISA

    e MASTERCARD Somente podemos aceitar cartões de crédito com data de expiração no futuro
  14. Sistema Cadastro de Vendedores Controle de carrinhos Cobrança Relatório Funcionalidades

    Critério de aceite a Critério de aceite b Critério de aceite c Critério de aceite d
  15. Sistema Cadastro de Vendedores Controle de carrinhos Cobrança Relatório Funcionalidades

    Critério de aceite a Critério de aceite b Critério de aceite c Critério de aceite d Critério de aceite z Critério de aceite y
  16. Sistema Cadastro de Vendedores Controle de carrinhos Cobrança Relatório Funcionalidades

    Critério de aceite a Critério de aceite b Critério de aceite c Critério de aceite d Critério de aceite z Critério de aceite y Coisa de Engenharia Coisa de Engenharia
  17. Sistema Cadastro de Vendedores Critério de aceite a Critério de

    aceite b Teste Automatizado 1 Teste Automatizado 2
  18. Sistema Cadastro de Vendedores Critério de aceite a Critério de

    aceite b Teste Automatizado 1 Teste Automatizado 2 Teste Automatizado 3 Teste Automatizado 4
  19. BDD

  20. BDD

  21. BDD Técnica auxilia no compartilhamento de informações entre membros do

    time independentemente se for um membro de negócio ou um membro técnico.
  22. BDD Técnica auxilia no compartilhamento de informações entre membros do

    time independentemente se for um membro de negócio ou um membro técnico.
  23. BDD Técnica auxilia no compartilhamento de informações entre membros do

    time independentemente se for um membro de negócio ou um membro técnico.
  24. BDD Técnica auxilia no compartilhamento de informações entre membros do

    time independentemente se for um membro de negócio ou um membro técnico. Comunicação
  25. BDD

  26. BDD TDD 11.3.2 Test-Driven Development "Before any code is written

    for a task, the developer decides how it will be tested. The tests become the specification."
  27. BDD TDD 11.3.2 Test-Driven Development "Before any code is written

    for a task, the developer decides how it will be tested. The tests become the specification."
  28. BDD TDD 11.3.2 Test-Driven Development "Before any code is written

    for a task, the developer decides how it will be tested. The tests become the specification."
  29. BDD TDD 11.3.2 Test-Driven Development "Before any code is written

    for a task, the developer decides how it will be tested. The tests become the specification."
  30. BDD Ele vai ajudar a traduzir isso: Somente podemos aceitar

    cartões de crédito com bandeiras VISA e MASTERCARD
  31. BDD Ele vai ajudar a traduzir isso: Somente podemos aceitar

    cartões de crédito com bandeiras VISA e MASTERCARD Em algo sistêmico
  32. BDD Cenários de Teste Dado Quando Então Descreve como os

    dados estavam antes da execução Na mais do que um template
  33. BDD Cenários de Teste Dado Quando Então Descreve a ação

    que será chamada e seus inputs Na mais do que um template Descreve como os dados estavam antes da execução
  34. BDD Cenários de Teste Dado Quando Então Descreve como os

    dados estarão após a execução Na mais do que um template Descreve como os dados estavam antes da execução Descreve a ação que será chamada e seus inputs
  35. BDD Gherkin Dado Quando Então Descreve como os dados estarão

    após a execução Descreve como os dados estavam antes da execução Descreve a ação que será chamada e seus inputs
  36. BDD Gherkin Dado Quando Então Descreve como os dados estarão

    após a execução Na mais do que um template Descreve como os dados estavam antes da execução Descreve a ação que será chamada e seus inputs
  37. BDD Gherkin Na mais do que um template Linguagem que

    ajuda a definir todos os comportamentos de software sem ter uma implementação
  38. BDD Gherkin Na mais do que um template Linguagem que

    ajuda a definir todos os comportamentos de software sem ter uma implementação
  39. BDD Gherkin Na mais do que um template Linguagem que

    ajuda a definir todos os comportamentos de software sem ter uma implementação
  40. BDD Gherkin Na mais do que um template Modelo ajuda

    a explicar testes e comportamento de software para pessoas técnicas e não técnicas
  41. BDD Gherkin Na mais do que um template Modelo ajuda

    a explicar testes e comportamento de software para pessoas técnicas e não técnicas
  42. BDD Gherkin Na mais do que um template Modelo ajuda

    a explicar testes e comportamento de software para pessoas técnicas e não técnicas
  43. BDD Gherkin Na mais do que um template Modelo ajuda

    a explicar testes e comportamento de software para pessoas técnicas e não técnicas Comunicação
  44. 1 - Critérios de aceite Somente podemos aceitar cartões de

    crédito com bandeiras VISA e MASTERCARD
  45. Cenário 1 1 - Critérios de aceite Somente podemos aceitar

    cartões de crédito com bandeiras VISA e MASTERCARD
  46. Dado Quando Então 1 - Critérios de aceite Cenário 1

    Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  47. Dado Quando Então Comprador que ainda não comprou nada 1

    - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  48. Dado Quando Então Comprador que ainda não comprou nada ainda

    1 - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD Descreve como os dados estavam antes da execução
  49. Dado Quando Então Comprador que ainda não comprou nada 1

    - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  50. Dado Quando Então Comprador que ainda não comprou nada Tenta

    finalizar compra com cartão de crédito Visa 1 - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  51. Dado Quando Então Comprador que ainda não comprou nada Tenta

    finalizar compra com cartão de crédito Visa 1 - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD Descreve a ação que será chamada e seus inputs
  52. Dado Quando Então Comprador que ainda não comprou nada Tenta

    finalizar compra com cartão de crédito Visa 1 - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  53. Dado Quando Então Comprador que ainda não comprou nada Tenta

    finalizar compra com cartão de crédito Visa Deve existir um registro na tabela x 1 - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  54. Dado Quando Então Comprador que ainda não comprou nada Tenta

    finalizar compra com cartão de crédito Visa Registra pagamento no gateway x 1 - Critérios de aceite Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD Descreve como os dados estarão após a execução
  55. Dado Quando Então 1 - Critérios de aceite Cenário 2

    Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  56. Dado Quando Então 1 - Critérios de aceite Cenário 2

    Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  57. Dado Quando Então Comprador que ainda não comprou nada 1

    - Critérios de aceite Cenário 2 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  58. Dado Quando Então Comprador que ainda não comprou nada Tenta

    finalizar compra com cartão de crédito Hipercard 1 - Critérios de aceite Cenário 2 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  59. Dado Quando Então Comprador que ainda não comprou nada Tenta

    finalizar compra com cartão de crédito Hipercard Não deve existir registros na tabela x 1 - Critérios de aceite Cenário 2 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  60. Comprador de Livro utilizando cartão de crédito Hipercard Critérios de

    aceite Cenário 2 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  61. Comprador de Livro utilizando cartão de crédito Hipercard Critérios de

    aceite Comprador de Livro utilizando cartão de crédito Visa Cenário 2 Cenário 1 Somente podemos aceitar cartões de crédito com bandeiras VISA e MASTERCARD
  62. BDD Foca no comportamento de uma funcionalidade Escrito a texto

    Livre Escrito por Negócio/Engenharia Escrito antes de começar o desenvolvimento
  63. Entrega em prod Épico Definir todos os critérios de aceite

    Hist. de Usuário Definir todos os cenários de teste
  64. Entrega em prod Épico Definir todos os critérios de aceite

    Hist. de Usuário Definir todos os cenários de teste
  65. Entrega em prod Épico Definir todos os critérios de aceite

    Hist. de Usuário Definir todos os cenários de teste Impl. Testes
  66. Entrega em prod Épico Definir todos os critérios de aceite

    Hist. de Usuário Definir todos os cenários de teste Impl. Testes
  67. Entrega em prod Épico Definir todos os critérios de aceite

    Hist. de Usuário Definir todos os cenários de teste Impl. Testes Comportamento
  68. Entrega em prod Épico Definir todos os critérios de aceite

    Hist. de Usuário Definir todos os cenários de teste Impl. Testes Impl. Código Comportamento
  69. Entrega em prod Épico Definir todos os critérios de aceite

    Hist. de Usuário Definir todos os cenários de teste Impl. Testes Impl. Código Comportamento
  70. Comprador de Livro utilizando cartão de crédito Hipercard Cenário 2

    @Test public void mustNotAllowPaymentWithCreditCardOtherCreditCard (){ CreditCard creditCardHiper = saleMock.getCreditCard(); databaseMock().emptyDatabase(); Boolean success = saleService.finlizeSale(creditCardHiper ); Assertions.assertFalse(success); }
  71. Comprador de Livro utilizando cartão de crédito Hipercard Cenário 2

    @Test public void mustNotAllowPaymentWithCreditCardOtherCreditCard (){ CreditCard creditCardHiper = saleMock.getCreditCard(); databaseMock().emptyDatabase(); Boolean success = saleService.finlizeSale(creditCardHiper ); Assertions.assertFalse(success); }
  72. Comprador de Livro utilizando cartão de crédito Hipercard Cenário 2

    @Test public void mustNotAllowPaymentWithCreditCardOtherCreditCard (){ CreditCard creditCardHiper = saleMock.getCreditCard(); databaseMock().emptyDatabase(); DADO Boolean success = saleService.finlizeSale(creditCardHiper ); Assertions.assertFalse(success); }
  73. Comprador de Livro utilizando cartão de crédito Hipercard Cenário 2

    @Test public void mustNotAllowPaymentWithCreditCardOtherCreditCard (){ CreditCard creditCardHiper = saleMock.getCreditCard(); databaseMock().emptyDatabase(); DADO Boolean success = saleService.finlizeSale(creditCardHiper ); Assertions.assertFalse(success); }
  74. Comprador de Livro utilizando cartão de crédito Hipercard Cenário 2

    @Test public void mustNotAllowPaymentWithCreditCardOtherCreditCard (){ CreditCard creditCardHiper = saleMock.getCreditCard(); databaseMock().emptyDatabase(); DADO Boolean success = saleService.finlizeSale(creditCardHiper ); QUANDO Assertions.assertFalse(success); }
  75. Comprador de Livro utilizando cartão de crédito Hipercard Cenário 2

    @Test public void mustNotAllowPaymentWithCreditCardOtherCreditCard (){ CreditCard creditCardHiper = saleMock.getCreditCard(); databaseMock().emptyDatabase(); DADO Boolean success = saleService.finlizeSale(creditCardHiper ); QUANDO Assertions.assertFalse(success); }
  76. Comprador de Livro utilizando cartão de crédito Hipercard Cenário 2

    @Test public void mustNotAllowPaymentWithCreditCardOtherCreditCard (){ CreditCard creditCardHiper = saleMock.getCreditCard(); databaseMock().emptyDatabase(); DADO Boolean success = saleService.finlizeSale(creditCardHiper ); QUANDO Assertions.assertFalse(success); ENT˜˜˜AO }
  77. Comprador de Livro utilizando cartão de crédito Hipercard Somente podemos

    aceitar cartões de crédito com bandeiras VISA e MASTERCARD Critérios de aceite Comprador de Livro utilizando cartão de crédito Visa Cenário 2 Cenário 1
  78. Comprador de Livro utilizando cartão de crédito Hipercard Somente podemos

    aceitar cartões de crédito com bandeiras VISA e MASTERCARD Critérios de aceite Comprador de Livro utilizando cartão de crédito Visa Cenário 2 Cenário 1
  79. Comprador de Livro utilizando cartão de crédito Hipercard Somente podemos

    aceitar cartões de crédito com bandeiras VISA e MASTERCARD Critérios de aceite Comprador de Livro utilizando cartão de crédito Visa Cenário 2 Cenário 1
  80. Comprador de Livro utilizando cartão de crédito Hipercard Somente podemos

    aceitar cartões de crédito com bandeiras VISA e MASTERCARD Critérios de aceite Comprador de Livro utilizando cartão de crédito Visa Cenário 2 Cenário 1
  81. Comprador de Livro utilizando cartão de crédito Hipercard Somente podemos

    aceitar cartões de crédito com bandeiras VISA e MASTERCARD Critérios de aceite Comprador de Livro utilizando cartão de crédito Visa Cenário 2 Cenário 1 Teste de Unidade
  82. Comprador de Livro utilizando cartão de crédito Hipercard Somente podemos

    aceitar cartões de crédito com bandeiras VISA e MASTERCARD Critérios de aceite Comprador de Livro utilizando cartão de crédito Visa Cenário 2 Cenário 1 Teste de Unidade Teste de Unidade
  83. Epic Critérios de aceite User Story Cenários de Teste Teste

    de Unidade Teste de Unidade Negócio Engenharia
  84. Cenários de Teste Teste de Unidade Teste de Unidade Negócio

    Engenharia Epic Critérios de aceite User Story
  85. Cenários de Teste Teste de Unidade Teste de Unidade Negócio

    Engenharia Epic Critérios de aceite User Story
  86. Funcionalidades bem definidas e a comunicação? Critérios de aceite bem

    definidos Cenários de teste cobrindo os critérios de aceite
  87. Funcionalidades bem definidas e a comunicação? Critérios de aceite bem

    definidos Cenários de teste cobrindo os critérios de aceite Testes automatizados cobrindo os cenários de teste