SlideShare uma empresa Scribd logo
1 de 144
Baixar para ler offline
A importância dos
                           testes automatizados
                                               no dia a dia_


                                Rafael Ponte
                                  @rponte


Monday, February 4, 2013
@rponte




Monday, February 4, 2013
Monday, February 4, 2013
Como os clientes chegam
                           até nós...



Monday, February 4, 2013
Solucionar bugs críticos
                            e “apagar incêndios”




Monday, February 4, 2013
Solucionar bugs críticos
                                e “apagar incêndios”




        Migrar ou Reescrever
              sistemas
Monday, February 4, 2013
Treinar a             Solucionar bugs críticos
          equipe                e “apagar incêndios”




        Migrar ou Reescrever
              sistemas
Monday, February 4, 2013
Treinar a             Solucionar bugs críticos
          equipe                e “apagar incêndios”




        Migrar ou Reescrever
              sistemas
Monday, February 4, 2013
Migrar ou reescrever
 sistemas de:




Monday, February 4, 2013
Migrar ou reescrever
 sistemas de:
                           * Desktop para Web




Monday, February 4, 2013
Migrar ou reescrever
 sistemas de:
                           * Desktop para Web
                           * PHP para Java




Monday, February 4, 2013
Migrar ou reescrever
 sistemas de:
                           * Desktop para Web
                           * PHP para Java
                           * Java para Ruby on Rails



Monday, February 4, 2013
Migrar ou reescrever
 sistemas de:
                           * Desktop para Web
                           * PHP para Java
                           * Java para Ruby on Rails
                           * Java para Java

Monday, February 4, 2013
após alguns minutos de conversa...




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




Monday, February 4, 2013
“Temos uma equipe de 8
                   programadores. E +3 vagas
                      em aberto.” - Gerente



Monday, February 4, 2013
“Criamos nosso próprio
                      framework para agilizar o
                         trabalho.” - Arquiteto



Monday, February 4, 2013
“Eu li que JSF2 é mais
                           simples do que GWT.”
                                      Programador



Monday, February 4, 2013
“Fiz uma PoC com Ruby
                    On Rails. É mais produtivo
                     do que Java!” - Arquiteto



Monday, February 4, 2013
“Com o “Caker” podemos
                       gerar cadastros em
                       minutos.” - Gerente



Monday, February 4, 2013
Eles querem mais
                           Produtividade?!


Monday, February 4, 2013
não ?!
                            Eles querem mais
                           Produtividade


Monday, February 4, 2013
Eles procuram VELOCIDADE
                    no desenvolvimento de novas
                           funcionalidades



Monday, February 4, 2013
Produtividade
                                =
                            Velocidade

Monday, February 4, 2013
não
                           Produtividade
                                =
                            Velocidade

Monday, February 4, 2013
Eles estão focando no local
           errado...




Monday, February 4, 2013
Eles estão focando no local
           errado...

                           * Java para Ruby on Rails




Monday, February 4, 2013
Mudar a forma como o
                           programador trabalha!



Monday, February 4, 2013
Programadores
                    Resistência a mudança?



Monday, February 4, 2013
Programador
                             Cowboy


Monday, February 4, 2013
Code and Fix

                   Abandona sua disciplina na
                       hora do aperto

                           O programador que os
                             gerentes adoram
Monday, February 4, 2013
Programador
                            Profissional


Monday, February 4, 2013
Disciplinado

                      Mantém a tranquilidade e
                            disciplina


                           Se mantém em evolução
Monday, February 4, 2013
Boas Práticas




Monday, February 4, 2013
Escrita de Testes
                           Automatizados



Monday, February 4, 2013
Testes Manuais
                                   versus
                           Testes Automatizados



Monday, February 4, 2013
Não é mais
                           demorado?


Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Produtividade
                                       "Cowboy"               Profissional


                        70


                       52.5
       Produtividade




                        35


                       17.5


                         0
                              1   2       3       4           5         6   7   8
                                                      Tempo
Monday, February 4, 2013
Se a coisa já é ruim com
                um programador cowboy...



Monday, February 4, 2013
imagina uma equipe de
                                   cowboys



Monday, February 4, 2013
F = Nova Funcionalidade   F = Funcionalidade com Bug


                           Cowboys      Profissionais

  1s
  2s
  3s
  4s
  5s
  6s


Monday, February 4, 2013
F = Nova Funcionalidade           F = Funcionalidade com Bug


                                     Cowboys    Profissionais

  1s            F5         F4   F3    F2   F1    F1   F2

  2s
  3s
  4s
  5s
  6s


Monday, February 4, 2013
F = Nova Funcionalidade           F = Funcionalidade com Bug


                                     Cowboys    Profissionais

  1s            F5         F4   F3    F2   F1    F1   F2

  2s            F8         F4   F7    F2   F6   F1    F4   F5

  3s
  4s
  5s
  6s


Monday, February 4, 2013
F = Nova Funcionalidade           F = Funcionalidade com Bug


                                     Cowboys    Profissionais

  1s            F5         F4   F3    F2   F1    F1   F2

  2s            F8         F4   F7    F2   F6   F1    F4   F5

  3s          F10          F4   F7    F9   F6   F6    F7   F8

  4s
  5s
  6s


Monday, February 4, 2013
F = Nova Funcionalidade             F = Funcionalidade com Bug


                                      Cowboys     Profissionais

  1s            F5         F4    F3    F2    F1    F1   F2

  2s            F8         F4    F7    F2    F6   F1    F4    F5

  3s          F10          F4    F7    F9    F6   F6    F7    F8

  4s          F13          F12   F7    F11   F6   F9    F10   F8   F11

  5s
  6s


Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s


Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
Não é dificil perceber
                alguns padrões...




Monday, February 4, 2013
reincidência de bugs



Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
funcionalidades
                           “bugam” do nada


Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
diminuição de novas
                             funcionalidades


Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
Por que isso acontece?



Monday, February 4, 2013
reincidência de bugs
                      Não escrevem testes!


Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
funcionalidades “bugam” do nada
                           Não fazem teste de
                               regressão


Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
diminuição de novas
                              funcionalidades
                           Disciplina com testes


Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
F = Nova Funcionalidade              F = Funcionalidade com Bug


                                      Cowboys      Profissionais

  1s            F5         F4    F3    F2    F1     F1    F2

  2s            F8         F4    F7    F2    F6    F1    F4    F5

  3s          F10          F4    F7    F9    F6    F6    F7    F8

  4s          F13          F12   F7    F11   F6    F9    F10   F8    F11

  5s                       F12   F7    F10   F14   F12   F13   F14   F15

  6s           F9          F12   F4    F10   F1    F16   F17   F18   F19




Monday, February 4, 2013
F = Nova Funcionalidade           F = Funcionalidade com Bug


                                     Cowboys    Profissionais

  1s            F5         F4   F3    F2   F1    F1   F2

  2s       Medo F2 F6 F1 F4 F5
              F7F8         F4Segurança
  3s   Insegurança F6 F6 F7 F8
      F10 F4  F7  F9          Feedback
     Evolução Lenta F9 Produtividade
  4s F13 F12 F7 F11 F6      F10 F8 F11
   Cliente Frustrado F12 F13 F14Satisfeito
  5s      F12 F7 F10 F14
                         Cliente F15
   Sem credibilidade F16 Credibilidade
  6s F9 F12 F4 F10 F1       F17 F18 F19




Monday, February 4, 2013
Não é dificil escrever
                           testes automatizados


Monday, February 4, 2013
Mas requer um tempo
                       de maturidade


Monday, February 4, 2013
tipos de testes
          testes de unidade
             testes de integração
                testes de aceitação


Monday, February 4, 2013
testes de unidade
                           menor unidade de código
                                 executável



Monday, February 4, 2013
menor
                   unidade na   =   método
                     POO



Monday, February 4, 2013
teste de    teste
                         =
                unidade    unitário


Monday, February 4, 2013
testes de unidade
    normalmente são:


                  > mais fáceis de escrever;
                  > muito rápidos para rodar;
                  > mais fáceis para rastrear
                  erros;


Monday, February 4, 2013
que tal rodar centenas ou
                       milhares de testes em
                             segundos?



Monday, February 4, 2013
feedback quase que instantâneo!
                             WOW!
Monday, February 4, 2013
testes de integração
                  seu código integrado ao banco
                     de dados, rede, disco etc



Monday, February 4, 2013
valida os componentes de
               software funcionando juntos




Monday, February 4, 2013
valida os componentes de
               software funcionando juntos
                           teste de “maxu” vai no banco de
                                       dados!




  Yuri Adams
Monday, February 4, 2013
e assim como os testes
                                 de unidade...
Monday, February 4, 2013
testes de integração
    normalmente são:


                  > mais fáceis de escrever;
                  > muito rápidos para rodar;
                  > mais fáceis para rastrear
                  erros;


Monday, February 4, 2013
feedback AINDA quase que
                                  instantâneo




Monday, February 4, 2013
testes de aceitação
                           o que o usuário espera que
                                    aconteça



Monday, February 4, 2013
teste



Monday, February 4, 2013
teste
                            end


Monday, February 4, 2013
teste
                            end
                             to
Monday, February 4, 2013
teste
                            end
                             to
                            end
Monday, February 4, 2013
valida o software na perspectiva
                          do usuário




Monday, February 4, 2013
valida o software na perspectiva
                           do usuário


Monday, February 4, 2013
valida o software na perspectiva

                           do usuário

Monday, February 4, 2013
testes de aceitação
    normalmente são:


                  > trabalhosos para escrever;
                  > lentos para rodar;
                  > difíceis para rastrear erros;
                  > frágeis


Monday, February 4, 2013
apesar da dificuldade para escrevê-los...




Monday, February 4, 2013
apesar da dificuldade para escrevê-los...


                                  Aceite os testes de
                                      aceitação!!




    Handerson Frota



Monday, February 4, 2013
apesar da dificuldade para escrevê-los...


                                  Aceite os testes de
                                      aceitação!!




                               ainda assim
                               vale a pena!
    Handerson Frota



Monday, February 4, 2013
resumindo...



Monday, February 4, 2013
como tudo isso vai numa app
                                real?




Monday, February 4, 2013
Monday, February 4, 2013
browser

                                        banco de dados
                              app
                           (servidor)




Monday, February 4, 2013
teste de unidade




Monday, February 4, 2013
teste de integração
Monday, February 4, 2013
teste de aceitação



Monday, February 4, 2013
teste de unidade




   teste de aceitação


 teste de integração
Monday, February 4, 2013
qual o melhor?



Monday, February 4, 2013
unidade > integração ?



Monday, February 4, 2013
não
Monday, February 4, 2013
integração > aceitação ?



Monday, February 4, 2013
não
Monday, February 4, 2013
aceitação > unidade ?



Monday, February 4, 2013
não
Monday, February 4, 2013
depende?



Monday, February 4, 2013
sim
Monday, February 4, 2013
depende da tua
                            necessidade


Monday, February 4, 2013
depende da tua
                            necessidade
                            teste de aceitação testa TUDO.



Handerson Frota
Monday, February 4, 2013
teste de integração é teste de
                                       “maxu”.




                               depende da tua                   Yuri Adams



                                necessidade
                                   teste de aceitação testa TUDO.



Handerson Frota
Monday, February 4, 2013
mas no geral, siga a
                               pirâmide


Monday, February 4, 2013
Test Automation Pyramid



                                   Aceitação - 10%




                                 Integração - 40%



                               Unidade - 50%


Monday, February 4, 2013
indo além...



Monday, February 4, 2013
“Modelo Tradicional”
                             primeiro escreve o código de
                           produção, depois escreve o teste...
                                       LEGAL!




Monday, February 4, 2013
e se fosse possível escrever o teste
                               ANTES da implementação?




Monday, February 4, 2013
ahn?




Monday, February 4, 2013
TDD
                           Test Driven Development




Monday, February 4, 2013
step by step




Monday, February 4, 2013
O que ganho com isso?



Monday, February 4, 2013
TDD = testes


Monday, February 4, 2013
não
                           TDD = testes


Monday, February 4, 2013
TDD é sobre DESIGN e
            MODELAGEM de código


Monday, February 4, 2013
a bateria de testes é
                                um brinde


Monday, February 4, 2013
CONCLUSÃO


Monday, February 4, 2013
Você só percebe os benefícios dos testes entre

                           6 meses e 1 ano


Monday, February 4, 2013
não existe uma receita de bolo
                   para desenvolver software




Monday, February 4, 2013
mas sim
                  um conjunto de princípios e
                 práticas que podem te ajudar a
                       desenvolver melhor



Monday, February 4, 2013
testes
                           automatizados
                             é apenas a
                              ponta do
                               iceberg




Monday, February 4, 2013
permita que sua equipe
                              trabalhe melhor




Monday, February 4, 2013
permita que sua empresa
                           entregue software melhor




Monday, February 4, 2013
permita-se ser um profissional
                             melhor




Monday, February 4, 2013
use testes
                           automatizados


Monday, February 4, 2013
testes automatizados




                               eu aprovo!
Monday, February 4, 2013
Rafael Ponte
                           rponte@triadworks.com.br




Monday, February 4, 2013

Mais conteúdo relacionado

Mais de Rafael Ponte

Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016Rafael Ponte
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Rafael Ponte
 
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015Rafael Ponte
 
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Rafael Ponte
 
Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)Rafael Ponte
 
Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)Rafael Ponte
 
Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)Rafael Ponte
 
Migrations for Java
Migrations for JavaMigrations for Java
Migrations for JavaRafael Ponte
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
 
Importância dos testes automatizadoss
Importância dos testes automatizadossImportância dos testes automatizadoss
Importância dos testes automatizadossRafael Ponte
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFRafael Ponte
 
Curso de Java server faces (JSF)
Curso de Java server faces (JSF)Curso de Java server faces (JSF)
Curso de Java server faces (JSF)Rafael Ponte
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
 
Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Rafael Ponte
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeRafael Ponte
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven DesignRafael Ponte
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 

Mais de Rafael Ponte (18)

Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016Como Apresentar Codigo em Slides - Javou #7 - 2016
Como Apresentar Codigo em Slides - Javou #7 - 2016
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)
 
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
Importancia dos Testes Automatizados no dia a dia FIC-Estacio 2015
 
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)
 
Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)Hibernate efetivo (COALTI-2014 / ALJUG)
Hibernate efetivo (COALTI-2014 / ALJUG)
 
Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)Migrations for Java (QCONSP2013)
Migrations for Java (QCONSP2013)
 
Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)Hibernate Efetivo (QCONSP-2012)
Hibernate Efetivo (QCONSP-2012)
 
Migrations for Java
Migrations for JavaMigrations for Java
Migrations for Java
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
 
Importância dos testes automatizadoss
Importância dos testes automatizadossImportância dos testes automatizadoss
Importância dos testes automatizadoss
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Desafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSFDesafios de um desenvolvedor JSF
Desafios de um desenvolvedor JSF
 
Curso de Java server faces (JSF)
Curso de Java server faces (JSF)Curso de Java server faces (JSF)
Curso de Java server faces (JSF)
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSF
 
Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)Boas Práticas com JavaServer Faces (Jsf)
Boas Práticas com JavaServer Faces (Jsf)
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividadeJavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven Design
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 

Importância dos testes automatizados

  • 1. A importância dos testes automatizados no dia a dia_ Rafael Ponte @rponte Monday, February 4, 2013
  • 4. Como os clientes chegam até nós... Monday, February 4, 2013
  • 5. Solucionar bugs críticos e “apagar incêndios” Monday, February 4, 2013
  • 6. Solucionar bugs críticos e “apagar incêndios” Migrar ou Reescrever sistemas Monday, February 4, 2013
  • 7. Treinar a Solucionar bugs críticos equipe e “apagar incêndios” Migrar ou Reescrever sistemas Monday, February 4, 2013
  • 8. Treinar a Solucionar bugs críticos equipe e “apagar incêndios” Migrar ou Reescrever sistemas Monday, February 4, 2013
  • 9. Migrar ou reescrever sistemas de: Monday, February 4, 2013
  • 10. Migrar ou reescrever sistemas de: * Desktop para Web Monday, February 4, 2013
  • 11. Migrar ou reescrever sistemas de: * Desktop para Web * PHP para Java Monday, February 4, 2013
  • 12. Migrar ou reescrever sistemas de: * Desktop para Web * PHP para Java * Java para Ruby on Rails Monday, February 4, 2013
  • 13. Migrar ou reescrever sistemas de: * Desktop para Web * PHP para Java * Java para Ruby on Rails * Java para Java Monday, February 4, 2013
  • 14. após alguns minutos de conversa... Monday, February 4, 2013
  • 15. após alguns minutos de conversa... com o gerente ou a equipe, é comum escutar... Monday, February 4, 2013
  • 16. “Temos uma equipe de 8 programadores. E +3 vagas em aberto.” - Gerente Monday, February 4, 2013
  • 17. “Criamos nosso próprio framework para agilizar o trabalho.” - Arquiteto Monday, February 4, 2013
  • 18. “Eu li que JSF2 é mais simples do que GWT.” Programador Monday, February 4, 2013
  • 19. “Fiz uma PoC com Ruby On Rails. É mais produtivo do que Java!” - Arquiteto Monday, February 4, 2013
  • 20. “Com o “Caker” podemos gerar cadastros em minutos.” - Gerente Monday, February 4, 2013
  • 21. Eles querem mais Produtividade?! Monday, February 4, 2013
  • 22. não ?! Eles querem mais Produtividade Monday, February 4, 2013
  • 23. Eles procuram VELOCIDADE no desenvolvimento de novas funcionalidades Monday, February 4, 2013
  • 24. Produtividade = Velocidade Monday, February 4, 2013
  • 25. não Produtividade = Velocidade Monday, February 4, 2013
  • 26. Eles estão focando no local errado... Monday, February 4, 2013
  • 27. Eles estão focando no local errado... * Java para Ruby on Rails Monday, February 4, 2013
  • 28. Mudar a forma como o programador trabalha! Monday, February 4, 2013
  • 29. Programadores Resistência a mudança? Monday, February 4, 2013
  • 30. Programador Cowboy Monday, February 4, 2013
  • 31. Code and Fix Abandona sua disciplina na hora do aperto O programador que os gerentes adoram Monday, February 4, 2013
  • 32. Programador Profissional Monday, February 4, 2013
  • 33. Disciplinado Mantém a tranquilidade e disciplina Se mantém em evolução Monday, February 4, 2013
  • 35. Escrita de Testes Automatizados Monday, February 4, 2013
  • 36. Testes Manuais versus Testes Automatizados Monday, February 4, 2013
  • 37. Não é mais demorado? Monday, February 4, 2013
  • 38. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 39. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 40. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 41. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 42. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 43. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 44. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 45. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 46. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 Tempo Monday, February 4, 2013
  • 47. Se a coisa já é ruim com um programador cowboy... Monday, February 4, 2013
  • 48. imagina uma equipe de cowboys Monday, February 4, 2013
  • 49. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s 2s 3s 4s 5s 6s Monday, February 4, 2013
  • 50. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s 3s 4s 5s 6s Monday, February 4, 2013
  • 51. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s 4s 5s 6s Monday, February 4, 2013
  • 52. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s 5s 6s Monday, February 4, 2013
  • 53. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s 6s Monday, February 4, 2013
  • 54. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s Monday, February 4, 2013
  • 55. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 56. Não é dificil perceber alguns padrões... Monday, February 4, 2013
  • 57. reincidência de bugs Monday, February 4, 2013
  • 58. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 59. funcionalidades “bugam” do nada Monday, February 4, 2013
  • 60. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 61. diminuição de novas funcionalidades Monday, February 4, 2013
  • 62. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 63. Por que isso acontece? Monday, February 4, 2013
  • 64. reincidência de bugs Não escrevem testes! Monday, February 4, 2013
  • 65. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 66. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 67. funcionalidades “bugam” do nada Não fazem teste de regressão Monday, February 4, 2013
  • 68. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 69. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 70. diminuição de novas funcionalidades Disciplina com testes Monday, February 4, 2013
  • 71. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 72. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19 Monday, February 4, 2013
  • 73. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s Medo F2 F6 F1 F4 F5 F7F8 F4Segurança 3s Insegurança F6 F6 F7 F8 F10 F4 F7 F9 Feedback Evolução Lenta F9 Produtividade 4s F13 F12 F7 F11 F6 F10 F8 F11 Cliente Frustrado F12 F13 F14Satisfeito 5s F12 F7 F10 F14 Cliente F15 Sem credibilidade F16 Credibilidade 6s F9 F12 F4 F10 F1 F17 F18 F19 Monday, February 4, 2013
  • 74. Não é dificil escrever testes automatizados Monday, February 4, 2013
  • 75. Mas requer um tempo de maturidade Monday, February 4, 2013
  • 76. tipos de testes testes de unidade testes de integração testes de aceitação Monday, February 4, 2013
  • 77. testes de unidade menor unidade de código executável Monday, February 4, 2013
  • 78. menor unidade na = método POO Monday, February 4, 2013
  • 79. teste de teste = unidade unitário Monday, February 4, 2013
  • 80. testes de unidade normalmente são: > mais fáceis de escrever; > muito rápidos para rodar; > mais fáceis para rastrear erros; Monday, February 4, 2013
  • 81. que tal rodar centenas ou milhares de testes em segundos? Monday, February 4, 2013
  • 82. feedback quase que instantâneo! WOW! Monday, February 4, 2013
  • 83. testes de integração seu código integrado ao banco de dados, rede, disco etc Monday, February 4, 2013
  • 84. valida os componentes de software funcionando juntos Monday, February 4, 2013
  • 85. valida os componentes de software funcionando juntos teste de “maxu” vai no banco de dados! Yuri Adams Monday, February 4, 2013
  • 86. e assim como os testes de unidade... Monday, February 4, 2013
  • 87. testes de integração normalmente são: > mais fáceis de escrever; > muito rápidos para rodar; > mais fáceis para rastrear erros; Monday, February 4, 2013
  • 88. feedback AINDA quase que instantâneo Monday, February 4, 2013
  • 89. testes de aceitação o que o usuário espera que aconteça Monday, February 4, 2013
  • 91. teste end Monday, February 4, 2013
  • 92. teste end to Monday, February 4, 2013
  • 93. teste end to end Monday, February 4, 2013
  • 94. valida o software na perspectiva do usuário Monday, February 4, 2013
  • 95. valida o software na perspectiva do usuário Monday, February 4, 2013
  • 96. valida o software na perspectiva do usuário Monday, February 4, 2013
  • 97. testes de aceitação normalmente são: > trabalhosos para escrever; > lentos para rodar; > difíceis para rastrear erros; > frágeis Monday, February 4, 2013
  • 98. apesar da dificuldade para escrevê-los... Monday, February 4, 2013
  • 99. apesar da dificuldade para escrevê-los... Aceite os testes de aceitação!! Handerson Frota Monday, February 4, 2013
  • 100. apesar da dificuldade para escrevê-los... Aceite os testes de aceitação!! ainda assim vale a pena! Handerson Frota Monday, February 4, 2013
  • 102. como tudo isso vai numa app real? Monday, February 4, 2013
  • 104. browser banco de dados app (servidor) Monday, February 4, 2013
  • 105. teste de unidade Monday, February 4, 2013
  • 106. teste de integração Monday, February 4, 2013
  • 107. teste de aceitação Monday, February 4, 2013
  • 108. teste de unidade teste de aceitação teste de integração Monday, February 4, 2013
  • 109. qual o melhor? Monday, February 4, 2013
  • 110. unidade > integração ? Monday, February 4, 2013
  • 112. integração > aceitação ? Monday, February 4, 2013
  • 114. aceitação > unidade ? Monday, February 4, 2013
  • 118. depende da tua necessidade Monday, February 4, 2013
  • 119. depende da tua necessidade teste de aceitação testa TUDO. Handerson Frota Monday, February 4, 2013
  • 120. teste de integração é teste de “maxu”. depende da tua Yuri Adams necessidade teste de aceitação testa TUDO. Handerson Frota Monday, February 4, 2013
  • 121. mas no geral, siga a pirâmide Monday, February 4, 2013
  • 122. Test Automation Pyramid Aceitação - 10% Integração - 40% Unidade - 50% Monday, February 4, 2013
  • 124. “Modelo Tradicional” primeiro escreve o código de produção, depois escreve o teste... LEGAL! Monday, February 4, 2013
  • 125. e se fosse possível escrever o teste ANTES da implementação? Monday, February 4, 2013
  • 127. TDD Test Driven Development Monday, February 4, 2013
  • 128. step by step Monday, February 4, 2013
  • 129. O que ganho com isso? Monday, February 4, 2013
  • 130. TDD = testes Monday, February 4, 2013
  • 131. não TDD = testes Monday, February 4, 2013
  • 132. TDD é sobre DESIGN e MODELAGEM de código Monday, February 4, 2013
  • 133. a bateria de testes é um brinde Monday, February 4, 2013
  • 135. Você só percebe os benefícios dos testes entre 6 meses e 1 ano Monday, February 4, 2013
  • 136. não existe uma receita de bolo para desenvolver software Monday, February 4, 2013
  • 137. mas sim um conjunto de princípios e práticas que podem te ajudar a desenvolver melhor Monday, February 4, 2013
  • 138. testes automatizados é apenas a ponta do iceberg Monday, February 4, 2013
  • 139. permita que sua equipe trabalhe melhor Monday, February 4, 2013
  • 140. permita que sua empresa entregue software melhor Monday, February 4, 2013
  • 141. permita-se ser um profissional melhor Monday, February 4, 2013
  • 142. use testes automatizados Monday, February 4, 2013
  • 143. testes automatizados eu aprovo! Monday, February 4, 2013
  • 144. Rafael Ponte rponte@triadworks.com.br Monday, February 4, 2013