phpexperience 2016 - pirâmide de testes

Post on 15-Feb-2017

460 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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!

top related