Verificación y validación Flashcards
(34 cards)
Que preguntas ofrece la verficación?
❑¿Estamos construyendo el producto correctamente?
❑¿El software está de acuerdo con su especificación?
Que preguntas ofrece la validación?
❑¿Estamos construyendo el producto correcto?
❑¿El software cumple con las expectativas del cliente?
Objetivo de la validación y verificación?
V&V deberían establecer confianza que el software es adecuado para su
propósito. Debe ser suficientemente bueno para su uso previsto. El tipo de
uso determinará el grado de confianza que es necesario
Relación entre error, defecto y Fallo
El error puede generar un defecto (implementación de ese error en el código) que puede generar un fallo (Manifestación del defecto al usar el sistema)
Como son las V&V estática, dinámica y formal?
Estatica: ❑Análisis de la representación
estática del sistema para
descubrir defectos
(inspecciones)
* Puede ser complementado
por documentación basada en
herramientas y análisis de
código (manual o
automática)
Dinámica:
❑observar el
comportamiento del
producto (testing)
▪ El sistema es ejecutado con
datos de test y se observa su
comportamiento.
Formal: ❑métodos lógicomatemáticos (llamados
métodos formales) para
verificar (probar) la
correctitud del programa,
generalmente para
aplicaciones de misión
crítica
¿Qué detecto si realizo una prueba estatica y/o dinamica?
Estática: ERRORES O DEFECTOS
Dinámica: FALLOS
Cuales son los 7 principios del testing?
- testeo exhaustivo
- Defect Claustering
- Paradoja del pesticida
- Dependiente del contexto
- Cuanto mas temprano mejor
- Muestra la presencia de defectos
- Ausencia de error es una falacia
Que dice el Principio nro 1 – El testeo exhaustivo no es posible
Si tuviéramos que testear todas las combinaciones posible, la ejecución de las pruebas elevaría el costo y tiempo exponencialmente
Necesitamos un conjunto óptimo de tests basado en la evaluación de riesgo de
la aplicación.
Que dice el Principio nro 2 – Defect Clustering,
Un nro. de
módulos contienen gran parte de los defectos.
Que dice el Principio nro 3 – La Paradoja del pesticida.
Repetir
sistemáticamente los mismos test puede
eventualmente no encontrar más bugs.
Revisar periódicamente la efectividad de los test
Que dice el Principio nro 4 –
El testing es dependiente del
contexto
QUe dice el Principio nro 5
Cuanto mas temprano mejor. El error se
propaga por todo el ciclo de vida. El costo de corregirlo
aumenta a medida que avanza el proyecto
Que dice el Principio nro 6 –
Los tests muestran la presencia, no la
ausencia de errorrs (ley de Dijkstra)
Que dice el Principio nro 7 -
Ausencia de error es una falacia
Que es el testing dinamico?
Testing implica ejecutar un programa, esto es
evaluar su comportamiento dinámico
❑Es necesario ejecutar el programa para
asegurarnos que todos los factores ambientales
que pueden influir en la ejecución son tenidos
en cuenta
❑Los programas pueden arrojar distintos
resultados dependiendo el estado del sistema
Que es el testing Finito?
Aún los programas mas triviales tienen un
conjunto muy grande (“semi-infinito”) de posibles
entradas y ejecuciones
❑Idealmente se debería hacer un testing
exhaustivo (testear todas las posibles
ejecuciones; esto es esencialmente una prueba
de correctitud de fuerza bruta)
❑Esto claramente la mayoría de las veces no es
factible
Que es el testing esperado?
Para evaluar el resultado de un test se debe saber
que se espera, es decir, cuando es “correcto”
❑Esto no es tan fácil como se supone, dado que
los requerimientos muchas veces no están
completamente especificados, por tanto no se
sabe cuales son los resultados esperados
Inspeccionar o Testear, ¿qué va primero?
❑Es importante inspeccionar el software antes de testearlo
extensivamente
❑La razón es que la inspección permite encontrar rápidamente muchos
defectos
❑Si se testea primero y luego los inspectores recomiendan que es
necesario un rediseño, el trabajo de testing ha sido desperdiciado
❑Aún antes que el testing del desarrollador
Cuales son los niveles de testing?
- Testing de Componentes
(Unitario): Testing de los componentes individuales de un programa, lo cual puede incluir clases, métodos, funciones, etc. - Testing de Integración: Es la fase del testeo del software en la cual los módulos de software individuales son
combinados y testeados como grupo. - Testing del Sistema: Testing de grupos de componentes ya integrados para crear un sistema o subsistema.
Que es el modelo V?
El Modelo-V es una representación
gráfica del ciclo de vida del
desarrollo de sistemas.
Resume los pasos principales
conjuntamente con los entregables
correspondientes en un framework
de validación de sistemas
automatizados
como es el modelo V?
https://drive.google.com/file/d/1Q2vLPg6PO1QVBT7HxU6FskqbBCFZIrtY/view?usp=sharing
Diga caracteristicas de la Estrategia de integración: Big-Bang
❑ Poner juntas todas las unidades
❑ Confiar en los resultados de los test
unitarios
❑ (Relativamente) pocos test son
requeridos
❑ Muy difícil aislar errores
Carcateristicas de la estrategia Testing de Integración Incremental
Para simplificar la localización de errores, el sistema
debería ser integrado incrementalmente
Que es un driver y que es un stub?
Driver:
❑Es un componente, que llama al módulo a testear
❑Controla los casos de test
Stub:
❑ Un componente que dependen del módulo bajo test.
❑ Hace las llamadas como lo haría la unidad original a los niveles mas bajos
❑ Software Dummy
❑ Misma interfaz que el original
❑ Retorna resultados fingidos (fake)