1. Escuela Profesional de Ingeniería de Sistemas
PRUEBAS UNITARIAS PARA MEJORAR
LA CALIDAD DEL SOFTWARE
Eric Gustavo Coronel Castillo
gcoronelc.blogspot.pe
gcoronelc@gmail.com
2. Logro Esperado
Se espera que el participante entienda sobre
la necesidad de aplicar buenas practicas y
pruebas de unitarias en el programación de
software para lograr desarrollar productos
que realmente agreguen valor a la empresa.
4. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Planificaciones Demasiado Optimistas
La Casa de Fido
– Modelado simple
– Proceso simple
– Herramientas simple
5. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Planificaciones demasiado optimistas
Lo que realmente se quiere construir es mucho mas complejo.
6. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Planificaciones demasiado optimistas
No se entiende
cuáles son las
necesidades de los
clientes.
7. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Planificaciones demasiado optimistas
No definimos
correctamente el
alcance de los
requerimientos.
8. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Planificaciones demasiado optimistas
No hay tiempo, no hay
recursos y tampoco hay
presupuesto para probar
el software antes de
enviarlo a producción.
No debemos ser:
"cowboy coding"
10. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Cuál debe ser nuestro objetivo?
Programadores que se
sientan felices con lo
que hacen.
11. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Cuál debe ser nuestro objetivo?
Crear software bien
estructurado, aplicando
estándares y buenas
prácticas.
12. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Cuál debe ser nuestro objetivo?
Otro problema es el
mantenimiento que
se debe hacer
posteriormente.
13. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Cuál debe ser nuestro objetivo?
El desarrollo de software
ha evolucionado.
El código es algo vivo,
evoluciona con el programador.
14. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Por qué usar una Metodología de Desarrollo de Software
METODOLOGIA
Conjunto de procedimientos racionales utilizados para alcanzar
el objetivo.
METODOLOGIA DE DESARROLLO
Conjunto de procedimientos, técnicas, herramientas y soporte
documental que deben seguirse para el desarrollo del software.
15. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Por qué usar una Metodología de Desarrollo de Software
16. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Por qué usar una Metodología de Desarrollo de Software
Es una metodología cuyo fin es entregar un
producto de software.
Es un proceso de desarrollo de software el cual
utiliza el lenguaje unificado de modelado UML.
Constituye la metodología estándar más
utilizada para el análisis, implementación y
documentación de sistemas orientados a
objetos.
RUP es un conjunto de metodologías
adaptables al contexto y necesidades de cada
organización.
R U P
17. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Por qué usar una Metodología de Desarrollo de Software
Principales características
• Forma disciplinada de asignar tareas y
responsabilidades (quién hace qué, cuándo y
cómo)
• Pretende implementar las mejores prácticas en
Ingeniería de Software
• Desarrollo iterativo
• Administración de requisitos
• Uso de arquitectura basada en componentes
• Control de cambios
• Modelado visual del software
• Verificación de la calidad del software
R U P
18. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Por qué usar una Metodología de Desarrollo de Software
19. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Por qué usar una Metodología de Desarrollo de Software
20. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
Si tienes un
requerimiento, para
solucionarlo debes
implementar uno o varios
servicios.
PROYECTO
Requerimientos
a resolver
21. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
PROYECTO
Requerimientos
a resolver
✓ Requerimiento 1
✓ Requerimiento 2
✓ Requerimiento 3
✓ . . .
✓ . . .
✓ Requerimiento n
22. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
Conjunto de servicios
relacionados.
Librería, clase o componente
Si tienes un
requerimiento, para
solucionarlo debes
implementar uno o varios
servicios.
23. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
servicioinput
El imput puede
ser varios datos.
El servicio se implementa como un
método de un objeto.
output
El output es uno solo, que
puede ser simple o
estructurado, como por
ejemplo un objeto, un arreglo,
una colección, etc.
24. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
25. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
Conjunto de servicios
relacionados.
Componente 1
Conjunto de servicios
relacionados.
Componente 2
26. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
Componente de Servicios
Servicio 1
Servicio 2
Servicio n
27. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
Componente de Servicios
Servicio 1
Servicio 2
Servicio n
28. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Programación Orientada a Servicios
Servidor de Componentes
Aplicación de
Escritorio
Aplicación Web
Servicio Web
Aplicaciones
De
Terceros
29. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Principios
SOLID
30. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Principios
KISS
En la simplicidad está la
belleza y la eficacia.
31. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Principios
DRY
32. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Patrón DAO
33. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Patrón DAO
34. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Patrón
MVC
35. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
Patrón
MVC
36. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
En la Programación
37. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
¿Por qué debo
probar mi código?
38. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Pruebas
unitarias
Pruebas de
Integración
Pruebas de
Sistemas
Pruebas de
Regresión
Pruebas de
Aceptación
Podemos definir una Prueba de
Unidad como un método de
evaluación de una parte de un
sistema, es decir, de un módulo
de nuestro producto software.
Son aquellas que se realizan en el
ámbito del desarrollo de software una
vez que se han aprobado las pruebas
unitarias y lo que prueban es que todos
los elementos unitarios que componen
el software funcionen juntos
correctamente probándolos en grupo.
Evalúan el sistema en su conjunto. El objetivo
de este tipo de pruebas es comprobar que se
cumplen los requisitos funcionales y las
especificaciones técnicas del software.
Las Pruebas de Regresión sólo
son aplicables cuando existen
versiones previas del sistema.
Las Pruebas de Aceptación
evalúan que el sistema cumple
con los requisitos del cliente.
39. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Pruebas Unitarias
Un test unitario (Unit Test) es un trozo
de código desarrollado con el único
objetivo de verificar que una rutina o
método de nuestro código está
funcionando según esperamos.
40. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Pruebas Unitarias
Un test unitario (Unit Test) es un trozo
de código desarrollado con el único
objetivo de verificar que una rutina o
método de nuestro código está
funcionando según esperamos.
41. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Caso Ilustrativo
42. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Caso Ilustrativo
NO APLICAS
PRUEBAS
UNITARIAS
43. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Caso Ilustrativo
NO APLICAS
PRUEBAS
UNITARIAS
44. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Caso Ilustrativo
SI APLICAS
PRUEBAS
UNITARIAS
45. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Caso Ilustrativo
SI APLICAS
PRUEBAS
UNITARIAS
46. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Caso Ilustrativo
SI APLICAS
PRUEBAS
UNITARIAS
47. Gustavo Coronel – gcoronelc.blogspot.pe – gcoronelc@Gmail.com
Pruebas de Software
Caso Ilustrativo