TRABAJO DE PRINCIPIOS

Anuncio
Universidad Nacional Experimental
De Los Llanos Occidentales
“Ezequiel Zamora”
UNELLEZ.
Bachilleres:
Leydy Herrera.
C.I 24.111.594.
Prof: José V Rojas.
Ing. En Informática.
Barinas, Julio del 2013.
PRUEBAS DEL SOFTWARE:
¿Que son Pruebas?
Es una actividad en la cual un sistema o uno de sus componentes se
ejecutan, en circunstancias previamente especificadas los resultados se
observan y registran y se realiza una evaluación de algún aspecto.
¿Qué es Verificación?
El proceso de evaluación de un sistema (o de uno de sus
componentes para determinar si los productos de una fase dada satisfacen
las condiciones impuestas al comienzo de dicha fase.
¿Qué es Validación?
Es el proceso de evaluación de un sistema o de uno de sus
componentes durante o al final del proceso de desarrollo para determinar si
satisface los requisitos marcados por el usuario.
¿Qué es un Caso de prueba?
Es un conjunto de entradas, condiciones de ejecución y resultados
esperados desarrollados para un objetivo particular.
¿Qué es un Defecto?
Es un defecto en el software como por ejemplo, un proceso
una
definición de datos o un paso de procesamiento incorrectos en un programa.
¿Qué es un Fallo?
Es la incapacidad de un sistema o de alguno de sus componentes
para realizar las funciones requeridas dentro de los requisitos de rendimiento
especificados.
¿Qué es un Error?
Tiene varias acepciones:
La diferencia entre un valor calculado, observado o medio y el valor
verdadero, especificado o teóricamente correcto.
¿Qué es una Prueba del software?
Es la ejecución de un programa con la intención de descubrir un error
técnica experimental para la búsqueda de errores en los programas
Relación entre Efecto Error Y Fallo:
Objetivos de las Pruebas:
La prueba es el proceso de ejecución de un programa con la intención
de descubrir un error.
Un buen caso de prueba es aquel que tiene una alta probabilidad de
mostrar un error no descubierto hasta entonces.
Una prueba tiene éxito si descubre un error no detectado hasta
entonces.
Principios de las Pruebas:

A todas las pruebas se les debería poder hacer un seguimiento hasta
los requisitos del cliente.

Las pruebas deberían planificarse mucho antes de que empiecen.

Las pruebas deberían empezar por “lo pequeño” y progresar hacia “lo
grande”.

No son posibles las pruebas exhaustivas.

Para ser más eficaces (pruebas con la más alta probabilidad de
encontrar errores), las pruebas deberían ser realizadas por un equipo
independiente.

Se debe inspeccionar a conciencia el resultado de cada prueba para,
así, poder descubrir posibles síntomas de defectos.

Cada caso de prueba debe definir el resultado de salida esperado.

Al generar casos de prueba, se deben incluir tanto datos de entrada
válidos y esperados como no válidos e inesperados.

Las pruebas deben centrarse en dos objetivos (es habitual olvidar el
segundo):

Probar si el software no hace lo que debe hacer

Probar si el software hace lo que no debe hacer, es decir si provoca
efectos secundarios

Se deben evitar los casos desechables.

No deben hacerse planes de prueba suponiendo que, prácticamente,
no hay defectos en los programas, y dedicando pocos recursos a las
pruebas.

La experiencia indica que donde hay un defecto hay otros.

Las pruebas son una tarea creativa como el desarrollo de software.
Facilidad de Pruebas:
 Operatividad.
 Observabilidad.
 Controlabilidad.
 Capacidad de descomposición.
 Simplicidad.
 Estabilidad.
 Facilidad de comprensión.
Proceso de Prueba:
 La depuración (localización y corrección de defectos).
 El análisis de la estadística de errores.
Ciclo Completo de las Pruebas:
Enfoque de Diseño de Casos de Prueba:
Enfoque estructural o de caja blanca.
Enfoque funcional o de caja negra.
Enfoque Aleatorio.
Pruebas de Caja Blanca:

Garanticen que se ejercita por lo menos una vez todos los caminos
independientes de cada módulo.

Ejerciten todas las decisiones lógicas en sus vertientes verdadera y
falsa.

Ejecuten todos los bucles en sus límites y con sus límites
operacionales.

Ejerciten las estructuras internas de datos para asegurar su validez.
Criterios de Cobertura Lógica:
 Cobertura de Sentencias.
 Cobertura de decisiones.
 Cobertura de Condiciones.
 Criterios de decisión/Condición.
 Criterio de Condición Múltiple.
 Criterio de Cobertura de Caminos (impracticable)
Variantes de Prueba de Caja Blanca:
a) Prueba del Camino Básico.
b) Prueba de Condición.
c) Prueba de Flujo de Datos.
d) Prueba de Bucles.
Prueba de Condición:
Ventajas:
•
La cobertura de la prueba de una condición es sencilla.
La cobertura de la prueba de las condiciones de un programa da una
orientación para generar pruebas adicionales del programa.
Estrategias de prueba de Condiciones:
 Prueba de Ramificaciones.
 Prueba de Dominio.
E1<operador-relacional>E2
Se necesitan 2n (n>0) pruebas como máximo
Para encontrar errores.
Prueba de Flujo de Datos:
Esta técnica selecciona caminos de un programa de acuerdo a las
definiciones y uso de las variables.
El enfoque de prueba de flujo de datos es efectivo para la protección
contra errores.
Prueba de bucles:
Tipos de pruebas:
 Bucles simples.
 Bucles Anidados.
 Bucles Concatenados.
 Bucles no Estructurados.
Pruebas de Caja Negra:
Intenta encontrar errores de las siguientes categorías:
Funciones Incorrectas o Ausentes.
Errores de Interfaz.
Errores en estructuras de datos o acceso a bases de datos externas.
Errores de rendimiento.
Errores de inicialización y terminación.
Variantes de pruebas de caja negra:
a) Métodos de prueba basados en grafos.
b) Partición Equivalente.
c) Análisis de valores límite.
d) Prueba de Comparación.
e) Conjetura de Errores.
Prueba de Comparación:
Se desarrollan versiones independientes de una aplicación con las
mismas especificaciones.
Probar todas las versiones con los mismos datos de prueba.
Luego se ejecutan las versiones en paralelo y se hace una
comparación en tiempo real de los resultados.
Conjetura de Errores:

Enumerar una lista de equivocaciones que pueden cometer los
desarrolladores.

Generar casos de prueba en base a dicha lista.

La generación de casos se obtiene en base a la intuición o la
experiencia.
Pruebas Aleatorias:
Se simula los posibles datos de entrada en la secuencia y frecuencia
que pueden aparecer en la práctica.
Si el proceso de generación se ha realizado correctamente, se crearán
eventualmente todas las posibles entradas del programa en todas las
posibles combinaciones y permutaciones.
Baja probabilidad de encontrar errores.
Recomendaciones para unas Pruebas Exitosas:

Cada caso de prueba debe definir el resultado de salida esperado que
se comparará con el realmente obtenido.

El programador debe evitar probar sus propios programas, ya que
desea (consciente o inconscientemente) demostrar que funcionan sin
problemas.

Además, es normal que las situaciones que olvidó considerar al crear
el programa queden de nuevo olvidados al crear los casos de prueba.

Se debe inspeccionar a conciencia el resultado de cada prueba, así
poder descubrir posibles síntomas de defectos.

Al generar casos de prueba, se deben incluir tanto datos de entrada
válidos y esperados como no válidos e inesperados.
Las pruebas deben centrarse en dos objetivos (es habitual olvidar el
segundo):

Se deben evitar los casos desechables, es decir, los no documentados
ni diseñados con cuidado.

No deben hacerse planes de prueba suponiendo que, prácticamente,
no hay defectos en los programas y, por lo tanto, dedicando pocos recursos
a las pruebas pero siempre hay defectos.

La experiencia parece indicar que donde hay un defecto hay otros, es
decir, la probabilidad de descubrir nuevos defectos en una parte del software
es proporcional al número de defectos ya descubierto.

Las pruebas son una tarea tanto o más creativa que el desarrollo de
software. Siempre se han considerado las pruebas como una tarea
destructiva y rutinaria.

Es interesante planificar y diseñar las pruebas para poder detectar el
máximo número y variedad de defectos con el mínimo consumo de tiempo y
esfuerzo.
Referencias Bibliográficas:
www.sistemas.edu.bo/.../tema6%20Pruebas%20del%20software.ppt
http://alarcos.inf-cr.uclm.es/doc/ISOFTWAREI/Tema09.pdf
http://lsi.ugr.es/~ig1/docis/pruso.pdf
http://materias.fi.uba.ar/7548/PruebasSoftware.pdf
Descargar