¿Porqué son importantes las Pruebas de Software?

571 views

Published on

Esta presentación la comparto porque muy pocas organizaciones toman en cuenta la importancia de las pruebas de software.

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
571
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
18
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

¿Porqué son importantes las Pruebas de Software?

  1. 1. Pruebas del Sistema JOEDAYZ, Noviembre 2013
  2. 2. Acerca de Ing. José Amadeo Martin Díaz Díaz CEO JoeDayz.pe & Docente en EPE UPC Formación BlueStar Energy (2007) Bristol Myers Squibb (2006) Trans Solutions Systems (2003 - 2005) Telefonica Servicios Internet (2000 - 2002) Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000) @jamdiazdiaz
  3. 3. ¿Por que son importantes las pruebas?
  4. 4. Usuarios contentos con nuestro trabajo
  5. 5. ¿Por que son importantes las pruebas?
  6. 6. Usuarios insatisfechos
  7. 7. ¿Cual debe ser nuestra preocupación?
  8. 8. Que el software funcione o tendremos este tipo de respuesta
  9. 9. El tiempo La calidad vale mas que el dinero
  10. 10. Tiempo de Respuesta adecuado
  11. 11. ¿Y que pruebas debo hacer?
  12. 12. Mínimo XP-Pruebas XP: Extreme Programming Pruebas de unidad para todo Pruebas de integración Deben funcionar todas las pruebas antes de liberar Si surge un error (bug), deben escribirse las pruebas para replicarlo. Un bug es una prueba que olvidamos escribir
  13. 13. Pruebas unitarias Se prueban los componentes aislados Generalmente se usan Mocks o Stubs Se usan verificaciones “asserts” para probar Son confundidas con Pruebas de Integración Pruebas de caja blanca
  14. 14. Pruebas de integración Sirven para probar los componentes involucrados en un flujo Validan el trabajo de varios desarrolladores Pruebas de caja negra Puede ser automatizados, simulan la interacción con el usuario
  15. 15. Pruebas de Rendimiento Sirven para verificar el comportamiento de una aplicación baja una demanda excesiva Se genera una gran cantidad de peticiones a la aplicación y verificar su comportamiento. De esta manera podemos garantizar el numero de peticiones aproximado bajo las cuales la aplicación, servidor, interacción con otros aplicativos, etc. es normal Sugerencia: Entorno similar a Producción
  16. 16. Pruebas Funcionales Prueba basada en la ejecución, revisión y retroalimentación de las funcionalidades previamente diseñadas para el software Se hacen mediante modelos de prueba que buscan evaluar cada una de las opciones con las que cuenta el software Son concretas, especificas y exhaustivas para probar y validar que el software hace lo que debe y sobretodo, lo que se ha especificado.
  17. 17. Prueba de aceptación Es un escenario de utilización del sistema y el comportamiento que de él se espera Visto desde la perspectiva del cliente, usuario o sistema externo que interactúa con el programa. Estas pruebas permiten Validar el Producto. Mientras que las pruebas unitarias y de integración permiten Verificar el Producto.
  18. 18. Pruebas de calidad de código Para garantizar que la calidad del código es realmente óptima y que la probabilidad de tener errores o bugs en la codificación es mínima (nunca dejaran de existir pero se busca disminuir la probabilidad) Cobertura: % de código desarrollado y probado por pruebas unitarias Análisis de lineas de código: evitar código repetido, que % esta documentado, comentado Complejidad: acorde a la implementación ciclomática de McCabe.
  19. 19. Pruebas de calidad de código Diseño de Clases Violaciones de Calidad Sonar
  20. 20. Checksty le FindBu gs
  21. 21. Impacto de las pruebas El tener una buena batería de pruebas nos permite entre otras cosas: Validar nuestros requerimientos Medir el impacto de los refactorings Documenta el proyecto Permite mejorar el diseño
  22. 22. Faltan mas pruebas Pruebas de Sistema Pruebas de Integración de Sistema Pruebas no funcionales Entre otras
  23. 23. Automatización de pruebas Usamos JENKIS para el build del proyecto Las pruebas deben ser Repetibles Autónomas De ejecución rápida
  24. 24. Integración continua Es el proceso de que cada cierto tiempo o cambio en el código (commit en el repositorio), se construye el proyecto automáticamente Este proceso realiza: Compilación Ejecución de pruebas Generación de Reportes Notificación de errores
  25. 25. ¿Sólo las pruebas ayudan?
  26. 26. by @domix
  27. 27. Visual Management
  28. 28. Visual Management
  29. 29. Conclusiones Las pruebas son parte del proceso que garantiza el éxito del producto. Son como los brazos del cuerpo humano. Pueden no estar, pero, son importantes para el todo. La clave esta en la comunicación temprana de lo bueno y lo malo o el efecto “bola de nieve” puede causar que el proyecto fracase Busque mantener a sus usuarios/clientes satisfechos con su trabajo No se ponga en situaciones como la que viene a continuación…
  30. 30. Gracias Ing. Jose Diaz @jamdiazdiaz www.joedayz.pe Noviembre 2013

×