Upload
wood
View
53
Download
1
Embed Size (px)
DESCRIPTION
Pruebas de software. Técnicas de prueba del software Estrategias de prueba del software. Autor: Manuel ColladoFecha: Marzo 2003 Revisado: Marzo 2005. Técnicas de prueba del software. Contenido Conceptos. Objetivos. Casos de prueba Pruebas de caja blanca Pruebas de caja negra. - PowerPoint PPT Presentation
Citation preview
© 2003-2005 Manuel Collado
Pruebas-1
Pruebas de software
Técnicas de prueba del software
Estrategias de prueba del software
Autor: Manuel Collado Fecha: Marzo 2003Revisado: Marzo 2005
© 2003-2005 Manuel Collado
Pruebas-2
Técnicas de prueba del software
Contenido Conceptos. Objetivos. Casos de prueba Pruebas de caja blanca Pruebas de caja negra
© 2003-2005 Manuel Collado
Pruebas-3
Pruebas: concepto y objetivos Comprobación del software
Demostración (proof): manual o semiautomática Inspección manual del código Prueba o ensayo (testing): ejecutar y ver resultados Caso de prueba: ensayo individual
Imposibilidad de pruebas exhaustivas Impracticable, demasiado costoso Imposible garantizar la ausencia de defectos
Si se provocan fallos, seguro que hay defectosSi no aparecen fallos, puede que haya defectos, o no
© 2003-2005 Manuel Collado
Pruebas-4
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 Pruebas de Verificación
Ver si cumple las especificaciones de diseño Pruebas de Validación
Ver si cumple los requisitos del análisis
© 2003-2005 Manuel Collado
Pruebas-5
Pruebas de “caja blanca” Concepto y terminología
Pruebas en que se conoce el código a probar Caja blanca (clear box: caja clara o transparente) Se procura ejercitar cada elemento del código
Algunas clases de pruebas Pruebas de cubrimiento Pruebas de condiciones Pruebas de bucles
© 2003-2005 Manuel Collado
Pruebas-6
Pruebas de cubrimiento Ejecutar al menos una vez cada sentencia Se necesitan varios casos de prueba
Determinar posibles “caminos” independientes Cada condición debe cumplirse en un caso y en otro
no. En general, se necesitan tantos casos como condiciones, más uno (número ciclomático)
Puede ser imposible cubrir el 100% Código que nunca se ejecuta: condiciones imposibles Ejemplo: detección y notificación de errores internos
en un código sin errores
© 2003-2005 Manuel Collado
Pruebas-7
Pruebas de condiciones Cumplir o no cada parte de cada condición Se necesitan varios casos de prueba
Determinar expresiones simples en las condiciones Una por cada operando lógico o comparación Cada expresión 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
© 2003-2005 Manuel Collado
Pruebas-8
Pruebas de bucles Conseguir números de repeticiones especiales Bucles simples
Repetir cero, una y dos veces Repetir un número medio (típico) de veces Repetir el máximo-1, máximo y ¡máximo +1!
Bucles anidados Repetir un número medio (típico) los bucles internos,
el mínimo los externos, y variar las repeticiones del bucle intermedio ensayado.
Ensayarlo con cada nivel de anidamiento
© 2003-2005 Manuel Collado
Pruebas-9
Pruebas de “caja negra” Concepto y terminología
Pruebas en que se conoce sólo la interfaz Caja negra (black box: caja opaca) Se procura ejercitar cada elemento de la interfaz
Algunas clases de pruebas Cubrimiento invocar todas las funciones (100%) Clases de equivalencia de datos Pruebas de valores límite
© 2003-2005 Manuel Collado
Pruebas-10
Pruebas de clases de equivalencia Particiones de equivalencia
Los datos se clasifican según las distinciones visibles en la interfaz del programa.
Ejemplo: EsPrimo: Entero BooleanoClase 1: primo 2 (2, 3, 5, 7, 11, ...)Clase 2: no_primo 2 (4, 6, 8, 9, 10, ...)Clase 3: valores singulares (0, 1)Clase 4: no definido (-1, -2, ...)
Casos de ensayo con datos de cada clase
© 2003-2005 Manuel Collado
Pruebas-11
Pruebas de valores límite Complemento a las particiones de equivalencia Varios casos de prueba por cada partición
Valores típicos, intermedios Valores primero y segundo del rango Valores penúltimo y último Valores vecinos fuera del rango (en otra partición)
Motivación Los programadores se equivocan con más frecuencia
al tratar los valores en la frontera (Ej: > en vez de )
© 2003-2005 Manuel Collado
Pruebas-12
Estrategias de prueba del software
Contenido Pruebas de unidades Pruebas de integración Pruebas de regresión Pruebas de validación
© 2003-2005 Manuel Collado
Pruebas-13
Pruebas sin estrategia Motivación
Las pruebas son incómodas La pruebas son aburridas “Estoy seguro de que lo he codificado bien”
Probar todo junto, al final - Big-Bang Falla por todas partes Muy difícil diagnosticar las causas de los fallos Muy costoso de arreglar Resultado productos finales defectuosos
© 2003-2005 Manuel Collado
Pruebas-14
Actividades de prueba de software Actividades de desarrollo
Análisis
Diseño
Codificación
Integración
Mantenimiento
P. unidadesDoc. Diseño
Cod. Módulos
P. integración
Cód. Completo
P. validación
Doc. Requisitos
© 2003-2005 Manuel Collado
Pruebas-15
Pruebas de unidades Se prueba cada módulo, por separado
Módulo en pruebas
Programa de prueba
Otros módulos
Otros módulos
Reales osimulados
(stubs)
© 2003-2005 Manuel Collado
Pruebas-16
Pruebas de integración Integración ascendente
Módulo en pruebas
Otros módulos
Otros módulos
Reales,ya probados
Otros módulos
Programa de prueba
© 2003-2005 Manuel Collado
Pruebas-17
Pruebas de integración Integración descendente
Módulo en pruebas
Otros módulos
Otros módulos
Reales,ya probados
Otros módulos
simulados(stubs)
© 2003-2005 Manuel Collado
Pruebas-18
Prueba unidades + integración ascendente
Dibujar
Curva_C
Pluma
Papel
Ejemplo
© 2003-2005 Manuel Collado
Pruebas-19
Prueba unidades + integración ascendente
Papel
P_Papel
Paso 1
© 2003-2005 Manuel Collado
Pruebas-20
Prueba unidades + integración ascendente
Pluma
Papel
P_Papel
P_Pluma
Paso 2
© 2003-2005 Manuel Collado
Pruebas-21
Prueba unidades + integración ascendente
Curva_C
Pluma
Papel
P_Papel
P_Pluma
P_Curva_C
Paso 3
© 2003-2005 Manuel Collado
Pruebas-22
Prueba unidades + integración ascendente
Dibujar
Curva_C
Pluma
Papel
P_Papel
P_Pluma
P_Curva_C
Paso 4
© 2003-2005 Manuel Collado
Pruebas-23
Pruebas de regresión Repetir las pruebas tras cada modificación
Repetir sólo pruebas de verificaciónPruebas de unidadesPruebas de integración
Conservar y actualizar los programas de prueba Usar herramientas de ejecución automática de las
pruebas
© 2003-2005 Manuel Collado
Pruebas-24
Pruebas de validación Comprobar que se satisfacen los requisitos
Se usan la mismas técnicas, pero con otro objetivo No hay programas de prueba, sino sólo el código
final de la aplicación Se prueba el programa completo Uno o varios casos de prueba por cada requisito o
caso de uso especificado Se prueba también rendimiento, capacidad, etc. (y no
sólo resultados correctos) Pruebas alfa (desarrolladores) y beta (usuarios)