El Proceso de pruebas
de Software
[Link] Jara García
Las Pruebas y la Calidad
Gracias a las pruebas se puede medir la calidad del software en
función a los defectos detectados, la calidad puede ser medida en
función a sus atributos Funcionales y NO funcionales
El ISO/IEC 9126 describe los atributos de la calidad.
Las pruebas pueden aportar fiabilidad a la calidad del software en
caso de detectar pocos o ningún defecto. Si embargo si las pruebas
detectan defectos, su corrección será la que incremente la calidad
del software.
Página 12
Página 13
¿En qué consiste el Proceso de
Pruebas?
Las pruebas son un proceso, que presenta los siguientes
objetivos:
• Encontrar defectos.
• Aumentar la confianza en el nivel de la calidad.
• Generar información para la toma de decisiones.
• Prevenir la aparición de defectos
PROBAR SIGNIFICA MÁS QUE EJECUTAR PRUEBAS
15
Las Pruebas y la Depuración
Depuración
Detección - Repetición de
Corrección de
Prueba identificaciónde
defectos
pruebas
defectos (re-test)
Probar y repetir la prueba (“re-testing”) son actividades propias del proceso de
pruebas.
La repetición de pruebas (“re-testing”) verifica que el defecto ha sido corregido.
La depuración y la corrección de defectos son actividades propias del
desarrollador. A través de la depuración los desarrolladores pueden reproducir los
fallos, analizar el estado del programa y detectar el defecto correspondiente con el
objeto de corregirlo.
17
El proceso de Pruebas Básico …
El proceso de pruebas está determinado por las siguientes
fases:
Planificación de pruebas y Control
Análisis y diseño de pruebas
Implementación y ejecución de pruebas
Evaluación del criterio de finalización de pruebas y
generación de informes de pruebas
Actividades de cierre de pruebas
Las fases del proceso de pruebas se podrán superponer
18
… El proceso de Pruebas Básico
Incluye superposición y
Planificación de Pruebas vuelta
atrás(“backtracking”)
Análisis de pruebas
y Diseño de pruebas
Control de pruebas
Cada fase del proceso
Implementación de pruebas
de pruebas tiene lugar
y Ejecución de pruebas de forma concurrente
con las fases del proceso
Evaluación del criterio de salida de desarrollo software
y Generación de informes
Actividades de cierre de pruebas
19
Planificación de Pruebas
Determinar el alcance y riesgos
Identificar los objetivos de las pruebas y los criterios de salida de
pruebas.
Determinar el enfoque: técnicas de pruebas, cobertura depruebas,
equipo de pruebas.
Implementar el método de pruebas / estrategia depruebas,
planificación del período de tiempo para el desarrollo de las
actividades a seguir.
Adquirir/obtener y programar recursos requeridos por las pruebas:
personal, entorno de pruebas, presupuesto de pruebas
20
Análisis y Diseño de Pruebas
Revisar las bases de prueba(“test basis”) (requisitos,
arquitectura del sistema, diseño, interfaces).
Análisis de la arquitectura del sistema, diseño delsistema
incluyendo las interfaces entre los objetos de prueba.
Analizar la testabilidad.
Identificar y priorizar condiciones de prueba (“test conditions”)
en función de:
Análisis de los elementos de prueba (“test item”)
Especificaciones de prueba
Comportamiento y estructura del softwareP lan
21
Análisis y Diseño de Pruebas
Diseñar pruebas / casos de prueba de alto nivel.
Crear y priorizar casos de prueba de lógico / alto nivel
Identificar condiciones de prueba específicas y datos de
prueba (“test data”)necesarios
Evaluar la disponibilidad de datos de prueba y/o la viabilidad
de generación de datos de prueba.
Diseñar el entorno de prueba (“test environment”)[camade
prueba –(“test bed”)].
Probar la infraestructura y herramientas de prueba (“test
tools”), si fuera necesario.
Crear trazabilidad bidireccional entre las bases de las
pruebas y casos de prueba
22
Análisis y Diseño de Pruebas
Importancia
Mejor
Juego
Primer Juego Tiempo
23
Implementación y Ejecución de
Pruebas
Finalizar, implementar y priorizar casos de prueba
Identificar datos de prueba
Desarrollar y priorizar procedimientos de prueba
Crear datos de prueba
Preparar arneses de prueba (“test harness”) [opcional]
Redactar guiones de prueba automatizados(“automated
test script”),si fuera necesario
Crear juegos de prueba (“test suites”) de los procedimientos
para una ejecución de prueba eficiente
Verificar el entorno de prueba (cama de prueba)
24
… Implementación y Ejecución de
Pruebas
Verificar y actualizar la trazabilidad (bases de prueba -casos
de prueba).
Ejecutar prueba (de forma manual o automática)
Seguir secuencia de prueba.
Registrar resultados de prueba y análisis
Repetir actividades de prueba para confirmar una corrección
Repetición de prueba (“re-test”) [después de la corrección de
un defecto]
Ejecutar prueba de regresión
Asegurar que los cambios no han revelado otros defectos o
introducido nuevos defectos
25
Evaluación del Criterio de Salida y
Generación de Informes
Evaluar la ejecución de pruebas con respecto a objetivos
definidos (por ejemplo, criterios de salida)
Evaluar los registros de pruebas(resumen de las actividades
de pruebas, resultados de prueba, comunicar criterio desalida)
Proporcionar información con el objeto de dar lugar a la
decisión de si llevar a cabo pruebas adicionales
26
Cierre de Pruebas
Recopilar datos de las actividades del proceso de pruebas
finalizadas producto de soporte de prueba ("testware"), hechos y
números
Cerrar informes de incidencias o generación de solicitudes de
cambio .
Comprobar qué entregables planificados han sido entregados y
probados
Documentar la aceptación del sistema
Finalizar y archivar los productos de soporte de prueba ("testware"),
el entorno de prueba y la infraestructura de prueba para un uso
posterior, transferencia / traspaso a operaciones
Analizar las lecciones aprendidas para futuros proyectos
Utilizar la información recopilada para mejorar la madurezdel
proceso de prueba
27
Control de Pruebas
•Actividad continua que consiste en comparar el progreso
logrado con respecto al plan de pruebas .
Se miden y analizan resultados
La evolución de las pruebas, la cobertura de las pruebas y el
cumplimiento de los criterios de salida (“exit criteria”)depruebas
son objeto de seguimiento y son documentados.
Se inician medidas correctivas
Se preparan y toman decisiones
28
Los 7 Principios de las Pruebas
• Nos acompañan a lo largo de todo el proceso de pruebas.
Principio 1: El proceso de pruebas demuestra la presenciade
defectos
Principio 2: No es posible realizar pruebas exhaustivas
Principio 3: Pruebas tempranas (“early testing”)
Principio 4: Agrupamientode defectos (“defect clustering”)
Principio 5: Paradoja del pesticida
Principio 6: Las pruebas dependen del contexto
Principio 7: La falacia de la ausencia de errores implica unsistema
útil
32
La Psicología en el proceso de
Pruebas
La actitud del probador difiere de la actitud para el desarrollo de
software, un probador independiente contribuye con una visión
imparcial sobre el objeto de prueba.
Las pruebas independientes aumentan la calidad del proceso
de pruebas:
– En lugar de equipos de desarrolladores utilice equipos de
prueba (probadores –“testers”) o equipos con personal externo
para pruebas
34
…La Psicología en el proceso de
Pruebas – Organización de Equipos
35
Pruebas de Software
Tarea
Lectura:
Capítulo 12 libro “capítulo 12 del libro de Piattini: “Pruebas del
software”. (Piattini,2004)”
Control de lectura próxima clase.