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

PHPExperience 2016 - Pirâmide de Testes

PHPExperience 2016 - Pirâmide de Testes

Nesta palestra são apresentados o pattern de automação conhecido como Pirâmide de Testes e o anti pattern largamente usado chamado de Ice Cream Cone.

Joind.in: https://joind.in/talk/73f8b

Diana Arnos

March 22, 2016
Tweet

More Decks by Diana Arnos

Other Decks in Programming

Transcript

  1. Diana Ungaro Arnos Analista Desenvolvedora @ Agrosmart Instrutora @ Caldo

    e Gouveia @dianaarnos www.dianaarnos.com PHP Web Developer
  2. A Pirâmide ◉ Boa prática de automação ◉ Indicador visual

    da proporção ideal de tipos de testes ◉ Serviço? (http://martinfowler.com/bliki/SubcutaneousTest.html) ◉ De onde veio? UI SERVICE UNIT
  3. “ One reason teams found it difficult to write tests

    sooner was because they were automating at the wrong level. An effective test automation strategy calls for automating tests at three different levels, which depicts the test automation pyramid. (Mike Cohn - Succeeding With Agile: Software Development Using Scrum)
  4. Era uma vez, na vida real... ◉ "Esse sistema é

    legado, não dá 'pra' mexer direito e fazer os testes que deveria" ou "não é grande coisa, não precisa de tantos testes de unidade assim" Anti-pattern: Ice cream cone ◉ "A gente garante testando entre os módulos" ou "é só 'bater na API' e comparar os resultados" ◉ "Rodamos o Selenium na interface aqui e já era" ou "só fazer o 'click through' até finalizar o processo" ◉ "Só subir pra staging que pessoal de produto 'testa'". Tudo. MANUAL UNIT SERVICE UI
  5. A Base ◉ Testes de unidade são os mais "fáceis"

    e rápidos de serem executados ◉ Indicam exatamente (ou quase) onde está o erro ◉ Garantem a integridade das menores "peças" do sistema UNIT
  6. O Topo ◉ Testes de UI têm execução lenta ◉

    São frágeis ◉ Mais complexos para escrever UI Automatize apenas smoke tests Testar interface e não lógica de processamento
  7. The man in the middle ◉ Testes de integração ◉

    Testes de API ◉ Testes fim-a-fim sem envolver a interface ◉ Resumindo: o que foge ao escopo do teste de unidade mas não chega à interface SERVICE
  8. E se implementar a pirâmide... ◉ Builds mais rápidos ◉

    Aplicação mais confiável ◉ Manutenção facilitada, tanto dos testes quanto da aplicação ◉ Se quebrar o build, quebra de maneira assertiva E lembre-se: testes validam a solução e garantem o funcionamento anterior