Apuntes de la Jornada sobre
Calidad Del Software por la empresa
GMV-SGI (
Manuel Recena) –
Martes 29 Mayo 2007
No puedo imaginar alguna condición que hunda este barco. La industria naviera ha ido más allá.
Smith. Capitán del Titanic
La gente olvida cuan rápido hiciste un trabajo pero siempre recuerda cuan bien lo hiciste.
Howard Newton
El peor enemigo de la calidad no es lo que se ignora, sino lo que se cree saber.
Pruebas de Caja Blanca
- Comportamiento interno y estructura del programa
- Prueba del camino básico
- Forzar ejecución de todas las sentencias y condiciones al menos una vez
- Análisis de valores límites: los errores pululan en los rincones y se acumulan en los límites.
Pruebas de Caja Negra
- Sólo analizamos entradas y salidas sin tener en cuenta el comportamiento interno
Prueba basada en escenarios
- Se centra en lo que hace el usuario y no en el producto (Casos De Uso)
Si tomo demasiadas precauciones es porque no dejo nada al azar.
Napoleón Bonaparte
La estrategia más inteligente contra el riesgo:
Proactividad
Accidente Ariane 5
Riesgo número 1: ¿entendieron el equipo de desarrollo y los clientes de que iba el proyecto?
Gestión del cambio
El cambio ocurre, es necesario gestionarlo con eficacia.
Ciclos de vida evolutivos
Conseguir todos los requisitos y expectativas al comienzo del proyecto es muy difícil.
Solución: Requisitos -> Desarrollo -> Evaluación
Plan de entrega: compuesto por iteraciones de no más de tres semanas
Buenas prácticas
- Generación de una base de conocimientos te permite ser proactivo.
- Actitud proactiva ante nuevas técnicas y prácticas te permite aprovechar ideas para mejorar.
- Programación Iterativa, Extreme Programming, Test Drive Development, Integración Continua.
- KISS (Kept It Simple Stupid), Patrones De Diseño, Programación Orientadaa Aspectos.
- Especialización en un marco tecnológico concreto.
- Planificación del proyecto: Roadmap y Milestones.
- Definición de componentes: aplicaciones modulares.
- Centralizar la información del proyecto.
- Uso de convenciones de programación, codificación, versionado, etc.
- Internacionalización (i18n)
- Definición de entornos de trabajo de desarrollo, preproducción y producción.
- Preparación de un plan de despliegue.
Automatizar procesos recurrentes
- Revisión del SCM en busca de cambios.
- Construcción del software desde las fuentes.
- Despliegue en un entorno de preproducción.
- Ejecución de pruebas y test.
- Generación de informes.
- Integración continua: comprobar cuando hay un cambio y ver el efecto que produce.
Caja de Herramientas
- Eclipse: entorno de desarrollo.
- Bugzilla: gestión de bugs.
- Trac: repositorio, tickets, etc
- Mylar: ?
- Continuum: hace pruebas unitarias, integración, despliegue, etc. Tira del sistema de control de versiones.
- Maven: le dice a continuum como implementar el sistema en cada entorno y cada estado.