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

Desenvolvendo Software de Qualidade (PHPeetup)

Desenvolvendo Software de Qualidade (PHPeetup)

Você deixa seu usuário feliz? Não!? Talvez!?

Minha ideia com essa talk é mostrar a importância da fase de levantamento de requisitos e como ela impacta no que está sendo desenvolvido. Falaremos sobre User Stories, BDD (Behavior Driven Development), obviedade, etc.

Jonata Weber

May 23, 2016
Tweet

More Decks by Jonata Weber

Other Decks in Programming

Transcript

  1. O que é especificação de software? É a definição do

    que se espera que um programa de computador faça.
  2. Prezado, Preciso que você desenvolva uma tela no sistema que

    permite consultar em tempo real quantas cervejas foram vendidas por cada representante. Atenciosamente, Seu Chefe!
  3. O QUE + QUEM + PORQUÊ Preciso que você desenvolva

    uma tela no sistema que permite consultar em tempo real quantas cervejas foram vendidas por cada representante, pois assim os coordenadores de vendas poderão acompanhar com facilidade numa televisão de 42” – recém instalada na parede da sala da coordenação – e assim parabenizá- los no final do dia.
  4. SENDO… POSSO… PARA QUE… SENDO um vendedor que realiza 50

    visitas por dia POSSO consultar as últimas compras de cada cliente PARA QUE ao chegar no cliente eu possa consultar qual foi sua última compra, e assim conseguir negociar com ele estando melhor informado.
  5. Por que escrever histórias de usuário? Facilitar a comunicação e

    o entendimento entre o cliente e a equipe de desenvolvimento.
  6. SENDO… POSSO… PARA QUE… SENDO um vendedor que realiza 50

    visitas por dia POSSO consultar as últimas compras de cada cliente PARA QUE ao chegar no cliente eu possa consultar qual foi sua última compra, e assim conseguir negociar com ele estando melhor informado.
  7. #1 Em forma de bullets! • Deve ser capaz de

    exibir as últimas três compras quando não tiver conexão com a internet; • Deve armazenar as últimas três compras dos clientes quando não tiver conexão com a internet; • Deve possibilitar no máximo 2 cliques para acessar as últimas compras do cliente; • Deve funcionar muito bem nos tablets e smartphones.
  8. DADO QUE estou com internet QUANDO acesso as últimas compras

    do cliente ENTÃO é mostrado uma tabela em ordem decrescente pela data da compra. Cenário: Acessar as últimas compras, com internet.
  9. DADO QUE estou sem internet QUANDO acesso as últimas compras

    do cliente ENTÃO é mostrado uma tabela com as "3" últimas compras do cliente a partir da última atualização E em ordem decrescente pela data da compra. Cenário: Acessar as últimas compras, sem internet.
  10. DADO QUE estou no smartphone/tablet E sem conexão com a

    internet QUANDO conecto na internet ENTÃO é realizada uma atualização automática das "3" últimas compras de todos os clientes E armazenada no dispositivo. Cenário: Atualizar as últimas compras.
  11. (

  12. "Os clientes estão reclamando muito dos atrasos nas entregas". 1.

    Por que há atrasos nas entregas? Porque o produto nunca sai da fábrica no momento que deveria. 2. Por que o produto não sai da fábrica quando deveria? Porque as ordens de produção atrasam. 3. Por que as ordens de produção atrasam? Porque o cálculo das horas de produção sempre fica menor do que a realidade. 4. Por que o cálculo das horas sempre fica menor do que a realidade? Porque estamos usando um software ultrapassado. 5. Por que estamos usando um software ultrapassado? Porque o engenheiro responsável ainda não recebeu treinamento no software mais atual. 6. Por que o engenheiro ainda não recebeu o treinamento no software mais atual? Porque não há um planejamento adequado no processo de capacitação e treinamento.
  13. Por qual motivo são 5 porquês? • No 1º porquê,

    temos um sintoma • No 2º porquê, temos uma desculpa • No 3º porquê, temos um culpado • No 4º porquê, temos uma causa • No 5º porquê, temos a causa raiz
  14. "Na raiz de todo problema que parece técnico quase sempre

    há uma problemática humana". Eric Ries, Startup Enxuta
  15. )

  16. Casos de testes precisam responder... • Qual o cenário do

    meu teste? • Quais as restrições de execução? • Quais os valores de entrada? • Qual o resultado ou comportamento esperado?
  17. Cenário: Estoque disponível. DADO QUE o estoque da coca-cola é

    de 50 unidades QUANDO informo uma venda de 40 unidades ENTÃO a venda é registrada E o estoque passa a ser de 10 unidades BDD responde tudo isso!
  18. Cenário: Estoque indisponível. DADO QUE o estoque da coca-cola é

    de 50 unidades QUANDO informo uma venda de 60 unidades ENTÃO a venda não é registrada E é exibida na tela a mensagem "estoque insuficiente!" BDD responde tudo isso!
  19. python + pytest + lettuce Baixe aqui todo o material

    https://github.com/jonataa/exemplos-bdd-python
  20. Referências • Histórias de Usuário (User Stories) ◦ eBook -

    http://wildtech.com.br/historias-de-usuario/ ◦ INVEST and SMART - http://xp123.com/2003/08/17/invest-in-good-stories-and-smart-tasks/ • Testes de Software ◦ http://www.devmedia.com.br/artigo-engenharia-de-software-introducao-a-teste-de-software/8035 • TDD ◦ XP - http://desenvolvimentoagil.com.br/xp • BDD ◦ Blog do Criador - http://dannorth.net/introducing-bdd/ ◦ Python + Lettuce - http://lettuce.it