1
Tema 5. Pruebas del SW: Técnicas y Estrategias
1. Objetivos y límites de las pruebas
Razones para la imposibilidad de prueba completa
No se puede probar las respuesta del programa para
cada posible entrada.
Qué significaría probar cada entrada:
− Se deben probar todas las entradas válidas.
− Se deben probar todas las entradas inválidas.
− Se deben comprobar todas las entradas editadas.
− Se deben probar todas las variaciones temporales de las
entradas.
¿Qué ocurre si no puedo probar todas las entradas de un
programa? Abandona la prueba completa
3
Tema 5. Pruebas del SW: Técnicas y Estrategias
2
Tema 5. Pruebas del SW: Técnicas y Estrategias
1. Objetivos y límites de las pruebas
Razones para la imposibilidad de prueba completa
No se pueden encontrar todos los errores de diseño.
Las especificaciones de diseño a menudo contienen
errores(2+2=5)
− ¿Error que el programa siga una especificación erronea o
que se desvíe?
− Mala especificación Erróneo.
No se puede probar completamente un programa si
no se pueden encontrar todos sus errores de diseño.
No se puede comprobar la corrección usando la
lógica.
Ignorando el número de incógnitas y el tiempo podríamos
validar la consistencia, decidir si está de acuerdo con la
especificación, pero ¿es correcta la especificación?.
5
Tema 5. Pruebas del SW: Técnicas y Estrategias
3
Tema 5. Pruebas del SW: Técnicas y Estrategias
1. Objetivos y límites de las pruebas
Objetivo del testeador: ¿Verificar el programa?
Prepara a los testers para el fallo
Los testeadores no deben querer verificar que un programa se
ejecute correctamente.
− Si se quiere y espera que un programa funcione bien, se
perderán errores.
− Si se espera que falle, se tenderá a detectar más errores.
− Si se penaliza por encontrar errores, se perderán errores.
Aumento de la calidad.
4
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Consideraciones comunes a toda prueba
Ciclo completo de las pruebas
Diseño
Diseñode
deCasos
Casosde
de
Test
Test
Casos
Casosde
deTest
Test
Preparar
PrepararDatos
Datosde
de
Test
Test
Datos
Datosde
deTest
Test
Ejecutar
Ejecutarprogr.
progr.con
con
datos
datosde
detest
test
Rdos.
Rdos.Test
Test
Comparar
Compararrdos.
rdos.con
con
Casos
Casosde
deTest
Test
Informes
InformesTest
Test
9
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Consideraciones comunes a toda prueba
Caso de prueba: conjunto específico de datos de
entrada y de procedimientos asociados, desarrollados
para probar un caso determinado (secuencia/camino
particular, verificación de un requisito, etc).
deben ser documentados y archivados.
definir el resultado esperado.
comprobar si no hace lo que debe o hace lo que no
debe.
tanto entradas inválidas e inesperadas como esperadas
inspeccionar concienzudamente resultado de cada
prueba
El programador evitará probar sus programas.
Probabilidad de la existencia de nuevos errores en una
sección de un programa es proporcional al número de
errores ya descubiertos.
10
5
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
11
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
12
6
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca
Se usan la estructura de control del diseño
procedimental para diseñar los casos de prueba.
¿Por qué utilizar pruebas de caja blanca?:
Los errores lógicos y las suposiciones incorrectas son
inversamente proporcionales a la probabilidad de que se
ejecute un camino del programa.
A menudo creemos que un camino lógico tiene pocas
posibilidades de ejecutarse cuando, de hecho, se puede
ejecutar de forma regular.
Los errores tipográficos son aleatorios.
Testeo estructural, selección adecuada de caminos:
Camino: secuencia de sentencias encadenadas desde la
sentencia inicial del programa hasta su sentencia final
13
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca
No se pueden testear todos los caminos. Criterios de
selección:
Cobertura de sentencias
− Escribir los casos suficientes para que cada sentencia en el
programa se ejecute al menos una vez.
Cobertura de decisión o de ramificación.
− Escribir casos suficientes para que cada decisión, por lo
menos una vez, tenga un resultado verdadero y uno falso.
Cobertura de condición
− Escribir el suficiente número de casos para que cada
condición de toda decisión tenga todos los resultados
posibles.
14
7
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Camino Básico
Debemos asegurar que cada uno de los posibles caminos
de un programa sean ejecutados al menos una vez.
Para llegar a obtener esta cobertura se deben realizar las
siguientes acciones:
1. Obtener el grafo de flujo de control asociado al
software.
2. Calcular el número de caminos mediante
ecuaciones algebraicas.
3. Identificación de los caminos para su enumeración.
Elementos utilizados para la construcción de grafo de flujo
son: A
Nodos (sentencias)
Región
Aristas (flujos de control)
15
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Camino Básico
Para obtener un grafo de flujo a partir de un lenguaje
de diseño o pseudocódigo, se deben realizar los
siguientes pasos:
Señalar cada una de las condiciones de cada
decisión, tanto en sentencias IF y CASE como en
bucles WHILE o UNTIL.
Agrupar sentencias entre cada dos condiciones,
teniendo en cuenta que las sentencias de finalización
ENDIF, ENDDO, END, etc. constituirán un nuevo
nodo.
Numerar tanto las condiciones como los grupos de
sentencias. Nodos predicados: identificar la condición
con una letra y cada una de las aristas de salida con
el resultado de la condición.
Decisiones que impliquen a varias condiciones:
descomponerlas
16
8
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Camino Básico
Cálculo del número de caminos mediante ecuaciones algebraicas.
En el caso de grafos simples (sin bucles) se siguen las
siguientes reglas:
Si definimos Nx como el número de caminos que atraviesan x.
A
A A B
B C C
B
Definirían:
Na = Nb + Nc
Na = Nb = Nc
Na = 2 x Nb
17
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Camino Básico
El cálculo de caminos de un grafo con bucles puede ser ilimitado.
Se define un nuevo concepto:
Camino de prueba: camino de programa que atraviesa,
como máximo una vez el cuerpo de cada bucle encontrado.
Atendiendo a esta definición se puede calcular el número de
caminos de prueba de dos formas:
Rectificación de bucles:
− Pretende eliminar del grafo la arista que forma el bucle,
sustituyéndola por una nueva arista que represente el
encadenamiento de aristas que se producirían al iterar
una vez el bucle.
Ecuaciones algebraicas:
− Se definen nuevas ecuaciones que se asocian a los dos
tipos de bucles posibles (while y until)
Nw = 1 + Na
Un = Na x (1 + Na)
18
9
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Camino Básico
La complejidad ciclomática es una métrica del
software que proporciona una medición cuantitativa
de la complejidad lógica de un programa.
Conjunto básico de un programa: número de
caminos independientes
− Camino independiente: cualquier camino del programa
que introduce un conjunto de sentencias de proceso o
una nueva condicion
− Asegurar que se ejecuta cada sentencia al menos una
vez y que cada condición se habrá ejecutado en su
vertiente verdadera y falsa
19
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Camino Básico
La complejidad se puede calcular de tres formas:
El número de regiones del grafo de flujo coincide con
la complejidad ciclomática.
La complejidad ciclomática, V(G), de un grafo de flujo
G se define como
V(G) = A – N + 2
donde A es el número de aristas del grafo de flujo y N
es el número de nodos.
La complejidad ciclomática, V(G), de un grafo de flujo
G también se define como
V(G) = P + 1
donde P es el número de nodos predicado contenidos
en el grafo de flujo G.
20
10
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Camino Básico
Obtención de casos de prueba:
1. Usando el diseño o el código como base, dibujamos el
correspondiente grafo de flujo.
2. Determinamos la complejidad ciclomática del grafo de
flujo resultante.
3. Determinamos un conjunto básico de caminos
linealmente independientes.
V(G):número de caminos linealmente independientes
de la estructura de control del programa.
4. Preparamos los casos de prueba que forzarán la
ejecución de cada camino del conjunto básico.
Escogemos los datos de forma que las condiciones de
los nodos predicado estén adecuadamente
establecidas con el fin de comprobar cada camino.
21
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Prueba Estructura Control
Pruebas de condición
Método de diseño de casos de prueba que ejercita las
condiciones lógicas contenidas en el módulo de un programa.
Prueba de flujo de datos
Selecciona caminos de prueba de un programa de acuerdo
con la ubicación de las definiciones y los usos de las variables
del programa.
Prueba de bucles
Se centra únicamente en la validez de las construcciones de
bucles:
Bucles simples: se les aplican pruebas como pasar por alto el
bucle, pasar una sola vez, pasar n-1, n y n+1 veces.
22
11
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja blanca: Prueba Estructura Control
Prueba de bucles
Bucles anidados: se utilizan otros enfoques para reducir
la complejidad (por ejemplo, pruebas simples en bucles
internos manteniendo parámetros de iteración para
bucles externos).
Bucles concatenados: pueden ser simples o mantener
dependencia (bucles anidados).
Bucles no estructurados: rediseño.
23
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja negra
Se centran en los requisitos funcionales (y no
funcionales) del software.
Tratan de encontrar errores en las siguientes
categorías:
1. Funciones incorrectas o ausentes.
2. Errores de interfaz.
3. Errores en estructuras de datos o en accesos a bases
de datos externas.
4. Errores de rendimiento.
5. Errores de inicialización y de terminación.
Tienden a aplicarse durante fases posteriores de las
pruebas.
24
12
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas de caja negra
Criterios:
Reducen en un coeficiente >1 el nº de casos de prueba
Casos de prueba informan de presencia o ausencia de
clases de errores asociados con la prueba
Inputs causing
anomalous
Input test data I behaviour
e
System
25
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas caja negra: Clases de equivalencia
Cada caso debe cubrir el máximo número de entradas
Dominio de valores de entrada dividido en un número
finito de clases de equivalencia que cumplan la siguiente
propiedad:
La prueba de un valor representativo
de una clase permite suponer
«razonablemente» que el resultado Invalid inputs Valid inputs
obtenido (existan defectos o no)
será el mismo que el obtenido
probando cualquier otro valor de la System
clase
Lo que hay que hacer es:
1. Identificar clases de equivalencia
2. Crear casos de prueba
Outputs
correspondiente
26
13
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas caja negra: Clases de equivalencia
Condiciones de las entradas del programa: restricciones
de formato o contenido de los datos de entrada
Condiciones ⇒ identificar clases de equivalencia(Reglas de
identificación):
a) De datos válidos
b) De datos no válidos o erróneos
Usar las clases de equivalencia para identificar casos de
prueba:
1. Asignación de un número único a cada clase de
equivalencia
2. Hasta que todas las clases de equivalencia válidas
hayan sido cubiertas por (incorporadas a) casos de
prueba, escribir un caso que cubra tantas clases válidas
no incorporadas como sea posible
3. Hasta que todas las clases de equivalencia no válidas
hayan sido cubiertas por casos de prueba, escribir un
27 caso para una única clase no válida sin cubrir
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas caja negra: Clases de equivalencia
Reglas de identificación de clase:
a) Si se especifica un rango de valores para los datos de
entrada, se creará una clase válida y dos clases no válidas
b) Si se especifica un número finito y consecutivo de valores,
se creará una clase válida y dos no válidas
c) Si se especifica una situación del tipo «debe ser» o
booleana (por ejemplo, «el primer carácter debe ser una
letra»), se identifican una clase válida («es una letra») y una
no válida («no es una letra»)
d) Si se especifica un conjunto de valores admitidos y se
sabe que el programa trata de forma diferente cada uno de
ellos, se identifica una clase válida por cada valor y una no
válida
e) Si se sospecha que ciertos elementos de una clase no se
tratan igual que el resto de la misma, deben dividirse en
Clases Menores
28
14
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Pruebas caja negra: Clases de equivalencia
Ejemplo: Aplicación bancaria en la que el operador
debe proporcionar un código, un nombre y una
operación
30
15
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas. Pruebas caja negra:
Análisis de Valores Límite
AVL complemento de Particiones de Equivalencia. Diferencias:
1. Si una condición de entrada especifica un rango de valores,
se deben generar casos para los extremos del rango y casos
no válidos para situaciones justo más allá de los extremos
2. Si la condición de entrada especifica un número finito y
consecutivo de valores, hay que escribir casos para los
números máximo, mínimo, uno más del máximo y uno
menos del mínimo de valores
3. Usar la regla 1 y 2 para cada condición de salida
− Los valores límite de entrada no generan necesariamente
los valores límite de salida (recuérdese la función seno, por
ejemplo)
− No siempre se pueden generar resultados fuera del rango
de salida(pero es interesante considerarlo)
4. Si la entrada o la salida de un programa es un conjunto
ordenado, los casos se deben concentrar en el primero y en el
último elemento
31
Tema 5. Pruebas del SW: Técnicas y Estrategias
16
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas.
Otros tipos
Testeo orientado a objetos:
Mayor gránulo que las pruebas de caja blanca
Diferentes niveles:
− Operaciones
− Clases de objetos
− Clusters de objetos
– Escenarios o Casos de prueba
Generating Test Cases From Use Cases
(http://www.therationaledge.com/content/jun_01/m
_cases_jh.html)
– Testeo de hilos
– Interacción de Objetos
− Sistema completo
33
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Secuencia de eventos
Código de Código de Código de
componente componente componente
Prueba
Prueba de
de Prueba
Prueba de
de Prueba
Prueba de
de
unidad
unidad unidad
unidad ... unidad
unidad
Componente probado
Especificaciones de Prueba
Prueba de
de
diseño integración
integración
Módulos integrados
Requisitos funcionales Prueba
Prueba
del sistema Funcional
Funcional Sistema en
funcionamiento
Otros requisitos del Prueba
Prueba de
de
software Sistema
Sistema Software verificado
y validado
Especificación de Prueba
Prueba de
de
requisitos del cliente aceptación
aceptación
Sistema aceptado
Entorno del usuario
Prueba
Prueba de
de
34 instalación
instalación Sistema en uso!!
17
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas. Estrategias
Pruebas de Unidad
Prueba de la componente software o módulo:
Driver + Stub: sobrecarga de trabajo
− Posponer hasta pruebas de integración
Requisito: Módulo con alto grado de cohesión
Driver
Driver Interfaz
Estructuras de datos locales
Módulo
Módulo Condiciones límites
aaprobar
probar Caminos independientes
Caminos de manejo de errores
Stub
Stub Stub
Stub
Casos
Casos de
de
Casos
Casos de
de
Casos
Prueba
Casos
Prueba de
de
Casos
Prueba
Casos
Prueba de
de
Casos
Prueba
Casos
Prueba de
de
RESULTADOS Prueba
Prueba
Prueba
Prueba
35
Tema 5. Pruebas del SW: Técnicas y Estrategias
36
18
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas. Estrategias
Pruebas de Integración
Pruebas top-down versus bottom-up:
Son estrategias incrementales.
El producto debe haber sido diseñado jerárquicamente.
Bottom-up prueban primero los módulos de nivel inferior.
Driver: testear rutinas de menor nivel testear rutinas de
mayor nivel
Test
drivers
Testing
Level N Level N Level N Level N Level N
sequence
Test
drivers
Level N–1 Level N–1 Level N–1
37
Tema 5. Pruebas del SW: Técnicas y Estrategias
Testing
Level 1 Level 1 ...
sequence
Level 2
stubs
Level 3
stubs
38
19
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas. Estrategias
Pruebas Funcionales y de Sistema
Verificación y Validación
Se verifica un programa comprobándolo contra los
documentos de diseño o especificaciones más próximas.
Si existe una especificación externa se realizan pruebas
funcionales.
Se valida el programa comprobándolo contra los requisitos
de usuario o de sistema. Las pruebas de sistema y de
integración son pruebas de validación.
Validación y Verificación Independiente: hechas por una
empresa independiente
Para una descripción completa de la verificación y
validación: IEEE Standard for Software Verification and
Validation Plans (ANSI/IEEE Standard 1012-1986).
39
Tema 5. Pruebas del SW: Técnicas y Estrategias
Static
verification
Dynamic
Prototype
validation
40
20
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas. Estrategias
Pruebas Funcionales y de Sistema
Algunas pruebas ejecutadas durante las pruebas de
funcionalidad y de sistema:
Verificación de la especificación. Pruebas de carga:
Corrección. volumen, stress y
Usabilidad almacenamiento
Condiciones de borde Recuperación ante
errores
Rendimiento
Compatibilidad y
Transiciones entre estados
conversión
Pruebas de uso convencional
Configuración
Tareas de Fondo (background)
Instalabilidad y
Seguridad practicabilidad
Quickies
......
41
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
Estrategias
Prueba final de aceptación y certificación:
Ejecución de una prueba de aceptación por parte del cliente
cuando entreguemos el producto.
La certificación se realiza por una tercera persona. Se trata
de una prueba breve.
Pruebas release:
En las pruebas de publicación se recogen todos los
elementos que irán al consumidor o al manufacturador, se
comprueba que son todas correctas, se copian y se archiva
la copia. Después se publican
42
21
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas. Estrategias
Pruebas de regresión
Aplicable a pruebas tanto de caja negra como
blanca.
Se usa con dos ideas diferentes (en común tienen la
de reusar pruebas antiguas):
Al encontrar un error y corregirlo, repetir la prueba
que reflejó el problema en primer lugar. Se pueden
crear grupos de pruebas de regresión. Se refleja la
vulnerabilidad de las correcciones.
Cuando se encuentra y corrige un error, se ejecuta
una serie estándar de pruebas para asegurarnos de
que el cambio no perturba nada más.
43
Tema 5. Pruebas del SW: Técnicas y Estrategias
2. Tipos de pruebas
44
22
Tema 5. Pruebas del SW: Técnicas y Estrategias
3. Análisis y seguimiento de errores.
45
Tema 5. Pruebas del SW: Técnicas y Estrategias
23
Tema 5. Pruebas del SW: Técnicas y Estrategias
3. Análisis y seguimiento de errores.
Tácticas para analizar un error reproducible
1. Buscar el paso crítico: No se mira una causa, se miran
sus síntomas.
Buscar:
− Mensajes de error.
− Retardos en el procesamiento.
− Parpadeos en la pantalla.
− Saltos del cursor.
− Múltiples cursores.
− Texto no alineado.
− Caracteres dobles u omitidos.
− Luz de uso cuando el dispositivo no está en uso.
2. Maximizar la visibilidad del comportamiento del
programa.
Herramientas (Depuradores).
Registro de todos los accesos a fichero, pantalla, etc.
Utilizar un terminal lento
47
Tema 5. Pruebas del SW: Técnicas y Estrategias
24
Tema 5. Pruebas del SW: Técnicas y Estrategias
3. Análisis y seguimiento de errores.
Hacer reproducible un error
Error reproducible:
Se debe ser capaz de explicar como llegar a un estado y
como disparar el error.
Se debe escribir todo lo que se recuerde de lo que se
hizo la primera vez e intentar reproducir el error.
Si una vez obtenido el error no se puede reproducir
deberemos tener en cuenta algunas hipótesis:
Condiciones de velocidad.
− Generalmente ejecutamos la prueba por segunda vez
mucho más lento. El error pudo producirse porque el
programa no puede trabajar tan rápido. Volver a realizar la
prueba de forma rápida.
Espoleta retardada.
− Errores que no tiene un impacto inmediato.
49
Tema 5. Pruebas del SW: Técnicas y Estrategias
50
25
Tema 5. Pruebas del SW: Técnicas y Estrategias
3. Análisis y seguimiento de errores.
Hacer reproducible un error
El error es un efecto lateral de algún otro problema.
Error hardware intermitente.
Dependencia temporal.
− El error puede depender de la fecha u hora en la que se
realiza la prueba.
Dependencia de los recursos.
Casos especiales en el código.
− La ayuda del programador puede ahorrar mucho tiempo.
Alguien ha jugueteado con tu máquina.
51
Tema 5. Pruebas del SW: Técnicas y Estrategias
52
26
Tema 5. Pruebas del SW: Técnicas y Estrategias
3. Análisis y seguimiento de errores.
Sistema de Seguimiento de Problemas
Las tareas fundamentales del sistema es asegurar que:
Cualquier persona que necesite conocer un problema
debe aprenderlo pronto después de haber sido
notificado.
Ningún error quedará sin corregir porque alguien se
olvidó de el.
Ningún error quedará sin corregir por capricho de un
programador.
Un mínimo número de errores quedarán sin corregir
simplemente por comunicación pobre.
53
Tema 5. Pruebas del SW: Técnicas y Estrategias
Reproducir Informe
Informedel
delproblema
problema
Reproducir
ooMejorar
Mejorar
Dtor. Proyecto
Marcar“Diseñado”
Marcar “Diseñado” Priorizar
Programadores
Marcar“Aplazado”
Marcar “Aplazado” Investigación
Marcar
Marcar“Irreproducible”
“Irreproducible” Informe
Informecorregido
corregido
Estado:
Estado:Abierto
Abierto ++comentario
comentario
Re -Evaluación
Test
Testsiguientes
siguientes Problema
Problema
Versiones
Versiones Pendiente
Pendiente
54
27
Tema 5. Pruebas del SW: Técnicas y Estrategias
3. Análisis y seguimiento de errores.
Sist. de Seg. Problemas: Estructura
Problemas que no se han tratado.
Algunos informes se pierden, otros se separan
deliberadamente, otros con baja prioridad son olvidados.
Regla importante: todos deben ser resueltos antes de
que el producto se publique.
Debe ponerse en circulación un informe resumen, cada
una o dos semanas, que liste los errores pendientes para
evitar que se olviden.
Informe de estado del proyecto.
Informe manejable que indica cuantos errores: se han
encontrado, están pendientes, han sido aplazados
comparado con corregidos, etc.
Muestra el progreso de cada semana y los totales,
ayudando a los directores a evaluar la calidad del
esfuerzo de programación, la fiabilidad, la efectividad de
las pruebas, etc.
55
Tema 5. Pruebas del SW: Técnicas y Estrategias
56
28
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
57
Tema 5. Pruebas del SW: Técnicas y Estrategias
29
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Objetivos del plan de pruebas
Suministrar estructura para la organización,
planificación y gestión del proyecto de prueba.
Alcanza un acuerdo sobre las tareas de prueba
Identifica las tareas.
Estructura.
Organiza.
Coordina.
Aumenta la responsabilidad personal.
Mide el estado del proyecto y mejora la responsabilidad
del proyecto.
59
Tema 5. Pruebas del SW: Técnicas y Estrategias
60
30
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Tipos de pruebas a cubrir en el plan de pruebas
Pruebas de caja negra:
Áreas de prueba más importantes en el plan:
− pruebas de aceptación (curarse en salud)
− flujo de control (flujo de control visible)
− flujo de datos y de integridad
− configuración/compatibilidad
− pruebas de stress
− interfaz de usuario
− regresión
− rendimiento
− defectos potenciales
− pruebas beta
− pruebas release
− utilidad (¿el programa satisfará las expectativas del
cliente?).
61
Tema 5. Pruebas del SW: Técnicas y Estrategias
62
31
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Estrategias para desarrollar documentos TstPln
Inicial.
Aunque la evolución es buena, debemos comenzar a
diseñar un plan (básico) sin experiencia.
Revisión completa de la documentación. Comenzar
comparando el comportamiento del programa contra la
documentación de usuario y la especificación si existe.
Listar superficialmente las funciones. Incluir lo que se
supone que el programa debe hacer y probarlo.
Analizar las entradas, límites, ignorando la mayoría de
interacciones. Probar los límites razonables donde se
introduzcan datos. Si el programa aguanta probar límites
más amplios.
En resumen, comenzar con los fundamentos, probar el
programa aunque no sea de una forma muy profunda y
añadir profundidad.
63
Tema 5. Pruebas del SW: Técnicas y Estrategias
64
32
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Documentación:
¿Quién usara esta documentación?
− Un documento es válido únicamente si el lector puede
entenderlo. Se deben adaptar a la sofisticación necesaria.
Dependiendo del destinatario del documento podemos
distinguir hasta 7 posibilidades:
− Notas personales
− Notas para otro miembro del equipo
− Notas para otro testeador experimentado
− Notas para ser usadas en la próxima release
− Scripts de prueba para testeadores inexpertos
− Notas para el gestor
− Seguimiento y auditoria legal
65
Tema 5. Pruebas del SW: Técnicas y Estrategias
Especificación
Especificaciónyy Especificación
Diseño Especificaciónyy
Diseñode
delas
lasTest
Test Diseño
Diseñode
delas
lasTest
Test
Especificación
Especificación
Especificación
Especificación
CasoEspecificación
Caso de Prueba
Especificación
de Prueba
Especificación
Especificaciónde
de Caso
Caso de
de Prueba
Prueba
Caso
Casode dePrueba
Prueba
Procedimiento
Procedimientode
dePruebas
Pruebas
Ejecución
Ejecución
66 Informes
33
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Tipos de documentos de prueba
Plan de prueba
Resumen del esfuerzo de prueba del producto:
documento único o en secciones
Secciones definidas por el estandar IEEE:
− Identificador del plan. Nombre o número.
− Introducción. Incluye referencias a documentos estandar,
planes del producto a alto nivel.
− Elementos de prueba. Un elemento de prueba es un
elemento de software (función, módulo, característica, etc)
que debe probarse.
− Características que se debe probar. Referencias
cruzadas a las especificaciones de diseño.
67
Tema 5. Pruebas del SW: Técnicas y Estrategias
68
34
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Tipos de documentos de prueba
70
35
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Tipos de documentos de prueba
Informe de transmisión de elementos de prueba: Acompaña
cualquier entrega para prueba. Nos cuenta qué es lo que nos están
dando.Incluye:
Identificador
Elementos transmitidos
Localización
Estado
Aprobación
Scripts de prueba (No IEEE).
Instrucciones generales.
Getting started.
Descripción paso por paso del procedimiento de cada prueba.
Casillas de marcado para cada paso y resultado.
Espacio abundante para describir el comportamiento que fuese
extraño o no entendido
71
Tema 5. Pruebas del SW: Técnicas y Estrategias
36
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Tipos de documentos de prueba
73
Tema 5. Pruebas del SW: Técnicas y Estrategias
74
37
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Listas
Listas de informes y pantallas de entradas de datos:
Informes que puede imprimir o visualizar el programa y de
pantallas (incluidos cuadros de diálogo) listas de variables
que se deben imprimir o que el usuario puede introducir.
Estas listas nos permiten probar cada uno de los elementos o
distribuir tareas.
Listas de variables de entrada y salida:
Se deben listar todas las variables que se impriman en
informes, que se muestren en pantalla o que se envíen a otro
computador.
Ejemplos:
− Aplicación para seguimiento de problemas: Numero de informe,
Nombre de programa, Release, Versión, Tipo de informe, etc.
− Si el programa lee de disco o base de datos, encontrar la
estructura (preguntarlo al gestor del proyecto) y hacer también una
lista con cada una de las variables que se leen.
75
Tema 5. Pruebas del SW: Técnicas y Estrategias
76
38
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Listas
Listas de características y funciones:
Lista de todas las funciones visibles por el usuario:
− comandos, opciones de menú, etc
Representa la lista de funciones de alto nivel.
En sucesivas revisiones se pueden listar las
subfunciones y subsubfunciones.
Es útil como una lista para el chequeo de las
características más importantes.
77
Tema 5. Pruebas del SW: Técnicas y Estrategias
39
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Listas
Lista de software compatible:
Programas con los que puede interactuar nuestro programa:
compatibilidad.
Expandir la lista a una tabla: áreas de compatibilidad (en
memoria, ficheros, mensajes, etc.).
Lista de sistemas operativos compatibles:
Se deben listar todos los sistemas, utilidades, interfaces y
drivers con los que va a ser compatible: tabla con las pruebas y
versiones.
Factura de materiales:
Lista de todo lo que se debe entregar al cliente: no olvidar
revisar ningún componente del producto.
Lista de documentos públicos:
Lista cualquier documento sobre el programa que puede ver
cualquiera fuera de la compañía (documentación, advertencias,
cartas, etc.). Sirve para comprobar la documentación antes de
distribuir el producto.
79
Tema 5. Pruebas del SW: Técnicas y Estrategias
80
40
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Tablas
Tabla de variables de entrada y variables de salida.
Tabla de Entrada/Salida
81
Tema 5. Pruebas del SW: Técnicas y Estrategias
82
41
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Tablas
83
Tema 5. Pruebas del SW: Técnicas y Estrategias
Tabla de bordes.
Clase de equivalencia: Un grupo de pruebas es una clase de
equivalencia si se cree que:
− Todas prueban el mismo concepto.
− Si una prueba captura un error, los demás probablemente también lo harán.
− Si una prueba no detecta ningún error, las demás probablemente tampoco
lo harán.
84
42
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Tablas
C am po C la s e d e C la s e d e e q u i v a le n c ia C a s o s e s p e c ia le s y
e q u iv a l e n c ia in v a lid a d e b o rd e
v a lid a
In fo r m e d e l 0 -9 9 9 9 <0 0
p r o b le m a >9999 9999
D u p lic a r c u a lq u ie r o tr o U n n ú m e ro d e s p u é s
in fo r m e de 9999
C u a lq u ie r n o - d íg ito -0 0 0 1
85
Tema 5. Pruebas del SW: Técnicas y Estrategias
43
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Esquemas
Borrador de la lista de funciones:
87
Tema 5. Pruebas del SW: Técnicas y Estrategias
88
44
Tema 5. Pruebas del SW: Técnicas y Estrategias
4. Documentación y diseño de las pruebas
Componentes del Plan Pruebas: Matrices
Una matriz es como una tabla pero:
La función de una matriz es coleccionar datos. Proporciona
una estructura para probar el efecto de combinar dos o más
variables, circunstancias, tipos de hardware o eventos. Las
filas y columnas representan condiciones de prueba.
Matrices de entrada/salida de disco:
Es un ejemplo clásico de uso. Suponiendo que un programa
tenga las opciones:
− Guardar, Guardar como e Imprimir a disco.
− Puede ocurrir que: el disco esté lleno, casi lleno, protegido contra
escritura, devuelve time-out, falla el suministro, se pulsa el teclado
mientras se lee o escribe, se mueve o pulsa el ratón.
− Utilizando una o varias matrices podríamos guiar las pruebas.
Disco de baja densidad
Operación Lleno Casi lleno Protegido Timeout Suminist. Teclado Ratón
Guardar
Guardar como
89 Imprimir en disco
Tema 5. Pruebas del SW: Técnicas y Estrategias
90
45
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
91
Tema 5. Pruebas del SW: Técnicas y Estrategias
92
46
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
93
Tema 5. Pruebas del SW: Técnicas y Estrategias
94
47
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
Modelos de desarrollo de software.
Cuando el proyecto se retrasa, las restricciones de la
metodología afectadas:
− Características: Requisitos & especificaciones
terminadosCaracterísticas codificadas. Opciones:
eliminarla o rediseñarla.
− Dinero: puede resultar fácil añadir programadores, puede
seguir documentos escritos.
− Fecha de entrega: postergarla para conseguir todo lo
planificado
− Fiabilidad: terminar las pruebas y entregar el producto en
fecha ante estabilidad “aceptable”
El modelo en cascada produce resultados muy malos si se
sobrepasa la planificación.
95
Tema 5. Pruebas del SW: Técnicas y Estrategias
96
48
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
Modelos de desarrollo de software.
Cuando el proyecto se retrasa, las restricciones de la
metodología afectadas:
− Características: fácil quitarlas una vez superada la fase mínima.
Todo el trabajo se refleja en el producto
− Dinero: se puede gastar dinero para añadir más características. El
diseño puede resultar un cuello de botella.
− Fecha de entrega: se dispone de flexibilidad para retrasar la
fecha o venderlo.
− Fiabilidad: es alta. El producto es estable antes de introducir
nuevas características.
Se puede estropear un proyecto evolutivo:
− Continuar generación de código y no solucionar problemas
− Pensando que no se necesita demasiada planificación inicial.
− Mala información de las características del producto para el
marketing
− No asignar recursos de prueba
97
Tema 5. Pruebas del SW: Técnicas y Estrategias
98
49
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
Modelos de desarrollo de software.
Por el contrario, algunas implicaciones del modelo
evolutivo:
Planificar plantilla para probar muy pronto. Comenzar a
realizar las pruebas de fiabilidad tan pronto como se
alcance el primer nivel.
Planificar oleadas de pruebas de usabilidad conforme el
proyecto crezca.
Planificar escribir el plan de prueba progresivamente.
Planificar hacer las pruebas más potentes tan pronto
como sea posible. El jefe de proyecto puede parar el
desarrollo en cualquier momento.
99
Tema 5. Pruebas del SW: Técnicas y Estrategias
100
50
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
Modelos de desarrollo de software.
Un ejemplo: RUP
Plan Pruebas
101
Tema 5. Pruebas del SW: Técnicas y Estrategias
102
51
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
Costes relacionados con la calidad.
Categorías de costes de calidad:
Prevención (5%-10%).
Evaluación (20%-25%).
Fallos internos (65%-75%). Gestión de errores
detectados durante el desarrollo y pruebas
Fallos externos. Gestión de errores detectados por los
clientes.
103
Tema 5. Pruebas del SW: Técnicas y Estrategias
104
52
Tema 5. Pruebas del SW: Técnicas y Estrategias
5. Planificación de las pruebas. Hitos y tareas.
Línea temporal del desarrollo
Diseño
Diseñodel
delproducto
producto
Fragmentos
Fragmentosde
decódigo:
código:1ª
1ªfuncionalidad
funcionalidad
Casi
CasiAlpha
Alpha
Software
SoftwareAlpha
Alpha
Pre-Beta
Pre-Beta
Beta
Beta
Interfaz
Interfazde
deusuario
usuariocongelada
congelada
Pre-final
Pre-final
Test
Testde
deIntegridad
IntegridadFinal
Final
Entrega
Entrega
105
Tema 5. Pruebas del SW: Técnicas y Estrategias
6. Depuración
Ejecutar
Ejecutar
Rdos.
Rdos.Test
Test
Depuración
Depuración
Síntomas
Síntomas
106
53
Tema 5. Pruebas del SW: Técnicas y Estrategias
6. Depuración
107
Tema 5. Pruebas del SW: Técnicas y Estrategias
6. Depuración
108
54
Tema 5. Pruebas del SW: Técnicas y Estrategias
6. Depuración
6. Depuración
55
Tema 5. Pruebas del SW: Técnicas y Estrategias
6. Depuración
111
Tema 5. Pruebas del SW: Técnicas y Estrategias
6. Depuración
Consejos prácticos
Localizar el error:
− Analizar la información y no utilizar un enfoque
aleatorio de búsqueda.
− Al llegar a un punto muerto, o pasar a otra cosa o
describir el problema a otra persona.
− Usar herramientas de depuración solo como recurso
complementario, no único.
− No experimentar cambiando el programa.
− Deben atacarse los errores individualmente.
− Debe fijarse la atención en los datos manejados en el
programa y no sólo en la lógica del proceso.
112
56
Tema 5. Pruebas del SW: Técnicas y Estrategias
6. Depuración
Consejos prácticos
Corregir el error:
− Donde hay un error suele haber más.
− Lo que debe corregirse el error, no enmascarar los
síntomas.
− La probabilidad de corregir un error no es total, deben
revisarse las correcciones.
− Es frecuente crear nuevos errores al corregir deprisa y
sin cautela.
− La corrección debe situarnos en la fase del ciclo de
vida al que afecte el error, generalmente la fase de
diseño.
113
57