Requisitos de calidad del software

La calidad del software es uno de los principales objetivos estratégicos de las organizaciones, que dependen de los sistemas informáticos para un buen funcionamiento. Consiste en desarrollar productos lógicos que satisfagan las necesidades del usuario y que tiendan a cero defectos.

El aseguramiento de la calidad es la revisión de los productos y documentación relacionada con el software para verificar su cobertura, corrección, confiabilidad y facilidad de mantenimiento. Y por supuesto, incluye la garantía de que un sistema cumple las especificaciones y los requerimientos para su uso y desempeño deseados.

Los analistas usan cuatro niveles de aseguramiento de la calidad:

– prueba,
– verificación,
– validación y
– certificación.

Prueba. Es un proceso que puede resultar caro, pero crítico; que se lleva a cabo para demostrar que no hay errores en un programa (un error aparece cuando el sistema no produce los resultados esperados, no solamente son de sintaxis de programación). Sin embargo; es imposible que los analistas demuestren que un sistema está 100% limpio de errores; por lo que se tiende a cambiar el significado de la prueba, considerándola entonces como el proceso de ejecutar un programa con la intención de hallar errores, es decir, hacer que el programa falle, se entiende que la prueba es exitosa cuando se detecta un error.

Se usan dos estrategias de prueba: la “prueba de código”, en la que el analista desarrolla casos de prueba para ejecutar cada instrucción o ruta dentro de un programa; y la “prueba de especificación”, en la que el analista examina las especificaciones del programa y escribe los datos de prueba para determinar cómo opera el sistema bajo condiciones específicas.

Por otro lado, las pruebas pueden realizarse en dos niveles: el primero se trata de una “prueba parcial” en la que el analista, usando alguna de las estrategias anteriores, examina los programas que conforman un sistema; el segundo nivel sería la “prueba de sistemas” en la que se pretende hallar cualquier discrepancia entre el sistema y sus objetivos originales.

Existen también otras pruebas de tipo especial que se centran en hallar los defectos de operación en el sistema para prevenir su falla, ellas son: la prueba de carga máxima, almacenamiento, tiempo de ejecución, recuperación, procedimiento, y de factores humanos.

A pesar de todo lo anterior, los analistas saben que un programa de prueba efectivo no garantiza la confiabilidad del sistema. La confiabilidad debe diseñarse en el sistema, por lo que no se puede hacer una prueba para ella; sin embargo, existe un segundo nivel de confiabilidad que tiene que ver con los resultados reales que el sistema entrega al usuario. En este nivel la confiabilidad del sistema se entrelaza con la ingeniería del software y su desarrollo.

Se dice que un sistema tiene confiabilidad si no produce fallas costosas o peligrosas al usarse de manera razonable, es decir, de tal forma que un usuario típico espera que sea normal.

Verificación y validación. Continuando con la intención de hallar errores, la verificación se lleva a cabo ejecutando un programa en un ambiente simulado. La validación se refiere al proceso del uso del software en un ambiente no simulado para hallar sus errores.

La retroalimentación de la fase de validación generalmente produce cambios en el software para resolver los errores y fallas que se descubren. La dinámica es la siguiente: se elige un conjunto de instalaciones usuarias que ponen a trabajar el sistema en las actividades cotidianas procesando transacciones y produciendo las salidas normales del sistema; es decir, el sistema se pone a prueba, pero los usuarios están advertidos de que están usando un sistema que puede fallar. Vale la pena recalcar el hecho de que las transacciones y los usuarios son reales. Esta prueba puede extenderse varios meses, tiempo durante el cual pueden hacerse modificaciones en el software de acuerdo a las fallas encontradas.

La verificación también es conocida como “prueba alfa” y la validación como “prueba beta”.

Certificación. Es una garantía de lo correcto en un programa y cada vez es más importante para las aplicaciones de sistemas de información. Actualmente se tiende a comprar o rentar software comercial en vez de desarrollarlo dentro de la organización; sin embargo, antes de decidir adquirirlo de esa manera es necesario que dicho software requiera una certificación por parte del fabricante para garantizar, que realmente hace lo que el vendedor afirma.

Las empresas involucradas en la certificación de software deben contar con personal altamente experimentado en los procesos correspondientes a las aplicaciones que examinarán. La dinámica consiste en que los especialistas examinen cuidadosamente la documentación del sistema para verificar lo que afirma el vendedor que el sistema hace y cómo lo lleva a cabo. Entonces ellos prueban el sistema contra esas afirmaciones.

Si no se encuentran serias discrepancias o fallas, certifican que el software hace lo que la documentación afirma. Esta certificación no garantiza que el software sea apropiado para una u otra organización, esa responsabilidad es de la misma organización y su grupo de analistas.

Fuente: Informática I de la facultad de contaduría y administración, UNAM.