Pirâmide de Testes
Diana Ungaro Arnos
Analista Desenvolvedora @ Agrosmart
Instrutora @ Caldo e Gouveia
@dianaarnos www.dianaarnos.com
PHP Web Developer, PHPWomen Evangelist
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
Mike Cohn
Por quê essa divisão?
“
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)
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
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
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
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
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
Perguntas?
◉ @dianaarnos
◉ Joind.in: https://joind.in/talk/73f8b
Obrigada!

PHPExperience 2016 - Pirâmide de Testes

  • 1.
  • 2.
    Diana Ungaro Arnos AnalistaDesenvolvedora @ Agrosmart Instrutora @ Caldo e Gouveia @dianaarnos www.dianaarnos.com PHP Web Developer, PHPWomen Evangelist
  • 3.
    A Pirâmide ◉ Boaprá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
  • 4.
  • 5.
    Por quê essadivisão?
  • 6.
    “ One reason teamsfound 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)
  • 7.
    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
  • 8.
    A Base ◉ Testesde 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
  • 9.
    O Topo ◉ Testesde 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
  • 10.
    The man inthe 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
  • 11.
    E se implementara 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
  • 12.
    Perguntas? ◉ @dianaarnos ◉ Joind.in:https://joind.in/talk/73f8b Obrigada!