Pruebas de Software
-
Upload
ivan-sanchez-vera -
Category
Technology
-
view
4.198 -
download
5
description
Transcript of Pruebas de Software
PRUEBAS-1
Pruebas de software
Técnicas de prueba del software
Estrategias de prueba del software
Autor: Manuel Collado Fecha: Marzo 2003
PRUEBAS-2
Introducción a las pruebas del software
Técnicas de prueba del software
Contenido Conceptos. Objetivos. Casos de prueba Pruebas de caja blanca Pruebas de caja negra
PRUEBAS-3
Introducción a las pruebas del software
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
PRUEBAS-4
Introducción 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 Pruebas de Verificación
Ver si cumple las especificaciones de diseño Pruebas de Validación
Ver si cumple los requisitos del análisis
PRUEBAS-5
Introducción a las pruebas del software
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
PRUEBAS-6
Introducción 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 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
PRUEBAS-7
Introducción a las pruebas del software
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
PRUEBAS-8
Introducción a las pruebas del software
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
PRUEBAS-9
Introducción a las pruebas del software
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
PRUEBAS-10
Introducción a las pruebas del software
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
PRUEBAS-11
Introducción a las pruebas del software
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 )
PRUEBAS-12
Introducción a las pruebas del software
Estrategias de prueba del software
Contenido Pruebas de unidades Pruebas de integración Pruebas de regresión Pruebas de validación
PRUEBAS-13
Introducción a las pruebas del software
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
PRUEBAS-14
Introducción a las pruebas del software
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
PRUEBAS-15
Introducción a las pruebas del software
Pruebas de unidades Se prueba cada módulo
Módulo en pruebas
Programa de prueba
Otros módulos
Otros módulos
Reales osimulados
(stubs)
PRUEBAS-16
Introducción a las pruebas del software
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
PRUEBAS-17
Introducción a las pruebas del software
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)
PRUEBAS-18
Introducción a las pruebas del software
Prueba unidades + integración ascendente
Dibujar
Curva_C
Pluma
Papel
Ejemplo
PRUEBAS-19
Introducción a las pruebas del software
Prueba unidades + integración ascendente
Papel
P_Papel
Paso 1
PRUEBAS-20
Introducción a las pruebas del software
Prueba unidades + integración ascendente
Pluma
Papel
P_Papel
P_Pluma
Paso 2
PRUEBAS-21
Introducción a las pruebas del software
Prueba unidades + integración ascendente
Curva_C
Pluma
Papel
P_Papel
P_Pluma
P_Curva_C
Paso 3
PRUEBAS-22
Introducción a las pruebas del software
Prueba unidades + integración ascendente
Dibujar
Curva_C
Pluma
Papel
P_Papel
P_Pluma
P_Curva_C
Paso 4
PRUEBAS-23
Introducción a las pruebas del software
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
PRUEBAS-24
Introducción a las pruebas del software
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)