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
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. 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.
15. 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
16.
17. 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
18.
19. 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.
20. 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.
21.
22. 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.
23. Pruebas de calidad de
código
Diseño de Clases
Violaciones de Calidad
Sonar
25. 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
26. Faltan mas pruebas
Pruebas de Sistema
Pruebas de Integración de Sistema
Pruebas no funcionales
Entre otras
28. 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
35. 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…