Contenidos

 Introducción
 Pruebas de Caja Negra
 Partición Equivalente
 Análisis de Valores Límite
 Pruebas de Caja Blanca
 Prueba del Camino Básico
 Pruebas de Estructuras de Control
 Herramientas para Pruebas

.

.

Introducción  Pruebas: factor crítico para garantizar la calidad del software  Una prueba conlleva la intención de descubrir algún error  Un caso de prueba es bueno cuando su ejecución conlleva una alta probabilidad de encontrar un error  El éxito de la prueba se mide en función de la capacidad de detectar un error que estaba oculto .

. Introducción Configuración del Software Resultados de la prueba Evaluación Errores Prueba Datos de tasa de error Configuración de la Prueba Depuración Correciones Resultados esperados Modelo de Fiabilidad Predicción Fiabilidad ...

Introducción  El diseño de casos de prueba para la verificación del software puede significar un esfuerzo considerable (cerca del 40% del tiempo total de desarrollo)  Para Pruebas Unitarias existen fundamentalmente dos enfoques:  Pruebas de Caja Blanca (o Pruebas Estructurales)  Pruebas de Caja Negra (o Pruebas Funcionales)  Combinar ambos enfoques permite lograr mayor fiabilidad ....

Introducción  Conceptos  Error: acción humana que produce una falta  Falta: algo que está mal en un producto (modelo. etc. documento.)  Fallo: manifestación de una falta  Defecto: error.. falta o fallo  Verificación y Validación  Verificación: ¿estamos construyendo el producto correctamente?  Validación: ¿estamos construyendo el producto correcto? .. código..

Pruebas de Caja Negra  Las pruebas de caja negra se centran en los requisitos funcionales del software  La prueba de la caja negra intenta encontrar errores de los siguientes tipos:  Funciones incorrectas o inexistentes  Errores relativos a las interfaces  Errores en estructuras de datos o en accesos a bases de datos externas  Errores debidos al rendimiento  Errores de inicialización o terminación .

un rango de valores.Pruebas de Caja Negra Partición Equivalente  La partición equivalente es un método que divide el campo de entrada de un programa en clases de datos  Una condición de entrada es un valor numérico específico. un miembro de un conjunto de valores o lógica  Una clase de equivalencia representa un conjunto de estados válidos y no válidos para una condición de entrada  La prueba de partición equivalente se basa en evaluar las clases de equivalencia para una condición de entrada .

Pruebas de Caja Negra Partición Equivalente Paso 1: Identificar Clases de Equivalencia  Se examina cada condición de entrada y se divide en dos o más grupos.  Se identifican dos tipos de clases:  Clases de equivalencia válidas  Clases de equivalencia no válidas Condición de entrada Clases de Equivalencia Válidas Clases de Equivalencia No Válidas .

se define una clase de equivalencia válida y otra no válida  Lógica. se define una clase de equivalencia válida y dos no válidas  Valor específico..Pruebas de Caja Negra . se define una clase válida y otra no válida .. Partición Equivalente Paso 1: Identificar Clases de Equivalencia  Si la condición de entrada es un:  Rango. se define una clase de equivalencia válida y dos no válidas  Miembro de conjunto.

Pruebas de Caja Negra … Partición Equivalente Paso 1: Identificar Clases de Equivalencia  Asignar un número único a cada clase de equivalencia  Escribir casos de prueba que cubran tantas clases válidas no incorporadas como sea posible hasta que se cubran todas las clases de equivalencia válidas  Escribir casos de prueba que cubran una sola clase no válida no incorporada hasta que se cubran todas las clases de equivalencia no válidas. .

En lugar de realizar la prueba con cualquier elemento de la partición equivalente.Pruebas de Caja Negra Análisis de Valores Límite  La técnica de Análisis de Valores Límites selecciona casos de prueba que ejerciten los valores límite  Complementa la prueba de partición equivalente. se escogen los valores en los bordes de la clase  Se derivan tanto casos de prueba a partir de las condiciones de entrada como con las de salida .

el usuario recibirá los dos documentos . Puede estar en blanco o ser una de las dos cadenas siguientes: “Talonario” “Movimientos” En el primer caso el usuario recibirá un talonario de cheques. Valor alfanumérico de cinco posiciones. mientras que en el segundo recibirá los movimientos del mes en curso.Pruebas de Caja Negra Ejemplo  Un usuario puede conectarse al banco por Internet y realizar una serie de operaciones bancarias. el primero de los tiene que ser mayor que 1  Código de sucursal. Si este código está en blanco. En este último caso. se requiere la siguiente entrada:  Código del banco. El primero de ellos mayor de 0  Número de cuenta. Un número de cuatro dígitos. Una vez accedido al banco con las consiguientes medidas de seguridad (clave de acceso y demás). En blanco o número de tres dígitos. Número de cinco dígitos  Clave personal. Este valor se introducirá según la orden que se desee realizar  Orden.

Condición de Entrada Tipo Clase Equivalencia Válida Clase Equivalencia No Válida Código banco Lógica (puede estar 1: En blanco o no) Si está es 2: 100<= Código banco <= 999 Rango 3: Un valor no numérico 4: Código banco < 100 5: Código banco > 999 Código sucursal Rango 6: 1000 <= Código sucursal <= 9999 7: Código sucursal < 1000 8: Código sucursal >= 9999 Nº Cuenta Valor 9: Cualquier número de cinco dígitos 10: Número de más de cinco dígitos 11: Número de menos de cinco dígitos Clave Valor 12: Cualquier cadena de caracteres alfanuméricos de 5 posiciones 13: Cadena de menos de cinco posiciones 14: Cadena de más de cinco posiciones Orden Conjunto. con comportamiento distinto 15: “” 16: “Talonario” 17: “Movimientos” 18: Cadena distinta de blanco y de las válidas .

Pruebas de Caja Negra … Ejemplo a) Derivar casos de prueba para el ejemplo b) Complementar con casos de prueba según análisis de valores límite Datos de Prueba Número Clases de Equivalencia Propósito del Caso Condición de Entrada1 Condición de Entrada2 … Condición de Entradan .

verdadera y falsa  Ejecutar todos los bucles en sus límites operacionales .Pruebas de Caja Blanca  La prueba de la caja blanca usa la estructura de control del diseño procedural para derivar los casos de prueba  Idea: confeccionar casos de prueba que garanticen que se verifican todos los caminos independientes  Verificaciones para cada camino independiente:  Probar sus dos facetas desde el punto de vista lógico. es decir.

. Pruebas de Caja Blanca Observaciones:  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  “Los errores se esconden en los rincones y se aglomeran en los límites” (Beizer) .

.. Pruebas de Caja Blanca Prueba del Camino Básico  Propuesta por Tom McCabe (1976)  La idea es derivar casos de prueba a partir de un conjunto dado de caminos independientes  Camino independiente es aquel que introduce por lo menos una sentencia de procesamiento (o valor de condición) que no estaba considerada  Para obtener el conjunto un conjunto de caminos independientes se construirá el Grafo de Flujo asociado y se calculará su Complejidad Ciclomática ..

CASE then if opción2 else While ..Grafo de Flujo Secuencia end if no opción1 no opción2 no opciónN . opciónN opción1 END CASE ....Pruebas de Caja Blanca Prueba del Camino Básico .

Grafo de Flujo Aristas Nodos Región .Pruebas de Caja Blanca Prueba del Camino Básico ....

N + 2.Complejidad Ciclomática  Complejidad ciclomática de un grafo de flujo V(G) establece el número de caminos independientes  Puede calcularse de tres formas alternativas:  El número de regiones del grafo de flujo  V(G) = A .Pruebas de Caja Blanca Prueba del Camino Básico . donde P es el número de nodos predicado . donde A es el número de aristas y N es el número de nodos  V(G) = P + 1.

3  El grafo de la figura tiene 4. 55 66 77 cuatro regiones. Complejidad Ciclomática 11 V(G) = 4 2.Pruebas de Caja Blanca Prueba del Camino Básico .9 nodos + 2 88 =4 99 10 10  3 nodos predicado + 1 = 4 11 11 . 4.  11 aristas ....

Pruebas de Caja Blanca Prueba del Camino Básico .Conjunto Básico Un conjunto de caminos independientes Camino 1: 1-11 Camino 2: 1-2-3-4-5-10-1-11 Camino 3: 1-2-3-6-8-9-10-1-11 Camino 4: 1-2-3-6-7-9-10-1-11 1 2. 5 El camino 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 No se considera un camino independiente. 3 6 7 4. ya que es simplemente una combinación de caminos ya especificados 8 9 10 11 Los cuatro caminos anteriores constituyen un conjunto básico para el grafo .

Pruebas de Caja Blanca Prueba del camino básico . Conjunto Básico  Tratamiento de Condiciones Compuestas Nodos Predicado a False b  Ejemplo : IF a OR b THEN procedimiento x ELSE procedimiento y ENDIF True False y x True x ....

A partir del diseño o del código fuente.Derivación de casos de prueba  Pasos para realizar las pruebas: 1. dibujar el grafo de flujo asociado 2. Se preparan los casos de prueba que obliguen a la ejecución de cada camino del conjunto básico . Se determina un conjunto básico de caminos independientes 4.Pruebas de Caja Blanca Prueba del camino básico . Se calcula la complejidad ciclomática del grafo 3.

) VAR resultado : real. resultado).. y : real. 3 resultado:=0. IF (x < 0 OR y < 0) 2 THEN WRITELN( “x e y deben ser positivos”). 4 ELSE resultado := (x + y)/2 WRITELN( “La media es: “.. Derivación de casos de prueba Ejemplo: 1 5 6 PROCEDURE imprime_media(VAR x.Pruebas de caja blanca Prueba del camino básico .. ENDIF END imprime_media .

. Por lo tanto.. Derivación de casos de prueba 1 V(G) = 2+1 = 3.Pruebas de Caja Blanca Prueba del camino básico .. x<0 2 True False y<0 4 3 True False 5 4 Por ejemplo: Camino 1: 1-2-3-5-6 Camino 2: 1-2-4-6 Camino 3: 1-2-3-4-6 Casos de prueba para cada camino: Camino 1: Escoger algún x e y tales que se cumpla x >= 0 AND y >= 0 Camino 2: Escoger algún x tal que se cumpla x < 0 6 Camino 3: Escoger algún x e y tales que se cumpla x >= 0 AND y < 0 . hay que determinar tres caminos independientes.

Pruebas de Caja Blanca Otras Pruebas de Caja Blanca – Prueba de Condiciones Prueba de condiciones. Tipos de errores que pueden aparecer en una condición:  Existe un error en un operador lógico  Existe un error en un paréntesis lógico  Existe un error en un operador relacional  Existe un error en una expresión aritmética .

Pruebas de Caja Blanca Otras Pruebas de Caja Blanca – Prueba de Bucles Bucles anidados Bucles simples Bucles concatenados Bucles no estructurados .

Pruebas de Caja Blanca Otras Pruebas de Caja Blanca – . Prueba de Bucles  Pruebas para Bucles simples (n es el número máximo de iteraciones permitidos por el bucle)  Pasar por alto totalmente el bucle  Pasar una sola vez por el bucle  Pasar dos veces por el bucle  Hacer m pasos por el bucle con m < n  Hacer n-1.. n y n + 1 pasos por el bucle ..

.. Prueba de Bucles  Pruebas para Bucles Anidados  Comenzar en el bucle más interior estableciendo los demás bucles en sus valores mínimos  Realizar las pruebas de bucle simple para el más interior manteniendo los demás en sus valores mínimos  Avanzar hacia fuera confeccionando pruebas para el siguiente bucle manteniendo todos los externos en los valores mínimos y los demás bucles anidados en sus valores típicos  Continuar el proceso hasta haber comprobado todos los bucles .Pruebas de Caja Blanca Otras Pruebas de Caja Blanca – .

En caso de ser dependientes se evaluarán como bucles anidados  Pruebas para Bucles no estructurados  Siempre que se usen los mecanismos que aporta la programación estructurada... Prueba de Bucles  Pruebas para Bucles concatenados  Siempre que los bucles concatenados sean independientes se puede aplicar lo relativo a bucles simples/anidados.Pruebas de Caja Blanca Otras Pruebas de Caja Blanca – . este tipo de bucles no estarán presentes .

com/resources.aptest.Herramientas para Pruebas  Tipos de Herramientas para Pruebas  Record/Playback  Analizadores de Código  Analizadores de Cobertura (coverage analyzers)  Analizadores de Memoria  Herramientas de Carga/Desempeño  Herramientas para probar sitios Web  Otras – para administración de pruebas.html . documentación de errores y control de configuración  Links http://www.