Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Software y los
Procesos de
Testing
GFI Informática
La Calidad del Software y los Procesos de Testing
Índice
Planificación Estandar
Planificación Estandar Evolución Real
Evolución Ideal
Ideal Pruebas
Pruebas
Planificación Estandar Evolución Real Ideal Pruebas
INTEGRACIÓN
INTEGRACIÓN
INTEGRACIÓN
CODIFICACIÓN
CODIFICACIÓN
INTEGRACIÓNINTEGRACIÓN
CODIFICACIÓN
DETALLADO
PRUEBAS
PRUEBAS
PRUEBAS
DETALLADO
DISEÑO DETALLADO
NIVEL
ALTONIVEL
CODIFICACIÓN
DISEÑO ALTO NIVEL
INTEGRACIÓN
DISEÑO
DISEÑOALTO
PRUEBAS
DISEÑO
REQUISITOS
REQUISITOS
PRUEBAS
DISEÑO
REQUISITOS
PRUEBAS
La Calidad del Software y los Procesos de Testing
Introducción – Algo mas que pruebas Software
Pruebas
Software
Gestión del
Ciclo de
Vida de la
Calidad
Software
La Calidad del Software y los Procesos de Testing
Introducción
La falta de cualquiera de estos vertices implica
problemas evidentes:
Carencia Problema Metodología
Herramientas Falta de
Productividad
Metodología Proceso
caótico y no
repetible
Herramientas Recursos
La Calidad del Software y los Procesos de Testing
Índice
TMap
TPI
TMM
La Calidad del Software y los Procesos de Testing
Metodologías - TMap
Técnicas
La Calidad del Software y los Procesos de Testing
Metodologías - TMap
Infraestructura y Herramientas
La Calidad del Software y los Procesos de Testing
Metodologías - TMap
Organización
La Calidad del Software y los Procesos de Testing
Metodologías de pruebas alineadas con procesos de desarrollo
TMap
TPI
TMM
La Calidad del Software y los Procesos de Testing
Metodologías - TPI
El modelo TPI está basado en las mejores prácticas de la industria
relativas a la mejora del proceso de pruebas. El modelo incluye guías
prácticas para evaluar el nivel de madurez de pruebas de una
organización así como los pasos para mejorar el proceso.
El propósito de tales mejoras podría ser alcanzar el nivel 3 del SEI-
CMM ( Capability Maturity Model ).
El modelo se compone de 20 Áreas
Clave, cada una con diferentes
niveles de madurez. Los niveles de
todas las Áreas Clave están integrados
en una Matriz de Madurez. Cada
nivel está descrito por varios Puntos
de Verificación. También forman
parte del modelo algunas
Sugerencias de Mejora que ayudan
a alcanzar el nivel deseado.
La Calidad del Software y los Procesos de Testing
Metodologías - TPI
Niveles
Puntos de Verificación
Los requisitos para cada nivel están
definidos en forma de Puntos de
Verificación ( Checkpoints ): son
preguntas que necesitan ser respondidas
afirmativamente para poder calificar a
dicho nivel. A partir de las listas de
verificación se puede evaluar un proceso
de pruebas y se puede determinar para
cada Área Clave el Nivel alcanzado. A
medida que se considera mejorada cada
Área Clave, los Puntos de Verificación
son acumulables: para poder clasificar
para el nivel B, el proceso de pruebas
necesita responder afirmativamente
tanto a los Puntos de Verificación del
nivel B como del nivel A.
La Calidad del Software y los Procesos de Testing
Metodologías - TPI
Matriz de Madurez
Todos los Niveles y Áreas Clave
están interrelacionados en una
Matriz de Madurez de Optimizada (11-13)
Pruebas. Se ha concebido como
una buena manera de expresar
las prioridades internas y Eficiente (6-10)
dependencias entre Niveles y
Áreas Clave. Controlada (1-5)
No existe graduación entre
Niveles: mientras que un
proceso de pruebas no esté
clasificado enteramente como
nivel B, permanecerá en el nivel
A.
El propósito principal de la matriz es mostrar los puntos fuertes y débiles del
actual proceso de pruebas y ofrecer una ayuda a la hora de determinar la prioridad
de las acciones de mejora.
La Calidad del Software y los Procesos de Testing
Metodologías - TPI
Aplicación del Modelo TPI
El proceso de mejora de pruebas es similar a
cualquier otro proceso de mejora. La figura
siguiente muestra las diferentes actividades de un
proceso de mejora.
La Calidad del Software y los Procesos de Testing
Metodologías de pruebas alineadas con procesos de desarrollo
TMap
TPI
TMM
La Calidad del Software y los Procesos de Testing
Metodologías - TMM
Herramientas:
El jefe de proyecto
publica el entregable en
• CVS:
el repositorio común Implementa un sistema de gestión de
CVS
versiones.
Mantiene el registro de todo el trabajo y los
cambios en la implementación de un
proyecto, permitiendo la colaboración entre
distintos desarrolladores.
Es un referente en software libre de gestión
de versiones .
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspección de Código
Proceso de integración continua
Nueva versión Publicar Integración Generación Publicación
software versión continua informes informes
El proceso de integración
continua (automático) Herramientas:
detecta la nueva versión
en el repositorio y
• Continuum v1.0.2:
ejecuta un conjunto de Servidor de integración continua.
tareas programadas
Realiza tareas programadas sobre
proyectos basados en java.
Alto grado de integración con Maven.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspección de Código
Notificación vía mail
Nueva versión Publicar Integración Generación Publicación
software versión continua informes informes
Herramientas:
• Changelog v1.8.2 Se generarán
• QALab v0.7.2 automáticamente
• CheckStyle v2.5 los informes de
• JavaDoc Reporte v1.7 calidad
• Jcoverage v1.0.9 programados.
• Jdepend v1.5
• NCSS v1.3
• Pmd v1.6
• FindBugs v0.9.2
• File-Activity 1.5.2
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspección de Código
Publicación de Informes
Nueva versión Publicar Integración Generación Publicación
software versión continua informes informes
Herramientas:
• Maven v1.0.2:
Se publicarán de forma
Herramienta para la gestión y comprensión de proyectos java.
automática los informes
Estándar de mercado en el mundo free. generados en el portal de
Metodología XP. calidad
Herramientas:
• Apache v utilizada por explotación:
Servidor http referente del mercado.
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource . Inspección de Código
Generación de resumen
Nueva versión Publicar Integración Generación Publicación
software versión continua informes informes
Equipo SAC
desarrollo
Gestió
Gestión Recursos Frontal
versiones SAC
Preexplotación Explotación
La Calidad del Software y los Procesos de Testing
Uso de Herramientas Opensource
La herramienta permite
realizar drill-down para
visualizar la cobertura de
las clases pertenecientes a
un determinado paquete
Ventajas OpenSource
¡Coste licencias es nulo!
Construidas con los mismos principios que las comerciales:
⌧ Arquitectura
⌧ Metodología/Técnicas
Extensibles/Integrables (Código abierto)
En algunos casos y para ciertos entornos, ¡son más potentes que las comerciales!
Inconvenientes OpenSource
Normalmente sólo disponibles para entornos web/java
Entornos de desarrollo “espartanos”
En ocasiones, lenguajes propietarios
En su desarrollo prima la funcionalidad básica frente a la avanzada y/o
utilidades/gadgets
El aprendizaje suele ser costoso
⌧ Material de formación muy básico o inexistente
⌧ No suele disponerse de guidelines metodológicos
Estabilidad/Fiabilidad
El soporte suele ser una incógnita (comunidades de usuarios/desarrolladores).
Normalmente es escaso o nulo
La Calidad del Software y los Procesos de Testing
Aspectos diferenciadores Herramientas comerciales frente a Opensource
Ventajas Comerciales
Multientorno: web/java, middleware, C/S, legacy (mainframe)
Entornos de desarrollo
⌧ IDE gráficos plenos de utilidades
⌧ Lenguajes abiertos
Entornos de ejecución con herramientas de análisis, monitorización, diagnóstico, …
Robustez y Escalabilidad
⌧ Arquitecturas tolerantes a fallos
Metodología/Técnicas: El fabricante aporta las suyas propias
Integradas
⌧ Por supuesto las de un mismo fabricante
⌧ En muchas ocasiones, entre fabricantes
Integrables (mediante APIS)
Herramientas de Reporting potentes
⌧ Integradas con paquetes ofimáticos con su correspondiente plantillaje
⌧ Dashboards ejecutivos (Web)
Soporte técnico solvente (¡cuesta, pero existe!)
Inconvenientes Comerciales
Coste licencias. ¡Suele asustar!
La Calidad del Software y los Procesos de Testing
Aspectos diferenciadores Herramientas comerciales frente a Opensource
Conclusiones:
Empezar con opensource no es mala idea:
En entornos web/java exclusivamente
Las herramientas funcionan
Parte del conocimiento adquirido es reaprovechable.
¡Pero ojo, hay que tener en cuenta los costes!
Hay un sobreesfuerzo asociado al uso de opensource con
respecto a comerciales (la productividad no es la misma)
que hay que tener en cuenta:
⌧ Un proyecto grande o varios proyectos pequeños pueden
justificar la inversión en comerciales
Migrar de opensource a comerciales tiene un coste de
reciclaje técnico
Definitivamente, en algún momento tendremos que
adquirir alguna herramienta comercial:
Por adecuación al entorno
Por limitaciones en la funcionalidad de las opensource
Por necesidades de reporting avanzado
¿Por capricho? ¿A quién no le gusta el Ferrari?
La Calidad del Software y los Procesos de Testing
Herramientas Comerciales
Gestión de
Pruebas
Automatiza- Carga y
ción Estrés
Reporte de Pruebas
Incidencias Manuales
La Calidad del Software y los Procesos de Testing
Índice
Gestión de la configuración SW
Aseguramiento de la Calidad
Help Desk
Gestión de Clientes
Gestión de Pruebas
Seguridad
La Calidad del Software y los Procesos de Testing
Factoría de Pruebas – Operativa
La Calidad del Software y los Procesos de Testing
Factoría de Pruebas – Perfil del Proveedor
FASE DE PRUEBAS
Criticidad Indicador Valor Objetivo
≤20% sobre el total de pruebas en el plan de pruebas >90%
1
≤3 iteraciones >90%
Ruegos y Preguntas
Validación Pruebas de
Funcional Carga
Test de caja negra basados Conjunto de pruebas
en los requisitos y las dinámicas que aseguran el
especificaciones funcionales comportamiento del sistema
en determinados escenarios
Automatización Test de
del Servicio Usabilidad
Automatización de las Validación del diseño y
actividades de SQA: análisis facilidad de uso de los
de código, ejecución de interfaces de usuario,
casos, reporte de defectos, siguiendo los estándares de
gestión de pruebas mercado
Gracias