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

Curso Boas Práticas

Curso Boas Práticas

Slides usados no curso de boas práticas ágeis na VTI.

Hedley Luna

October 20, 2014
Tweet

More Decks by Hedley Luna

Other Decks in Programming

Transcript

  1. QUEM? • Graduado em Ciência da Computação - UECE •

    Mestrando em Sistemas de Apoio a Decisão - UECE • Desenvolvedor e Agilista desde 2010 • Test Freak
  2. ROTEIRO • O desenvolvedor ágil! • XP • Testes? •

    Testes Automatizados • TDD - BDD - ATDD - DDD - [Insira uma letra]DD • Mock • "Mocks aren’t stubs” • Testes Integração • Mais…
  3. O DESENVOLVEDOR ÁGIL • O que é ágil? • C-O-M-U-N-I-C-A-Ç-Ã-O

    • Testes - TDD/BDD recomendável • Pair Programming • Continous Integration • Clean Coding • Proatividade • Hierarquia não definida ou inexistente • Comunicação continua com o P.O.. • Disseminação de conhecimento • Responsabilidade Compartilhada
  4. XP • eXtreme Programming • É o que importa para

    nós :) • Boas práticas de desenvolvimento
  5. TESTES? • “é um processo, ou uma série de processos,

    projetado para se certificar a respeito do código de computador” • Qualidade • Segurança • Responsabilidade
  6. FERRAMENTAS • Java: JUnit, TestNG e outros • PHP: PHPUnit,

    SimpleTest e outros • Ruby: RSpec, Cucumber e outros • JavaScript: Jasmine, Mocha, Karma e outros • .NET: Visual Studio • Delphi(SIM!): DUnit • Haskell: HUnit
  7. TDD - BDD - ATDD - DDD • TDD: Test

    Driven Development • BDD: Behaviour Driven Development • ATDD: Aceptance Test Driven Development • DDD: Domain Driven Design
  8. TDD • Repitam comigo: “Só escrevo devo escrever um novo

    código de produção se algum teste anterior tiver quebrado.” - Confúncio
  9. MOCKS • "Mock objects ou somente Mock em desenvolvimento de

    software são objetos que simulam o comportamento de objetos reais de forma controlada. São normalmente criados para testar o comportamento de outros objetos.” - Desciclopédia
  10. “MOCKS AREN’T SUBS" • Stubs são objetos que somente guardam

    informações. • Mocks são objetos que guardam informações predeterminadas, assim como os stubs, mas também têm comportamento prédeterminado.
  11. PROBLEMA 2 • Cenário: Excluir ciclo de vida de um

    preso • Criar classe GerenciadorCicloDeVida • Mocks: GerenciadorEntradaPreso, GerenciadorSaidaPreso e GerenciadorDocumentoPreso
  12. TESTES DE INTEGRAÇÃO • "Teste de integração é a fase

    do teste de software em que módulos são combinados e testados em grupo. Ela sucede o teste de unidade, em que os módulos são testados individualmente, e antecede o teste de sistema, em que o sistema completo (integrado) é testado num ambiente que simula o ambiente de produção.” - Wikipédia
  13. TESTES DE INTEGRAÇÃO • Parafraseando Bruno Maomeh e Matheus Fechine:

    • “Se conversa com o DB, não é teste unitário” • “Se comunica pela rede, não é teste unitário” • "Se ele toca no sistema de arquivos, não é teste unitário” • “Se ele não pode rodar junto de outro teste, não é teste unitário."
  14. TESTE DE INTEGRAÇÃO São testes de caixa-preta, pois você não

    sabe como aquela funcionalidade está implementada, só espera que a saída dela seja o que você quer.
  15. PROBLEMA 3 • Cenário: Transferência de preso para uma outra

    unidade penitenciária. • Classes: Preso e Presidio. • Testar se um preso foi realmente desvinculado de um presidio e se foi vinculado a outro. • Testar se realmente a quantidade de presos nos dois presídios mudou. • Integração com BD • Schema do BD: • Tabela Preso: ID, Nome, CPF, Nascimento e ID_Presidio. • Tabela Presidio: ID, Nome, CNPJ.
  16. AINDA NÃO ACABOU! • Próximos capítulos…. • Testes de Aceitação

    • Cobertura de Testes • O mais difícil: O que NÃO TESTAR?! • Refatoração de códigos legado