teste seu código! não seja imaturo e nem bundão

56
Teste seu código! não seja imaturo e nem bundão @lucasrenan sábado, 24 de março de 2012

Upload: lucas-renan

Post on 03-Jul-2015

516 views

Category:

Technology


0 download

DESCRIPTION

nessa palestra apresento os benefícios de testes automatizados, porque a coragem é importante para o desenvolvedor, TDD - test driven development, BDD - behavior driven development, ruby test unit, RSpec e talvez um pouco de cucumber :) você ainda quer continuar sendo um imaturo e um bundão?

TRANSCRIPT

Page 1: Teste seu código! não seja imaturo e nem bundão

Teste seu código!não seja imaturo e nem bundão

@lucasrenan

sábado, 24 de março de 2012

Page 2: Teste seu código! não seja imaturo e nem bundão

http://nudesign.com.br/

sábado, 24 de março de 2012

Page 3: Teste seu código! não seja imaturo e nem bundão

guru sorocaba

http://gurusorocaba.com.br/

sábado, 24 de março de 2012

Page 4: Teste seu código! não seja imaturo e nem bundão

Como você garante que seu código funciona?

sábado, 24 de março de 2012

Page 5: Teste seu código! não seja imaturo e nem bundão

sábado, 24 de março de 2012

Page 6: Teste seu código! não seja imaturo e nem bundão

Você confia no seu código?

sábado, 24 de março de 2012

Page 7: Teste seu código! não seja imaturo e nem bundão

sábado, 24 de março de 2012

Page 8: Teste seu código! não seja imaturo e nem bundão

Muitos bugs no sistema?sábado, 24 de março de 2012

Page 9: Teste seu código! não seja imaturo e nem bundão

Seu chefe fica furioso!sábado, 24 de março de 2012

Page 10: Teste seu código! não seja imaturo e nem bundão

Você fica frustradosábado, 24 de março de 2012

Page 11: Teste seu código! não seja imaturo e nem bundão

Programar se torna chatosábado, 24 de março de 2012

Page 12: Teste seu código! não seja imaturo e nem bundão

Inspirações da palestra

sábado, 24 de março de 2012

Page 15: Teste seu código! não seja imaturo e nem bundão

Você é um imaturo!sábado, 24 de março de 2012

Page 16: Teste seu código! não seja imaturo e nem bundão

Colar post-its na parede todo mundo quer, mas escrever testes

automatizados ninguém quer.Rodrigo Yoshima

http://blog.aspercom.com.br/2010/01/12/incrementos/

sábado, 24 de março de 2012

Page 17: Teste seu código! não seja imaturo e nem bundão

E os testes?sábado, 24 de março de 2012

Page 18: Teste seu código! não seja imaturo e nem bundão

Se você não tem segurança, você tem

medo!

sábado, 24 de março de 2012

Page 19: Teste seu código! não seja imaturo e nem bundão

Kent Beck sobre o medo

• o medo te faz inseguro

• o medo te faz querer comunicar-se menos

• o medo te faz afastar-se de feedback

• o medo te faz mal humorado

sábado, 24 de março de 2012

Page 20: Teste seu código! não seja imaturo e nem bundão

Calma!

sábado, 24 de março de 2012

Page 21: Teste seu código! não seja imaturo e nem bundão

sábado, 24 de março de 2012

Page 22: Teste seu código! não seja imaturo e nem bundão

Indivíduos e interações mais que processos e ferramentasSoftware em funcionamento mais que documentação abrangenteColaboração com o cliente mais que negociação de contratosResponder a mudanças mais que seguir um plano

Manifesto Ágil

sábado, 24 de março de 2012

Page 23: Teste seu código! não seja imaturo e nem bundão

Extreme ProgrammingKent Beck

sábado, 24 de março de 2012

Page 24: Teste seu código! não seja imaturo e nem bundão

Coragemsábado, 24 de março de 2012

Page 25: Teste seu código! não seja imaturo e nem bundão

Testes

• fazem você se setir confiante

• fazem você acreditar no seu código

• fazem você adicionar novas features sem medo

• fazem você dormir tranquilo

sábado, 24 de março de 2012

Page 26: Teste seu código! não seja imaturo e nem bundão

Ritmo sustentávelsábado, 24 de março de 2012

Page 27: Teste seu código! não seja imaturo e nem bundão

TDDtest driven development

sábado, 24 de março de 2012

Page 28: Teste seu código! não seja imaturo e nem bundão

Desenvolvimento guiados por testes é uma forma de

administrar o medo durante a programação!

Kent Beck

sábado, 24 de março de 2012

Page 29: Teste seu código! não seja imaturo e nem bundão

sábado, 24 de março de 2012

Page 30: Teste seu código! não seja imaturo e nem bundão

3 fasessábado, 24 de março de 2012

Page 31: Teste seu código! não seja imaturo e nem bundão

BDDbehaviour driven development

sábado, 24 de março de 2012

Page 32: Teste seu código! não seja imaturo e nem bundão

Desenvolvimento orientado a comportamento

• testar o comportamento da sua aplicação

• mais sobre escrever especificações

• escrever testes também é documentar

sábado, 24 de março de 2012

Page 33: Teste seu código! não seja imaturo e nem bundão

Show me the code :)

sábado, 24 de março de 2012

Page 34: Teste seu código! não seja imaturo e nem bundão

Ruby Test Unit

sábado, 24 de março de 2012

Page 35: Teste seu código! não seja imaturo e nem bundão

Baby steps

sábado, 24 de março de 2012

Page 36: Teste seu código! não seja imaturo e nem bundão

require "minitest/autorun"

class PostTest < MiniTest::Unit::TestCase def test_should_initialize_a_post post = Post.new assert(post) endend

ERROR test_should_initialize_a_post (0:00:00.000) uninitialized constant PostTest::Post

sábado, 24 de março de 2012

Page 37: Teste seu código! não seja imaturo e nem bundão

class Post end

PASS test_should_initialize_a_post

sábado, 24 de março de 2012

Page 38: Teste seu código! não seja imaturo e nem bundão

Eu poderia dar passos mais largos caso me sentisse confiante!

sábado, 24 de março de 2012

Page 39: Teste seu código! não seja imaturo e nem bundão

def test_should_have_a_title_if_is_setted post = Post.new assert_equal(post.title, "post title") end

ERROR test_should_have_a_title_if_is_setted undefined method `title' for #<Post:

0x0000010091dc90>

sábado, 24 de março de 2012

Page 40: Teste seu código! não seja imaturo e nem bundão

class Post def title "my post" endend

PASS test_should_have_a_title_if_is_setted

sábado, 24 de março de 2012

Page 41: Teste seu código! não seja imaturo e nem bundão

def test_should_have_a_title_if_is_setted post = Post.new post.title = "my post" assert_equal(post.title, "my post") end

ERROR test_should_have_a_title_if_is_setted undefined method `title=' for #<Post:

0x0000010107ca90>

sábado, 24 de março de 2012

Page 42: Teste seu código! não seja imaturo e nem bundão

PASS test_should_have_a_title_if_is_setted

class Post def title "my post" end def title=(title) endend

sábado, 24 de março de 2012

Page 43: Teste seu código! não seja imaturo e nem bundão

def test_should_have_a_blank_title_if_none_is_setted post = Post.new assert_equal(post.title, nil) end

FAIL test_should_have_a_blank_title_if_none_is_setted Expected: "my post"

Actual: nil

sábado, 24 de março de 2012

Page 44: Teste seu código! não seja imaturo e nem bundão

class Post def title @title end def title=(title) @title = title endend

PASS test_should_have_a_blank_title_if_none_is_setted

sábado, 24 de março de 2012

Page 45: Teste seu código! não seja imaturo e nem bundão

Refatorar

sábado, 24 de março de 2012

Page 46: Teste seu código! não seja imaturo e nem bundão

class Post attr_accessor :titleend

PASS test_should_have_a_blank_title_if_none_is_settedPASS test_should_initialize_a_postPASS test_should_have_a_title_if_is_setted

sábado, 24 de março de 2012

Page 47: Teste seu código! não seja imaturo e nem bundão

Exemplo meio idiotaporém, ilustra bem o ciclo do TDD :)

sábado, 24 de março de 2012

Page 48: Teste seu código! não seja imaturo e nem bundão

RSpec

sábado, 24 de março de 2012

Page 49: Teste seu código! não seja imaturo e nem bundão

describe User do describe "authentication" do it "should be active to authentication" do user = Factory.build(:user, :loggable => true) user.active_for_authentication?.should be_true end

it "should not be active to authentication" do user = Factory.build(:user, :loggable => false) user.active_for_authentication?.should be_false end endend

sábado, 24 de março de 2012

Page 50: Teste seu código! não seja imaturo e nem bundão

RSpec + Capybara

sábado, 24 de março de 2012

Page 51: Teste seu código! não seja imaturo e nem bundão

describe "authentication" do let(:user) { Factory.create(:user, :password => "123456", :password_confirmation => "123456") }

describe "logging" do it "should login with valid credentials" do visit root_path fill_in "user_email", :with => user.email fill_in "user_password", :with => "123456" click_button "Login"

page.should have_content("successfully logged") end end...

sábado, 24 de março de 2012

Page 52: Teste seu código! não seja imaturo e nem bundão

Cucumber

sábado, 24 de março de 2012

Page 53: Teste seu código! não seja imaturo e nem bundão

Funcionalidade: Adição Para evitar erros bobos Como um péssimo matemático Eu quero saber como somar dois números

Cenário: Adicionar dois números Dado que eu digitei 50 na calculadora E que eu digitei 70 na calculadora Quando eu aperto o botão de soma Então o resultado na calculadora deve ser 120

sábado, 24 de março de 2012

Page 54: Teste seu código! não seja imaturo e nem bundão

Before do @calc = Calculadora.newend

Dado /que eu digitei (\d+) na calculadora/ do |n| @calc.push n.to_iend

Quando 'eu aperto o botão de soma' do @result = @calc.somaend

Então /o resultado na calculadora deve ser (\d*)/ do |result| @result.should == result.to_iend

sábado, 24 de março de 2012

Page 55: Teste seu código! não seja imaturo e nem bundão

Você ainda vai continuar sendo um bundão???

sábado, 24 de março de 2012

Page 56: Teste seu código! não seja imaturo e nem bundão

Obrigadohttp://lucasrenan.com

sábado, 24 de março de 2012