[Imagen obtenida de: "http://www.ackinva.com/img/foto-proyectos-validacion-instalaciones.jpg"]
Se dice que la verificación y validación formal de software es el proceso de control que asegura que el software cumple con su espesificación y satisface las necesidades del usuario.
Diferencias entre validación y verificación
Según Boehm(1979) las diferencias consisten en:
- Validación: Se ocuppa de controlar si el producto satisface los requerimientos del usuario.
- Verificación: Implica controlar que el producto conforma su especificación inicial.
Otros conceptos a tomar en cuenta son los de defectos:
- Defectos: Una función que esta incorrecta o que no se encuentra en el código
- Falla: Cuando se prefenta un defecto durante la ejecución
- Funcionamiento defectuoso: Qué deacuerdo a la especificación el sistema no cumple con la funcionalidad especificada.
Importancia de la validación formal de software
Para medir la fiabilidad
Esto quiere decir lo confiable que el producto es para el usuario, por ejemplo en diagnostico médicos, un diagnostico incorrecto por un equipo con defectos puede causar la muerte de un paciente.
Demostrar la utilidad y operabilidad
Un Test de usabilidad es cuando un software se presenta a un grupo de usuarios para observar como interactúan con este y donde encuentran problemas para utilizarlo.
Impedir la migración de defectos
Algunos errores pueden introducirse durante etapas tempranas del desarrollo del producto, como en la recolección de los requisitos. Si los errores se detectan en etapas tempranas se puede impedir que migren a otras fases de desarrollo y conduce a enormes ahorros en costos de desarrollo.
Ejemplos de desastres informáticos famosos
[Imagen obtenida de "http://www.sololistas.net/wp-content/uploads/2011/05/Brain.jpg"]
- Marinero sin rumbo (1962)
Coste: 18,5 millones de dólares.
Desastre: El cohete Mariner 1, en una investigación espacial destinada a Venus, se desvió de su trayectoria de vuelo poco después de su lanzamiento. El control de la misión destruyó el cohete pasados 293 segundos desde el despegue.
Causa: Un programador codificó incorrectamente en el software una fórmula manuscrita, saltándose un simple guión sobre una expresión. Sin la función de suavizado indicada por este símbolo, el software interpretó como serias las variaciones normales de velocidad y causó correcciones erróneas en el rumbo que hicieron que el cohete saliera de su trayectoria. - El hundimiento del Hartford Coliseum (1978)
Coste: 70 millones de dólares, más otros 20 millones en daños a la economía local.
Desastre: Sólo unas horas después de que miles de aficionados al hockey abandonaran el Hartford Coliseum, la estructura de acero de su techo se desplomaba debido al peso de la nieve.
Causa: El desarrollador del software de diseño asistido (CAD) utilizado para diseñar el coliseo asumió incorrectamente que los soportes de acero del techo sólo debían aguantar la compresión de la propia estructura. Sin embargo, cuando uno de estos soportes se dobló debido al peso de la nieve, inició una reacción en cadena que hizo caer a las demás secciones del techo como si se tratara de piezas de dominó. - La CIA le da gas a los soviéticos (1982)
Coste: Millones de dólares, daño significativo a la economía soviética.
Desastre: El software de control se volvió loco y produjo una presión excesiva en la tubería de gas transsiberiana, provocando la mayor explosión no nuclear, causada por el hombre, de la historia de la tierra.
Causa: los agentes de la CIA supuestamente introdujeron un error en el sistema informático canadiense adquirido por los soviéticos para controlar sus tuberías de gas. La compra era parte de un estratégico plan soviético para robar u obtener de forma encubierta tecnología secreta de los Estados Unidos. Cuando la CIA descubrió la compra, sabotearon el software de forma que éste superara la inspección soviética pero fallara una vez operativo. - La Tercera Guerra Mundial… o casi (1983)
- La máquina asesina (1985)
Coste: Tres personas muertas, otras tres heridas gravemente.
Desastre: La máquina de terapia radiactiva canadiense Therac-25 falló y emitió dosis letales de radiación a los pacientes.
Causa: Debido a un sutil bug llamado race condition (condición de carrera), un técnico pudo accidentalmente configurar el Therac-25 de forma que el haz de electrones se disparase en modo de alta potencia sin que el paciente contara con la protección apropiada.
Coste: prácticamente toda la humanidad.
Desastre: El sistema soviético de alerta temprana indicó erróneamente que los Estados Unidos habían lanzado cinco misiles balísticos. Afortunadamente, el oficial de servicio, con un gran instinto, razonó que si realmente les estuvieran atacando les habrían lanzado más de cinco misiles, por lo que informó del aparente ataque como una falsa alarma.
Causa: un error en el software soviético hizo que los efectos de la reflexión de la luz solar en las nubes fueran considerados misiles por el sistema.
- http://www.slideshare.net/FARIDROJAS/validacion-y-verificacion-presentation-632946
- http://assignmentstoday.com/?p=473
- http://www.ehow.com/about_5387160_importance-software-testing.html
- http://www.taringa.net/posts/info/1890933/Los-20-desastres-mas-famosos-relacionados-con-el-Software.html
Muy bien.
ResponderBorrar