SlideShare a Scribd company logo
1 of 12
Download to read offline
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!

More Related Content

What's hot

Mock it with mockito
Mock it with mockitoMock it with mockito
Mock it with mockitoRenan Uchôa
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjugBruno Maomeh
 
Testes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGTestes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGbeiraJUG
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
PHP Experience 2016 - [Palestra] Pirâmide de Testes
PHP Experience 2016 - [Palestra] Pirâmide de TestesPHP Experience 2016 - [Palestra] Pirâmide de Testes
PHP Experience 2016 - [Palestra] Pirâmide de TestesiMasters
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec ComIgor Rozani
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiInael Rodrigues
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Bruno Maomeh
 
Mocking Test - QA Ninja Conf 2016
Mocking Test - QA Ninja Conf 2016Mocking Test - QA Ninja Conf 2016
Mocking Test - QA Ninja Conf 2016Renato Groff
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?Samuel Lourenço
 
Teste Dirigido por Modelos
Teste Dirigido por ModelosTeste Dirigido por Modelos
Teste Dirigido por ModelosNatã Melo
 
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Robson Bittencourt
 
Testes de Unidade - Unidade II
Testes de Unidade - Unidade IITestes de Unidade - Unidade II
Testes de Unidade - Unidade IIJoão Lourenço
 

What's hot (20)

Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
Mock it with mockito
Mock it with mockitoMock it with mockito
Mock it with mockito
 
Palestra tdd - rsjug
Palestra tdd - rsjugPalestra tdd - rsjug
Palestra tdd - rsjug
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
Testes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUGTestes Unitários - 1 Sessão beiraJUG
Testes Unitários - 1 Sessão beiraJUG
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
PHP Experience 2016 - [Palestra] Pirâmide de Testes
PHP Experience 2016 - [Palestra] Pirâmide de TestesPHP Experience 2016 - [Palestra] Pirâmide de Testes
PHP Experience 2016 - [Palestra] Pirâmide de Testes
 
JUnit Experience
JUnit ExperienceJUnit Experience
JUnit Experience
 
Teste baseado em modelos
Teste baseado em modelosTeste baseado em modelos
Teste baseado em modelos
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta Jabuti
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016
 
Mocking Test - QA Ninja Conf 2016
Mocking Test - QA Ninja Conf 2016Mocking Test - QA Ninja Conf 2016
Mocking Test - QA Ninja Conf 2016
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
Teste Dirigido por Modelos
Teste Dirigido por ModelosTeste Dirigido por Modelos
Teste Dirigido por Modelos
 
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
 
Testes de Unidade - Unidade II
Testes de Unidade - Unidade IITestes de Unidade - Unidade II
Testes de Unidade - Unidade II
 

Viewers also liked

Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Diana Ungaro Arnos
 
Git - Saia do Básico!
Git - Saia do Básico!Git - Saia do Básico!
Git - Saia do Básico!Thamara Hessel
 
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...iMasters
 
InterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersInterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersiMasters
 
React e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel CoutoReact e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel CoutoiMasters
 
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266iMasters
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouqueceriMasters
 
InterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e PythonInterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e PythoniMasters
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven DesignRafael Ponte
 

Viewers also liked (9)

Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
Sistemas Distribuídos e PHP - Darkmira Tour BR 2016
 
Git - Saia do Básico!
Git - Saia do Básico!Git - Saia do Básico!
Git - Saia do Básico!
 
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
InterCon 2016 - Desenvolvimento para interfaces em vídeo e cases da plataform...
 
InterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersInterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application Developers
 
React e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel CoutoReact e Ratchet, async e websockets com PHP, por Gabriel Couto
React e Ratchet, async e websockets com PHP, por Gabriel Couto
 
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
InterCon 2016 - Internet of “Thinking” – IoT sem BS com ESP8266
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
 
InterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e PythonInterCon 2016 - Backend do IoT com RethinkDB e Python
InterCon 2016 - Backend do IoT com RethinkDB e Python
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven Design
 

Similar to Pirâmide de Testes para Automatização Efetiva

GOTEST-Aula5-Automacao-Parte2.pdf
GOTEST-Aula5-Automacao-Parte2.pdfGOTEST-Aula5-Automacao-Parte2.pdf
GOTEST-Aula5-Automacao-Parte2.pdfRodolphoCesar2
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptxAnaKlyssia1
 
Treinamento Appium - Introdução
Treinamento Appium - IntroduçãoTreinamento Appium - Introdução
Treinamento Appium - IntroduçãoAndré Salla
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
 
A importância de utilizar testes automatizados
A  importância   de utilizar  testes automatizadosA  importância   de utilizar  testes automatizados
A importância de utilizar testes automatizadosDiego Allan Oliveira
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
IT Talks - Testes Automatizados - Porque você deve ter? Versão: Final
IT Talks - Testes Automatizados - Porque você deve ter? Versão: FinalIT Talks - Testes Automatizados - Porque você deve ter? Versão: Final
IT Talks - Testes Automatizados - Porque você deve ter? Versão: FinalClayton K. N. Passos
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoflavio1110
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosStefan Teixeira
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e VerdadesElias Nogueira
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 

Similar to Pirâmide de Testes para Automatização Efetiva (20)

GOTEST-Aula5-Automacao-Parte2.pdf
GOTEST-Aula5-Automacao-Parte2.pdfGOTEST-Aula5-Automacao-Parte2.pdf
GOTEST-Aula5-Automacao-Parte2.pdf
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
 
Treinamento Appium - Introdução
Treinamento Appium - IntroduçãoTreinamento Appium - Introdução
Treinamento Appium - Introdução
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
A importância de utilizar testes automatizados
A  importância   de utilizar  testes automatizadosA  importância   de utilizar  testes automatizados
A importância de utilizar testes automatizados
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
IT Talks - Testes Automatizados - Porque você deve ter? Versão: Final
IT Talks - Testes Automatizados - Porque você deve ter? Versão: FinalIT Talks - Testes Automatizados - Porque você deve ter? Versão: Final
IT Talks - Testes Automatizados - Porque você deve ter? Versão: Final
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
 
Automação de Testes - How to do It Right
Automação de Testes - How to do It RightAutomação de Testes - How to do It Right
Automação de Testes - How to do It Right
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 

Pirâmide de Testes para Automatização Efetiva

  • 2. Diana Ungaro Arnos Analista Desenvolvedora @ Agrosmart Instrutora @ Caldo e Gouveia @dianaarnos www.dianaarnos.com PHP Web Developer, PHPWomen Evangelist
  • 3. 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
  • 5. Por quê essa divisão?
  • 6. “ 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)
  • 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 ◉ 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. Perguntas? ◉ @dianaarnos ◉ Joind.in: https://joind.in/talk/73f8b Obrigada!