Anda di halaman 1dari 24

Pruebas de software

Tcnicas de prueba del software Estrategias de prueba del software


Autor: Manuel Collado Fecha: Marzo 2003
PRUEBAS-1

Introduccin a las pruebas del software

Tcnicas de prueba del software

Contenido

Conceptos. Objetivos. Casos de prueba Pruebas de caja blanca Pruebas de caja negra

PRUEBAS-2

Introduccin a las pruebas del software

Pruebas: concepto y objetivos

Comprobacin del software


Demostracin (proof): manual o semiautomtica Inspeccin manual del cdigo Prueba o ensayo (testing): ejecutar y ver resultados Caso de prueba: ensayo individual Impracticable, demasiado costoso Imposible garantizar la ausencia de defectos

Imposibilidad de pruebas exhaustivas

Si se provocan fallos, seguro que hay defectos Si no aparecen fallos, puede que haya defectos, o no
PRUEBAS-3

Introduccin a las pruebas del software

Pruebas: concepto y objetivos

Objetivos de las pruebas


Encontrar defectos en el software Una prueba tiene xito si descubre un defecto Una prueba fracasa si hay defectos pero no los descubre Ver si cumple las especificaciones de diseo Ver si cumple los requisitos del anlisis
PRUEBAS-4

Pruebas de Verificacin

Pruebas de Validacin

Introduccin a las pruebas del software

Pruebas de caja blanca

Concepto y terminologa

Pruebas en que se conoce el cdigo a probar Caja blanca (clear box: caja clara o transparente) Se procura ejercitar cada elemento del cdigo Pruebas de cubrimiento Pruebas de condiciones Pruebas de bucles

Algunas clases de pruebas


PRUEBAS-5

Introduccin a las pruebas del software

Pruebas de cubrimiento
Ejecutar al menos una vez cada sentencia Se necesitan varios casos de prueba

Determinar posibles caminos independientes Cada condicin debe cumplirse en un caso y en otro no. En general, se necesitan tantos casos como condiciones, ms uno (nmero ciclomtico)

Puede ser imposible cubrir el 100%

Cdigo que nunca se ejecuta: condiciones imposibles Ejemplo: deteccin y notificacin de errores internos en un cdigo sin errores
PRUEBAS-6

Introduccin a las pruebas del software

Pruebas de condiciones
Cumplir o no cada parte de cada condicin Se necesitan varios casos de prueba

Determinar expresiones simples en las condiciones Una por cada operando lgico o comparacin Cada expresin simple debe cumplirse en un caso y en otro no, siendo decisiva en el resultado

Puede ser imposible cubrir el 100%

Expresiones simples no independientes

PRUEBAS-7

Introduccin a las pruebas del software

Pruebas de bucles
Conseguir nmeros de repeticiones especiales Bucles simples

Repetir cero, una y dos veces Repetir un nmero medio (tpico) de veces Repetir el mximo-1, mximo y mximo +1! Repetir un nmero medio (tpico) los bucles internos, el mnimo los externos, y variar las repeticiones del bucle intermedio ensayado. Ensayarlo con cada nivel de anidamiento
PRUEBAS-8

Bucles anidados

Introduccin a las pruebas del software

Pruebas de caja negra

Concepto y terminologa

Pruebas en que se conoce slo la interfaz Caja negra (black box: caja opaca) Se procura ejercitar cada elemento de la interfaz Cubrimiento invocar todas las funciones (100%) Clases de equivalencia de datos Pruebas de valores lmite

Algunas clases de pruebas


PRUEBAS-9

Introduccin a las pruebas del software

Pruebas de clases de equivalencia

Particiones de equivalencia

Los datos se clasifican segn las distinciones visibles en la interfaz del programa. Ejemplo: EsPrimo: Entero Booleano

Clase 1: primo 2 Clase 2: no_primo 2 Clase 3: valores singulares Clase 4: no definido

(2, 3, 5, 7, 11, ...) (4, 6, 8, 9, 10, ...) (0, 1) (-1, -2, ...)

Casos de ensayo con datos de cada clase


PRUEBAS-10

Introduccin a las pruebas del software

Pruebas de valores lmite


Complemento a las particiones de equivalencia Varios casos de prueba por cada particin

Valores tpicos, intermedios Valores primero y segundo del rango Valores penltimo y ltimo Valores vecinos fuera del rango (en otra particin)

Motivacin

Los programadores se equivocan con ms frecuencia al tratar los valores en la frontera (Ej: > en vez de )
PRUEBAS-11

Introduccin a las pruebas del software

Estrategias de prueba del software

Contenido

Pruebas de unidades Pruebas de integracin Pruebas de regresin Pruebas de validacin

PRUEBAS-12

Introduccin a las pruebas del software

Pruebas sin estrategia

Motivacin

Las pruebas son incmodas La pruebas son aburridas Estoy seguro de que lo he codificado bien Falla por todas partes Muy difcil diagnosticar las causas de los fallos Muy costoso de arreglar Resultado productos finales defectuosos
PRUEBAS-13

Probar todo junto, al final - Big-Bang


Introduccin a las pruebas del software

Actividades de prueba de software

Actividades de desarrollo
Doc. Requisitos

Anlisis P. validacin Diseo


Doc. Diseo

P. integracin Codificacin Integracin Mantenimiento


PRUEBAS-14

P. unidades

Cod. Mdulos

Cd. Completo

Introduccin a las pruebas del software

Pruebas de unidades

Se prueba cada mdulo


Programa de prueba

Mdulo en pruebas
Reales o simulados (stubs)

Otros mdulos

Otros mdulos

PRUEBAS-15

Introduccin a las pruebas del software

Pruebas de integracin

Integracin ascendente
Programa de prueba
Otros mdulos

Mdulo en pruebas
Reales, ya probados

Otros mdulos

Otros mdulos

PRUEBAS-16

Introduccin a las pruebas del software

Pruebas de integracin

Integracin descendente
Otros mdulos Reales, ya probados

Mdulo en pruebas
simulados (stubs)

Otros mdulos

Otros mdulos

PRUEBAS-17

Introduccin a las pruebas del software

Prueba unidades + integracin ascendente

Ejemplo
Dibujar Curva_C

Pluma

Papel
PRUEBAS-18

Introduccin a las pruebas del software

Prueba unidades + integracin ascendente

Paso 1

P_Papel

Papel
PRUEBAS-19

Introduccin a las pruebas del software

Prueba unidades + integracin ascendente

Paso 2

P_Pluma

P_Papel

Pluma

Papel
PRUEBAS-20

Introduccin a las pruebas del software

Prueba unidades + integracin ascendente

Paso 3
P_Curva_C
Curva_C P_Pluma

P_Papel

Pluma

Papel
PRUEBAS-21

Introduccin a las pruebas del software

Prueba unidades + integracin ascendente

Paso 4
Dibujar

P_Curva_C
P_Pluma

Curva_C

P_Papel

Pluma

Papel
PRUEBAS-22

Introduccin a las pruebas del software

Pruebas de regresin

Repetir las pruebas tras cada modificacin

Repetir slo pruebas de verificacin


Pruebas de unidades Pruebas de integracin

Conservar y actualizar los programas de prueba Usar herramientas de ejecucin automtica de las pruebas

PRUEBAS-23

Introduccin a las pruebas del software

Pruebas de validacin

Comprobar que se satisfacen los requisitos


Se usan la mismas tcnicas, pero con otro objetivo No hay programas de prueba, sino slo el cdigo final de la aplicacin Se prueba el programa completo Uno o varios casos de prueba por cada requisito o caso de uso especificado Se prueba tambin rendimiento, capacidad, etc. (y no slo resultados correctos) Pruebas alfa (desarrolladores) y beta (usuarios)
PRUEBAS-24

Anda mungkin juga menyukai