phpexperience 2016 - pirâmide de testes

12
Pirâmide de Testes

Upload: diana-ungaro-arnos

Post on 15-Feb-2017

460 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: PHPExperience 2016 - Pirâmide de Testes

Pirâmide de Testes

Page 2: PHPExperience 2016 - Pirâmide de Testes

Diana Ungaro Arnos

Analista Desenvolvedora @ Agrosmart

Instrutora @ Caldo e Gouveia

@dianaarnos www.dianaarnos.com

PHP Web Developer, PHPWomen Evangelist

Page 3: PHPExperience 2016 - Pirâmide de Testes

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

Page 4: PHPExperience 2016 - Pirâmide de Testes

Mike Cohn

Page 5: PHPExperience 2016 - Pirâmide de Testes

Por quê essa divisão?

Page 6: PHPExperience 2016 - Pirâmide de Testes

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)

Page 7: PHPExperience 2016 - Pirâmide de Testes

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

Page 8: PHPExperience 2016 - Pirâmide de Testes

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

Page 9: PHPExperience 2016 - Pirâmide de Testes

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

Page 10: PHPExperience 2016 - Pirâmide de Testes

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

Page 11: PHPExperience 2016 - Pirâmide de Testes

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

Page 12: PHPExperience 2016 - Pirâmide de Testes

Perguntas?

◉ @dianaarnos

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

Obrigada!