1. UNIVERSIDAD DE CARABOBO
Facultad de Ciencias y Tecnología
Curso de Ingeniería del Software
Construcción y Pruebas del
Software
Presentación elaborada por:
Bazán, G., Rosas, F.
2. Agenda
Introducción.
Construcción del Software.
• ¿Que es la construcción del software.
• Relación con otras áreas del conocimiento.
• Tópicos en la construcción de software.
• Gerencia del proceso de construcción.
• Consideraciones practicas.
3. Agenda
Pruebas del Software.
• Validación y Revisión.
• Analizar y revisar.
• Pruebas de desarrollo.
• Test-driven Development.
• Pruebas de lanzamiento.
• Pruebas de usuario.
6. ¿Que es la construcción del Software?
El termino Software Construction
(Construcción del software) se refiere a la
creación de software productivo y
significativo a través de los procesos de
codificación, verificación, pruebas unitarias,
pruebas de integración y depuración de
errores.
7. Relaciones con:
• El área de diseño.
• El área de pruebas.
• El área de manejo de configuraciones.
• El área de herramientas y métodos.
• El área de calidad.
8. Relación con el diseño
• Sus salidas son procesadas
durante el proceso de
construcción.
• Puede ser una actividad del
proceso de construcción.
9. Relación con las pruebas
• Las salidas de la construcción
son sometida a un conjunto de
pruebas no especificas.
• El proceso de pruebas puede
formar parte en el proceso de
construcción en forma de
actividad.
“Las 'Pruebas' son escepticismo organizado.”
– James Bach
10. Relación con la G. Configuraciones
Se encarga de manejar el
conjunto de ítems producidos en
el proceso de construcción.
11. Relación con la Calidad
En el proceso de codificación se aplican criterios
calidad en aras de incrementar la calidad del software.
12. Relación con herramientas y métodos:
La construcción del software es el área que hace el uso
más intensivo de las herramientas y métodos.
13. Tópicos en la construcción de Software
• Minimizar la complejidad.
• Anticipar los cambios.
• Construir teniendo en cuenta la verificación.
• Construir usando estándares.
“El propósito de la ingeniería del software es controlar la complejidad, no crearla”
Pamela Zave
14. Minimizar la complejidad
• ¿Como reducir la complejidad al construir un
software?
• Escribiendo código sencillo y leíble más que
inteligente.
• Aplicando el uso de estándares.
“Programar puede ser divertido, la criptografía también;
sin embargo no deberían ser combinadas.”
Kreitzberg and Shneiderman.
15. Anticipación al cambio
• ¿Que se puede hacer ante el cambio?
• ¿Temer?
• ¿Resignarse?
• ¿Aplicar gestión del cambio?
“No hay nada permanente excepto el cambio”
Heráclito de Éfeso
16. Uso de Estándares
• ¿En que pueden afectar?
• Lenguajes de programación.
• Métodos de comunicación.
• Plataformas.
• Herramientas.
“El buen juicio viene de la experiencia, y la experiencia viene del mal juicio”
Frederick. P. Brooks
17. Gerencia de la construcción
• Modelos de construcción.
• Planificación de la construcción.
• Medición de la construcción.
“Los buenos programadores usan el cerebro pero los buenos
lineamientos nos salvan de pensar tanto.”
Francis Glassborow
18. Consideraciones practicas
• Diseño de la construcción.
• Lenguajes de construcción.
• Codificación.
• Pruebas.
• Re-utilización.
• Calidad en la construcción.
Si hablamos otro idioma, podríamos percibir un mundo diferente.
Wittgenstein
20. Pruebas de Software
• Demostrar al desarrollador y al cliente
que el software alcanza sus requisitos.
• Descubrir situaciones donde el
comportamiento del software es
incorrecto, indeseable o no esta ajustado
a las especificaciones
“Las pruebas pueden ser usadas para mostrar la presencia de errores,
pero nunca para mostrar su ausencia.”
Edsger Dijkstra.
21. Pruebas de Software
• Las pruebas forman parte de un proceso
mayor llamado verificación y validación.
• Validación: ¿Estamos construyendo el
producto correcto?
• Verificación: ¿Estamos construyendo bien
el producto?
22. Revisiones de Software
Analizar y revisar:
• Los requerimientos de sistema
• Los modelos de diseño
• El código fuente
• Las pruebas propuestas
23. Pruebas de Desarrollo
“Nunca cometo errores estúpidos, solo cometo los inteligentes”.
John Peel.
25. Pruebas Unitarias
• Las pruebas unitarias son aquellas
pruebas en donde las partes individuales
del programa u los objetos de las clases
son probadas.
• Estas pruebas se deben enfocar en
probar las funcionalidades de objetos o
métodos.
27. Pruebas de Componentes
• Las pruebas de componentes son aquellas
pruebas en donde varias pruebas unitarias
son integradas para crear componentes
compuestos.
• Estas pruebas deben enfocarse en probar
las interfaces de los componentes.
29. Pruebas de Sistema
Las pruebas de sistema son aquellas pruebas
en donde algunos o todos los componentes
en un sistema son integrados, probando el
sistema como un todo.
Estas pruebas se enfocan en probar las
interacciones de los componentes.
35. Conclusiones
• Construir Productos de Calidad
• Emplear las mejores practicas
• Seguir Estándares
• Validar
• Verificar
36. Bibliografía
Beck, K. (2002). Test Driven Development: By Example. Addison-Wesley
Longman.
Chelimsky, D., Astels, D., Dennis, Z., Hellesøy, A., Helmkamp, B., & North, D.
(2010). The RSpec Book. The Pragmatic Programmers LLC.
IEE Computer Society. (2004 ). Guide to the Software Engineering Body of
Knowledge (SWEBOK).
North, D. (2006). DanNorth.net. Recuperado el 14 de Junio de 2012, de
Introducing BDD: http://dannorth.net/introducing-bdd/
Sommerville, I. (2010). Ingeniería del software. Adison Wesley.