Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015

Post on 20-Jul-2015

444 views 1 download

Transcript of Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015

A importância dos testes automatizados

no dia a dia_

Rafael Ponte @rponte

@rponte

Fortaleza - Terra do Sol

Mas antes de 2014…

Como os clientes chegavam até nós...

Solucionar bugs críticos e “apagar incêndios”

Solucionar bugs críticos e “apagar incêndios”

Migrar ou Reescrever sistemas

Solucionar bugs críticos e “apagar incêndios”

Migrar ou Reescrever sistemas

Treinar a equipe

Solucionar bugs críticos e “apagar incêndios”

Migrar ou Reescrever sistemas

Treinar a equipe

Migrar ou reescrever sistemas de:

Migrar ou reescrever sistemas de:

* Desktop para Web

Migrar ou reescrever sistemas de:

* Desktop para Web

* PHP para Java

Migrar ou reescrever sistemas de:

* Desktop para Web

* PHP para Java

* Java para Ruby on Rails

Migrar ou reescrever sistemas de:

* Desktop para Web

* PHP para Java

* Java para Ruby on Rails

* Java para Java

após alguns minutos de conversa...

com o gerente ou a equipe, é comum escutar...após alguns minutos de conversa...

“Temos uma equipe de 8 programadores. E +3 vagas

em aberto.” - Gerente

“Criamos nosso próprio framework para agilizar o

trabalho.” - Arquiteto

“Eu li que JSF2 é mais simples do que Struts.”

Programador

“Fiz uma PoC com Ruby On Rails. É mais produtivo do que Java!” - Arquiteto

“Com o “Caker” podemos gerar cadastros em minutos.” - Gerente

Eles querem mais

PRODUTIVIDADE ?!

Eles querem mais

PRODUTIVIDADE?!não

Eles procuram VELOCIDADE no desenvolvimento de novas

funcionalidades

Produtividade =

Velocidade

Produtividade =

Velocidadenão

É preferível esperar um pouco mais e ter um resultado melhor?

Eles estão focando no local errado...

Eles estão focando no local errado...

* Java para Ruby on Rails

Mudar a forma como o programador

trabalha!

Programadores Resistência a mudança?

Tuesday, December 15, 2009

Zona de Conforto

Programador Cowboy

Code and Fix

Code and Fix

Abandona sua disciplina na hora do aperto

Code and Fix

Abandona sua disciplina na hora do aperto

O programador que os gerentes adoram

Programador Profissional

Disciplinado

Disciplinado

Mantém a tranquilidade e disciplina

Disciplinado

Mantém a tranquilidade e disciplina

Se mantém em evolução

Evolução contínua traz aprendizado…

Boas Práticas

Escrita de Testes Automatizados

Testes Manuais versus

Testes Automatizados

Não é mais demorado?

Prod

utiv

idad

e

0

17.5

35

52.5

70

Tempo

1 2 3 4 5 6 7 8

"Cowboy" Profissional

Produtividade

Se a coisa já é ruim com um programador cowboy...

imagina uma equipe de cowboys

Cowboys Profissionais

1s

2s

3s

4s

5s

6s

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

6s

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

6s

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

6s

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

6s

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Não é dificil perceber alguns padrões...

REINCIDÊNCIA DE BUGS1

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

FUNCIONALIDADES “BUGAM” DO NADA2

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

DIMINUIÇÃO DE NOVAS FUNCIONALIDADES3

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Por que isso acontece?

reincidência de bugs Não escrevem testes!

1

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

funcionalidades “bugam” do nada Não fazem teste de

regressão

2

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

diminuição de novas funcionalidades

Sem disciplina com testes

3

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Medo

Segurança

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Medo Insegurança

Segurança Feedback

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Medo Insegurança

Evolução Lenta

Segurança Feedback

Produtividade

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Medo Insegurança

Evolução Lenta Cliente Frustrado

Segurança Feedback

Produtividade Cliente Satisfeito

Cowboys Profissionais

1s F1

2s

3s

4s

5s

F2F3F4F5 F2F1

F6F2F7F4F8 F4F1 F5

F6F9F7F4F10 F7F6 F8

F6F11F7F12F13 F10F9 F8 F11

F14F10F7F12 F13F12 F14 F15

6s F1F10F4F12 F17F16 F18 F19F9

F = Nova Funcionalidade F = Funcionalidade com Bug

Medo Insegurança

Evolução Lenta Cliente Frustrado Sem credibilidade

Segurança Feedback

Produtividade Cliente Satisfeito

Credibilidade

Não é dificil escrever testes automatizados

Invista em você mesmo! ESTUDE!

Mas requer um tempo de maturidade

CONCLUSÃO

Você só percebe os benefícios dos testes entre

6 meses e 1 ano

não existe uma receita de bolo para desenvolver software

mas sim um conjunto de princípios e

práticas que podem te ajudar a desenvolver melhor

testes automatizados

é apenas a ponta do iceberg

permita que sua equipe trabalhe melhor

permita que sua empresa entregue software melhor

permita-se ser um profissional melhor

use testes automatizados

testes automatizados

eu aprovo!

Rafael Ponterponte@triadworks.com.br