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

Desenvolvendo Software de Qualidade

Jonata Weber
September 08, 2015

Desenvolvendo Software de Qualidade

Apresentação realizada na UEFS durante a disciplina de Análise.

Jonata Weber

September 08, 2015
Tweet

More Decks by Jonata Weber

Other Decks in Technology

Transcript

  1. 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!
  2. 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.
  3. 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.
  4. Por que escrever histórias de usuário? Facilitar a comunicação e

    o entendimento entre o cliente e a equipe de desenvolvimento.
  5. Em forma de bullets! • Deve ser capaz de exibir

    as últimas três compras quando não tiver conexão com a internet; • Deve baixar 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.
  6. 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.
  7. 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.
  8. 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.
  9. O que é Teste de Software? É um processo de

    execução de um produto para determinar se ele atingiu suas especificações.
  10. Possíveis Falhas • A especificação está errada ou incompleta •

    O desenvolvedor interpretou/implementou a especificação de maneira equivocada • O ambiente do usuário não é compatível com o software
  11. (

  12. 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
  13. "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.
  14. "Na raiz de todo problema que parece técnico quase sempre

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

  16. O que é um Caso de Teste? "Descreve uma condição

    particular a ser testada e é composto por valores, restrições para a sua execução e um resultado ou comportamento esperado".
  17. 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?
  18. 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!
  19. 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!
  20. 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 Cenário #1: Estoque disponível
  21. 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!" Cenário #2: Estoque indisponível
  22. 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