Conceptos fundamentales calidad software.doc

Solo disponible en BuenasTareas
  • Páginas : 6 (1322 palabras )
  • Descarga(s) : 4
  • Publicado : 26 de octubre de 2009
Leer documento completo
Vista previa del texto
Conceptos fundamentales
 
Verificación:
 
• Consiste en responder a la pregunta: ¿Estamos construyendo el producto correctamente? Dada la especificación que hemos tomado del usuario ¿estamos construyendo bien el código? 
• ¿El resultado final del desarrollo software concuerda con la especificación (requisitos) del sistema? Hay que intentar asegurar que el desarrollo final coincidecon dicha especificación
 
Validación:
 
• ¿Estamos construyendo el producto correcto?
• ¿El resultado final del desarrollo software se ajusta a lo que el usuario quería (sus necesidades)? En la mayoría de las ocasiones el producto desarrollado no casa con la ideas del cliente, normalmente porque a éste suele faltarle capacidad técnica de expresión.
 
¿Cómo llevar a cabo laverificación y validación? Métodos
 
•  Pruebas del software (Dinámico): consisten en ejecutar comprobando que distintos valores de entrada producen los resultados deseados.
• Métodos de inspección del software (Estático): se basan en la revisión de la documentación, requisitos, incluso código sin ejecutar nada. Esta tarea puede realizarse por un grupo de expertos por ejemplo.
o Hay untipo concreto de métodos estáticos llamados métodos formales. Éstos se basan en realizar una especificación llevada al extremo transformando el software a lenguaje matemático, donde no quedan ambigüedades y el código queda bien especificado.
o Otra forma de inspección del software es comprobando el código mediante heurísticas con algún programa que la aplica (P. ej.- Findbugs).
 Pruebas del software
 
Tipos de prueba (categorización)
 
• En función de qué conocemos:
o Pruebas de caja negra: no conocemos la implementación del código, sólo la interfaz. Tan sólo podemos probar dando distintos valores a las entradas y salidas.
o Pruebas de caja blanca: conocemos el código (la implementación de éste) que se va a ejecutar y podemos definir las pruebas quecubran todos los posibles caminos del código.
• Según el grado de automatización:
o Pruebas manuales: son las que se hacen normalmente al programar o las que ejecuta una persona con la documentación generada durante la codificación (P. ej.- comprobar cómo se visualiza el contenido de una página web en dos navegadores diferentes).
o Pruebas automáticas: se usa undeterminado software para sistematizar las pruebas y obtener los resultados de las mismas (P. ej.- verificar un método de ordenación).
• En función de qué se prueba:
o Pruebas unitarias: se aplican a un componente del software. Podemos considerar como componente (elemento indivisible) a una función, una clase, una librería, etc. En nuestro caso, generalmente hablaremos de una clase comocomponente de software.
o Pruebas de integración: consiste en construir el sistema a partir de los distintos componentes y probarlo con todos integrados. Estas pruebas deven realizarse progresivamente.
o Pruebas funcionales: sobre el sistema funcionando se comprueba que cumple con la especificación (normalmente a través de los casos de uso).
o Pruebas de rendimiento: lostres primeros tipos de pruebas de los que ya se ha hablado comprueban la eficacia del sistema. Las pruebas de rendimiento se basan en comprobar que el sistema puede soportar el volumen de carga definido en la especificación, es decir, hay que comprobar la eficiencia (P. ej.- Se ha montado una página web sobre un servidor y hay que probar qué capacidad tiene estado de aceptar peticiones).o Pruebas de aceptación: son las únicas pruebas que son realizadas por los usuarios, todas las anteriores las lleva a cabo el equipo de desarrollo. Podemos distinguir entre dos pruebas:
▪ Pruebas alfa: las realiza el usuario en presencia de personal de desarrollo del proyecto haciendo uso de una máquina preparada para tal fin.
▪ Pruebas beta: las realiza el...
tracking img