martes, 7 de agosto de 2012

Reporte 1 - Verificación y Validación de Software

Verificación y Validación 

La prueba del software se conoce también como verificación y validación (V&V). 
  • Verificación: conjunto de actividades que aseguran que el software implementa correctamente una función específica (¿estamos construyendo el producto correctamente?). 
  • Validación: son las actividades que buscan asegurar si el software construido se ajusta a los requisitos del cliente (¿estamos construyendo el producto correcto?).
Durante y después del proceso de implementación, el programa en desarrollo debe ser comprobado, para asegurar que satisface su especificación y entrega la funcionalidad esperada por el cliente. La verificación y la validación (V&V) es el nombre dado a estos procesos de análisis y pruebas. La verificación y la validación tienen lugar en cada etapa del proceso del software. V&V comienza con revisiones de los requerimientos y continúa con revisiones del diseño e inspecciones de código, hasta la prueba del producto.

Las pruebas del software implican ejecutar una implementación del software con datos de prueba. Se examinan las salidas del software y su entorno operacional para comprobar que funciona tal y como se requiere. Las pruebas son una técnica dinámica de verificación y validación .

Sólo puede probarse un sistema cuando está disponible un prototipo o una versión ejecutable del programa.


Es bien sabido que a lo largo de la historia de la tecnología se han desarrollado un sinfin de productos (software y hardware) que han logrado implementar exitosamente la tarea para que fueron diseñados. Sin embargo, ha habido casos en los que ya sea por la presión de sacar un producto nuevo o se pasó desapercibido o no fue analizado y probado debidamente han salido a su entorno operacional con fallas o errores que han derivado en pérdidas tanto para la industria que los crea como para los clientes que los usan.


Enseguida listaré algunos ejemplos de proyectos (productos) que salieron a su específico campo de acción y, fallaron. En éstos se demuestra la  importancia de que los productos pasen forzosamente por algun filtro rigoroso a prueba de fallos en el que se aplique la verificación y la validación.


  • Therac-25 era una máquina empleada en terapia de radiación, producida por Atomic Energy of Canada Limited. Este acelerador de uso dual: podía emitir electrones de baja intensidad (partículas beta) o un haz de rayos X. Estos se conseguían mediante el impacto de electrones de alta energía en una placa metálica que se situaba entre el emisor y el paciente.
    El problema residía en que, a causa de un error de programación en la interfaz gráfica, se podía dar el caso de que se enviase la orden de disparar el haz de electrones de alta energía y la de situar la placa metálica simultáneamente, disparando las partículas antes de que la placa metálica estuviera en posición, exponiendo al paciente a una dosis letal de radiación, mas de diez mil rad.
    Resultado: al menos seis accidentes entre 1985 y 1987, y que le costó la vida al menos a cinco personas.




  • La explosión del Ariane 5 (1996). El cohete -de 8 mil millones de dólares-, que contenía 4 satélites valorados en 500 millones de dólares, explotó tras sufrir un fallo en su computador: el aparato saltó en pedazos a los 36,7 segundos de su lanzamiento, al tratar de convertir unos datos de formato 64 bits a formato 16 bits.



  • División en coma flotante del Intel Pentium. Bug clásico de 1994, que se tradujo en un pequeño varapalo económico y publicitario para Intel y sus primeros Pentium. Bajo ciertas circunstancias, dependiendo de los rangos de los divisores, los bits 13º y siguientes de la mantisa podían contener valores incorrectos en las operaciones de división en coma flotante, cálculo de tangente y resto, provocando un error de un máximo de 61 unidades por millón.



Conclusiones

Al haber realizado esta investigación concluyo en que tanto pequeñas como grandes empresas que desarrollen tecnología destinen fondos para contar o crear un departamento exclusivo que se encargue de la verificación y validación de los productos que creen y/o desarrollen esto con la finalidad de que la misma empresa se asegure que el producto final que están por lanzar al mercado es el mismo que en un principio diseñaron y es lo que el cliente o usuario final quiere y así tener más éxito tanto en ventas como en reputación que hoy en día al existir un mercado grande y competitivo es muy importante ser reconocido como una empresa que desarrolla tecnología usable y de calidad.


Fuentes de Consulta:
http://www.slideshare.net/jpbthames/verificacin-y-validacin-del-diseo

1 comentario:

  1. En realidad no es 100% cierto lo de "Sólo puede probarse un sistema cuando está disponible un prototipo o una versión ejecutable del programa." El punto de verificación formal es poder examinar la especificación por fallas lógicas mucho antes de que se construya el sistema y en sí eso se considera una "prueba" también.

    ResponderEliminar