Breve introducción a TDD con Phpunit

1,045 views
947 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,045
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
25
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Breve introducción a TDD con Phpunit

  1. 1. Breve introducción a
  2. 2. Gracias!12/11/12 Breve introducción a PHPUnit 2 / 81
  3. 3. Sobre mi Moisés Gallego Programador en Bodaclick Miembro de Symfony-Madrid Twitter: @moisesgallego Blogs: moidev.com / fotux.es12/11/12 Breve introducción a PHPUnit 3 / 81
  4. 4. ¿Sobre qué trata la charla?12/11/12 Breve introducción a PHPUnit 4 / 81
  5. 5. ¿Sobre qué trata la charla? ● Conceptos básicos de Testing12/11/12 Breve introducción a PHPUnit 5 / 81
  6. 6. ¿Sobre qué trata la charla? ● Conceptos básicos de Testing ● Conceptos básicos sobre TDD12/11/12 Breve introducción a PHPUnit 6 /1 8
  7. 7. ¿Sobre qué trata la charla? ● Conceptos básicos de Testing ● Conceptos básicos sobre TDD ● Funcionalidades de PHPUnit12/11/12 Breve introducción a PHPUnit 7 / 81
  8. 8. ¿Sobre qué trata la charla? ● Conceptos básicos de Testing ● Conceptos básicos sobre TDD ● Funcionalidades de PHPUnit ● Ejemplos12/11/12 Breve introducción a PHPUnit 8 / 81
  9. 9. ¿Sobre qué NO trata la charla?12/11/12 Breve introducción a PHPUnit 10 / 81
  10. 10. ¿Sobre qué NO trata la charla? Venderos la moto12/11/12 Breve introducción a PHPUnit 11 / 81
  11. 11. ¿Sobre qué NO trata la charla?12/11/12 Breve introducción a PHPUnit 12 / 81
  12. 12. ¿Sobre qué NO trata la charla? “Evangelizar”12/11/12 Breve introducción a PHPUnit 13 / 81
  13. 13. ¿Sobre qué NO trata la charla?12/11/12 Breve introducción a PHPUnit 14 / 81
  14. 14. Testing12/11/12 Breve introducción a PHPUnit 15 / 81
  15. 15. “Even good programmers make mistakes. The difference between a good programmer and a bad programmer is that the good programmer uses tests to detect his mistakes as soon as possible. PHPUnit manual12/11/12 Breve introducción a PHPUnit 16 / 81
  16. 16. ¿Qué es el testing? Simplemente pruebas12/11/12 Breve introducción a PHPUnit 17 / 81
  17. 17. ¿Qué es el testing? a s á tic tom Au12/11/12 Breve introducción a PHPUnit 18 / 81
  18. 18. ¿Qué es el testing? a s Ma á tic n ua tom les Au12/11/12 Breve introducción a PHPUnit 19 / 81
  19. 19. ¿Qué es el testing? a s Ma á tic n ua tom les Au Funcionales12/11/12 Breve introducción a PHPUnit 20 / 81
  20. 20. ¿Qué es el testing? a s Ma á tic n ua tom les Au Funcionales Regresión12/11/12 Breve introducción a PHPUnit 21 / 81
  21. 21. ¿Qué es el testing? a s Ma á tic n ua tom les Au g ra c ió n Inte Funcionales Regresión12/11/12 Breve introducción a PHPUnit 22 / 81
  22. 22. ¿Qué es el testing? a s Ma á tic n ua tom les Au Carga g ra c ió n Inte Funcionales Regresión12/11/12 Breve introducción a PHPUnit 23 / 81
  23. 23. ¿Qué es el testing? a s Ma á tic ETC n ua tom les Au Carga g ra c ió n Inte Funcionales Regresión12/11/12 Breve introducción a PHPUnit 24 / 81
  24. 24. ¿Qué es el testing? a s Ma á tic ETC n ua tom les Au Carga Unitarias c ió n Inte g ra Funcionales Regresión12/11/12 Breve introducción a PHPUnit 25 / 81
  25. 25. ¿Qué son las pruebas unitarias?12/11/12 Breve introducción a PHPUnit 26 / 81
  26. 26. Una prueba unitaria es una forma de probar el correcto funcionamiento de un módulo de código. Esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado Wikipedia12/11/12 Breve introducción a PHPUnit 27 / 81
  27. 27. Caractéristicas de los tests unitarios ● Automatizables ● Completos ● Repetibles || Reutilizables ● Independientes12/11/12 Breve introducción a PHPUnit 28 / 81
  28. 28. Ok. Eso es testing. ¿TDD no es lo mismo?12/11/12 Breve introducción a PHPUnit 29 / 81
  29. 29. No!12/11/12 Breve introducción a PHPUnit 30 / 81
  30. 30. Testing Diseño Diseño Implementación Implementación Test Test12/11/12 Breve introducción a PHPUnit 31 / 81
  31. 31. TDD Diseño Diseño Test Test Implementación Implementación12/11/12 Breve introducción a PHPUnit 32 / 81
  32. 32. “Desarrollo guiado por pruebas, o Test-driven development (TDD) es una práctica de programación que involucra otras dos prácticas: Escribir las pruebas primero (Test First Development) y Refactorización (Refactoring)...12/11/12 Breve introducción a PHPUnit 33 / 81
  33. 33. ...El propósito del desarrollo guiado por pruebas es lograr un código limpio que funcione...12/11/12 Breve introducción a PHPUnit 34 / 81
  34. 34. ...La idea es que los requisitos sean traducidos a pruebas... se garantizará el software cumple con los requisitos que se han establecido”12/11/12 Breve introducción a PHPUnit 35 / 81
  35. 35. Bendita Wikipedia12/11/12 Breve introducción a PHPUnit 36 / 81
  36. 36. El mantra del desarrollo TDD12/11/12 Breve introducción a PHPUnit 37 / 81
  37. 37. Hasta aquí la teoría sobre testing.12/11/12 Breve introducción a PHPUnit 38 / 81
  38. 38. ¿Qué es PHPUnit?12/11/12 Breve introducción a PHPUnit 39 / 81
  39. 39. Software para crear y ejecutar test de manera automática12/11/12 Breve introducción a PHPUnit 40 / 81
  40. 40. Test manual sin PHPUnit12/11/12 Breve introducción a PHPUnit 41 / 81
  41. 41. ¿Que ventajas nos da PHPUnit?12/11/12 Breve introducción a PHPUnit 42 / 81
  42. 42. Aserciones - Assertions12/11/12 Breve introducción a PHPUnit 43 / 81
  43. 43. Veamos algunos ejemplos sencillos de aserciones12/11/12 Breve introducción a PHPUnit 44 / 81
  44. 44. assertFalse12/11/12 Breve introducción a PHPUnit 45 / 81
  45. 45. assertFalse12/11/12 Breve introducción a PHPUnit 46 / 81
  46. 46. assertNull12/11/12 Breve introducción a PHPUnit 47 / 81
  47. 47. assertContains12/11/12 Breve introducción a PHPUnit 48 / 81
  48. 48. assertEquals12/11/12 Breve introducción a PHPUnit 49 / 81
  49. 49. 40 posibles aserciones sin incluir sus negaciones12/11/12 Breve introducción a PHPUnit 50 / 81
  50. 50. ¿Qué mas testean las aserciones? ● Cadenas de texto ● Excepciones ● Ficheros ● Arrays ● Objetos && Clases ● JSON && XML ● ...12/11/12 Breve introducción a PHPUnit 51 / 81
  51. 51. Anotaciones12/11/12 Breve introducción a PHPUnit 52 / 81
  52. 52. Test doubles12/11/12 Breve introducción a PHPUnit 53 / 81
  53. 53. Tests doubles Mocks && Stubs12/11/12 Breve introducción a PHPUnit 54 / 81
  54. 54. - Los Stubs proporcionan respuestas predefinidas a ciertas llamadas durante los tests, sin responder a cualquier otra cosa para la que no hayan sido programados. - Los Mocks son objetos preprogramados con expectativas que conforman la especificación de lo que se espera que reciban las llamadas.12/11/12 Breve introducción a PHPUnit 55 / 81
  55. 55. Esta charla es introductoria12/11/12 Breve introducción a PHPUnit 56 / 81
  56. 56. Esta charla es introductoria No filosófica12/11/12 Breve introducción a PHPUnit 57 / 81
  57. 57. “Cuando necesitamos testear algo que depende de un objeto ajeno al test que vamos a realizar...12/11/12 Breve introducción a PHPUnit 58 / 81
  58. 58. ...ese objeto no debe crearse realmente, ya que rompería el principio “unitario”...12/11/12 Breve introducción a PHPUnit 59 / 81
  59. 59. ...para eso creamos objetos “falsos” que se comportan como deberían los reales...12/11/12 Breve introducción a PHPUnit 60 / 81
  60. 60. ...Ese es el cometido de los mocks y los stubs”12/11/12 Breve introducción a PHPUnit 61 / 81
  61. 61. ...Ese es el cometido de los mocks y los stubs” Yo mismo con mis propias palabras12/11/12 Breve introducción a PHPUnit 62 / 81
  62. 62. A ver si con un ejemplo lo comprendemos mejor12/11/12 Breve introducción a PHPUnit 63 / 81
  63. 63. Test doubles12/11/12 Breve introducción a PHPUnit 64 / 81
  64. 64. Cobertura de código - Code coverage12/11/12 Breve introducción a PHPUnit 65 / 81
  65. 65. Nos muestra cuanto y qué código está cubierto por nuestros tests. Muy útil para ver código “deprecated” y posibles bugs.12/11/12 Breve introducción a PHPUnit 66 / 81
  66. 66. Code Coverage12/11/12 Breve introducción a PHPUnit 67 / 81
  67. 67. Offtopic KATA12/11/12 Breve introducción a PHPUnit 68 / 81
  68. 68. Offtopic KATA12/11/12 Breve introducción a PHPUnit 69 / 81
  69. 69. "Talk is cheap. Show me the code." - Linus Torvalds12/11/12 Breve introducción a PHPUnit 71 / 81
  70. 70. Conclusión12/11/12 Breve introducción a PHPUnit 72 / 81
  71. 71. El testing mola12/11/12 Breve introducción a PHPUnit 73 / 81
  72. 72. No hay que ser cuadriculados12/11/12 Breve introducción a PHPUnit 74 / 81
  73. 73. TDD a veces no es la opción correcta para todo proyecto.12/11/12 Breve introducción a PHPUnit 75 / 81
  74. 74. Requiere tiempo12/11/12 Breve introducción a PHPUnit 76 / 81
  75. 75. Y sobre todo12/11/12 Breve introducción a PHPUnit 77 / 81
  76. 76. Mucha disciplina12/11/12 Breve introducción a PHPUnit 78 / 81
  77. 77. GRACIAS! Estos aplausos son para vosotros, por aguantar sin dormir12/11/12 Breve introducción a PHPUnit 79 / 81
  78. 78. ¿Alguna pregunta? (y que sea sencilla)12/11/12 Breve introducción a PHPUnit 80 / 81
  79. 79. ¿Donde encontrar el código? ● Mi github – https://github.com/mgallego ● Slideshare – http://www.slideshare.net/moisesgallego12/11/12 Breve introducción a PHPUnit 81 / 81

×