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

813 visualizações

Publicada em

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?

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
813
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Teste seu código! não seja imaturo e nem bundão @lucasrenansábado, 24 de março de 2012
  2. 2. http://nudesign.com.br/sábado, 24 de março de 2012
  3. 3. guru sorocaba http://gurusorocaba.com.br/sábado, 24 de março de 2012
  4. 4. Como você garante que seu código funciona?sábado, 24 de março de 2012
  5. 5. sábado, 24 de março de 2012
  6. 6. Você confia no seu código?sábado, 24 de março de 2012
  7. 7. sábado, 24 de março de 2012
  8. 8. Muitos bugs no sistema?sábado, 24 de março de 2012
  9. 9. Seu chefe fica furioso!sábado, 24 de março de 2012
  10. 10. Você fica frustradosábado, 24 de março de 2012
  11. 11. Programar se torna chatosábado, 24 de março de 2012
  12. 12. Inspirações da palestrasábado, 24 de março de 2012
  13. 13. Por que eu sou fanático por testes e você é um bundão? Sylvestre Mergulhão http://mergulhao.info/2009/10/29/por-que-eu-sou-fan-tico- por-testes-e-voc-um-bund-osábado, 24 de março de 2012
  14. 14. Só os imaturos não testam Carlos Brando http://nomedojogo.com/2009/04/06/so-os-imaturos-nao- testam/sábado, 24 de março de 2012
  15. 15. Você é um imaturo!sábado, 24 de março de 2012
  16. 16. 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
  17. 17. E os testes?sábado, 24 de março de 2012
  18. 18. Se você não tem segurança, você tem medo!sábado, 24 de março de 2012
  19. 19. 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 humoradosábado, 24 de março de 2012
  20. 20. Calma!sábado, 24 de março de 2012
  21. 21. sábado, 24 de março de 2012
  22. 22. Manifesto ÁgilIndivíduos e interações mais que processos eferramentasSoftware em funcionamento mais quedocumentação abrangenteColaboração com o cliente mais que negociação decontratosResponder a mudanças mais que seguir um planosábado, 24 de março de 2012
  23. 23. Extreme Programming Kent Becksábado, 24 de março de 2012
  24. 24. Coragemsábado, 24 de março de 2012
  25. 25. Testes • fazem você se setir confiante • fazem você acreditar no seu código • fazem você adicionar novas features sem medo • fazem você dormir tranquilosábado, 24 de março de 2012
  26. 26. Ritmo sustentávelsábado, 24 de março de 2012
  27. 27. TDD test driven developmentsábado, 24 de março de 2012
  28. 28. Desenvolvimento guiados por testes é uma forma de administrar o medo durante a programação! Kent Becksábado, 24 de março de 2012
  29. 29. sábado, 24 de março de 2012
  30. 30. 3 fasessábado, 24 de março de 2012
  31. 31. BDD behaviour driven developmentsábado, 24 de março de 2012
  32. 32. Desenvolvimento orientado a comportamento • testar o comportamento da sua aplicação • mais sobre escrever especificações • escrever testes também é documentarsábado, 24 de março de 2012
  33. 33. Show me the code :)sábado, 24 de março de 2012
  34. 34. Ruby Test Unitsábado, 24 de março de 2012
  35. 35. Baby stepssábado, 24 de março de 2012
  36. 36. require "minitest/autorun" class PostTest < MiniTest::Unit::TestCase def test_should_initialize_a_post post = Post.new assert(post) end end ERROR test_should_initialize_a_post (0:00:00.000) uninitialized constant PostTest::Postsábado, 24 de março de 2012
  37. 37. class Post end PASS test_should_initialize_a_postsábado, 24 de março de 2012
  38. 38. Eu poderia dar passos mais largos caso me sentisse confiante!sábado, 24 de março de 2012
  39. 39. 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
  40. 40. class Post def title "my post" end end PASS test_should_have_a_title_if_is_settedsábado, 24 de março de 2012
  41. 41. 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
  42. 42. class Post def title "my post" end def title=(title) end end PASS test_should_have_a_title_if_is_settedsábado, 24 de março de 2012
  43. 43. 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: nilsábado, 24 de março de 2012
  44. 44. class Post def title @title end def title=(title) @title = title end end PASS test_should_have_a_blank_title_if_none_is_settedsábado, 24 de março de 2012
  45. 45. Refatorarsábado, 24 de março de 2012
  46. 46. class Post attr_accessor :title end PASS test_should_have_a_blank_title_if_none_is_setted PASS test_should_initialize_a_post PASS test_should_have_a_title_if_is_settedsábado, 24 de março de 2012
  47. 47. Exemplo meio idiota porém, ilustra bem o ciclo do TDD :)sábado, 24 de março de 2012
  48. 48. RSpecsábado, 24 de março de 2012
  49. 49. 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 end endsábado, 24 de março de 2012
  50. 50. RSpec + Capybarasábado, 24 de março de 2012
  51. 51. 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
  52. 52. Cucumbersábado, 24 de março de 2012
  53. 53. 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 120sábado, 24 de março de 2012
  54. 54. Before do @calc = Calculadora.new end Dado /que eu digitei (d+) na calculadora/ do |n| @calc.push n.to_i end Quando eu aperto o botão de soma do @result = @calc.soma end Então /o resultado na calculadora deve ser (d*)/ do |result| @result.should == result.to_i endsábado, 24 de março de 2012
  55. 55. Você ainda vai continuar sendo um bundão???sábado, 24 de março de 2012
  56. 56. Obrigado http://lucasrenan.comsábado, 24 de março de 2012

×