Sei sulla pagina 1di 23

EA - 19

Temario
• Errores, defecto y fallas.
• Objetivos y definición de V&V
• Ejemplo
• Tipos de defectos
• Clasificación de defectos
• Pruebas
Errores, Faltas y Fallas

un defecto
Fallas del software
• ¿El software falló?
– No hace lo requerido (o hace algo que no debería)
• Razones:
– Las especificaciones no estipulan exactamente lo que el
cliente precisa o quiere (reqs. faltantes o incorrectos)
– Requerimiento no se puede implementar
– Defectos en el diseño
– Defectos en el código

La idea es detectar y corregir estos defectos antes de


liberar el producto
Objetivos de V & V
• Descubrir defectos (para corregirlos)
– Provocar fallas (una forma de detectar defectos)
– Revisar los productos (otra forma de detectar
defectos)

• Evaluar la calidad de los productos


– El probar o revisar el software da una idea de la
calidad del mismo.
Identificación y corrección de
defectos
• Identificación de defectos
– Es el proceso de determinar que defecto o defectos
causaron la falla

• Corrección de defectos
– Es el proceso de cambiar el sistema para remover los
defectos
Aclaremos …

• Verificación:
“¿Estamos construyendo bien el producto?".
– El software debe estar conforme a su especificación
(requerimientos funcionales y no funcionales).
• Validación:
“¿Lo que estamos construyendo es realmente lo
que el cliente quiere?".
– El software debe hacer lo que el usuario realmente
necesita.

Sommerville
Norma ISO 9001
• 7.3. Diseño y desarrollo
• 7.3.1. Planificación del diseño y desarrollo,
• 7.3.2. Elementos de entrada para el diseño y
desarrollo,
• 7.3.3. Resultados del diseño y desarrollo,
• 7.3.4. Revisión del diseño y desarrollo,
• 7.3.5. Verificación del diseño y desarrollo,
• 7.3.6. Validación del diseño y desarrollo; y
• 7.3.7. Control de los cambios del diseño y desarrollo
Aclaración …
• Si, exceptuamos la validación de procesos, en la
Norma sólo se han definido requisitos de validación
en el diseño de productos, no en su fabricación.
Esto es lógico, porque todo producto pasa por una
etapa previa de diseño. Una vez realizado un
prototipo, y hayamos realizado una validación del
mismo (probamos que funciona), procederemos a
diseñar un proceso de fabricación que haga réplicas
exactas de los componentes del prototipo. Entonces
no necesitaremos validarlo porque sabremos que, si
todas las piezas cumplen las especificaciones (y
están bien ensambladas), el conjunto funcionará!.
El proceso de V & V
• V & V debe ser aplicado en cada etapa
del proceso del software.

• Tiene dos objetivos principales:


–El descubrimiento de los defectos en un
sistema (provocan fallas);
–La evaluación de si el sistema es útil y
utilizable en una situación operacional.
Ejemplo
• El programa lee tres números enteros, los que son
interpretados como representaciones de las
longitudes de los lados de un triángulo. El programa
escribe un mensaje que informa si el triángulo es
escaleno, isósceles o equilátero
• Quiero detectar defectos probando (testeando) el
programa
• Posibles casos a probar:
– lado1 = 0, lado2 = 1, lado3 = 0 Resultado = error
– lado1 = 2, lado2 = 2, lado3 = 3 Resultado= isósceles
•Estos son Casos de Prueba
Ejemplo …
• Comparo el resultado esperado con el obtenido
– Si son distintos probablemente haya fallado el programa

• Intuitivamente, otros casos sería bueno probar:


– lado1 = 2, lado2 = 3, lado3 = 4 Resultado= escaleno
– lado1 = 2, lado2 = 2, lado3 = 2 Resultado= equilátero

• ¿Porqué estos casos?


– Al menos se probó un caso para cada respuesta posible
del programa (error, escaleno, isósceles, equilátero)
Ejemplo …
• Otra forma para detectar defectos es revisar el
código
• If l1 = l2 or l2 = l3 then
write (“equilátero”)
else ...

• En lugar del or me doy cuenta que debería ir un and


• Se puede revisar solo
• Se puede revisar en grupos
Tipos de defectos
• en algoritmos
– Bifurcar a destiempo
– Preguntar por una condición equivocada
– No inicializar variables
– Comparar variables de tipos no adecuados
• de sintaxis
– Confundir un 0 por una O
– Defectos de escritura - wirte – them
• de precisión y cálculo
– Formulas implementadas incorrectamente
– Orden correcto de las operaciones
• de documentación
Tipos de defectos …
• de estrés o sobrecarga
– Exceder el tamaño de almacenamiento o soporte, por
ejemplo, el sistema funciona bien con 100 usuarios pero
no con 110, funciona bien al inicio del día pero se va
degradando
• de capacidad o de borde
– Más de lo que el sistema puede manejar, por ejemplo,
valores superiores según el tipo de variables
• de sincronización o coordinación
– Bd distribuida, nodos offline, sistema ocupado, tiempo
excedido
• de capacidad de procesamiento o desempeño
– Tiempo de respuesta inadecuado, tiempo requerido para
finalizar
Tipos de defectos …
• de recuperación
– no vuelve a su estado normal luego de una falla
• de estándares y procedimientos
– No cumplir con la definición de estándares y/o
procedimientos
• relativos al hardware o software del sistema
– Incompatibilidad entre componentes, 32 – 64 bits
V & V objetivos
• Verificación y validación debe establecer la
confianza de que el software es apto para el
propósito.
• Esto NO quiere decir completamente libre de
defectos.
• Por el contrario, debe ser lo suficientemente
bueno para su uso y el tipo de uso para
determinar el grado de confianza que se
necesita.
Verificación estática y dinámica
• Verificación estática del software
– Permite realizar inspecciones del software para
descubrir problemas de representación
(documentación y código)

• Verificación dinámica del software


– Tiene que ver con observar el comportamiento del
producto de software (datos de prueba, resultados)
Inspecciones
de software

Especificación Diseño de alto Especificación Diseño


Programa
requerimientos nivel formal detallado

Prototipo Pruebas de
programas
Programa de pruebas
• Puede revelar la presencia de sus
errores no ausencia.
• La única técnica de validación de los
requisitos no funcionales del software,
se tiene que ejecutar para ver cómo se
comporta.
• Debería completarse con la verificación
estática.
Tipos de prueba
Pruebas de Defecto
Pruebas diseñadas para descubrir los defectos del
sistema.
El éxito de una prueba es revelar la presencia de
defectos en un sistema.
Pruebas de validación
Para exponer que el software cumple con sus
requisitos.
El éxito de una prueba es demostrar que uno de los
requisitos ha sido debidamente aplicado.
Pruebas y depuración
Pruebas de defecto y depuración son distintos
procesos.
Verificación y validación se refiere a establecer la
existencia de defectos en un programa.
Depuración se refiere a la localización y la
reparación de estos errores.
Depuración implica la formulación de una hipótesis
sobre el comportamiento del programa, entonces
estas se prueba esta hipótesis para encontrar el
error en el sistema.
Proceso de depuración

Resultados de Casos de
Especificación prueba
pruebas

Diseñar la Probar
Localizar el Reparar nuevamente
reparación
error errores el programa
de errores

Potrebbero piacerti anche