Revista de Divulgación Científico-Tecnológica del Gobierno del Estado de Morelos

Software de calidad

Archivo: Informática

M.T.I. Jesús Ángel Peña Ramírez / Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
MCC Norma Josefina Ontiveros Hernández / Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
Dr. Sergio Antonio Chavarría Puga / Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
Instituto Tecnológico de Zacatepec

Cuando un usuario compra software con licencia esto trae como consecuencia ciertos beneficios como el servicio de soporte técnico y asesoría con el propósito de reducir el mínimo de errores y fallos. No obstante, si el usuario adquiere software libre no existe la garantía de tener un software de calidad. El aseguramiento de la calidad de software se ha convertido en una necesidad prioritaria para las organizaciones públicas y privadas que lo desarrollan, ya sea para uso interno o para implementaciones externas de clientes, porque los errores en el software repercuten directa o indirectamente en graves consecuencias para la organización.
Un error que desde el punto de vista de codificación puede ser relativamente simple de corregir, puede resultar muy difícil y costoso de detectar y pueden llegar a tener graves efectos en la organización. Todo ello, sin mencionar los costos políticos para las gerencias de sistemas, normalmente responsables de la dirección de los proyectos de software.
Normalmente el equipo de desarrollo de proyectos de software se encuentra presionado por la necesidad de cumplir con las fechas establecidas en el cronograma y el proceso de pruebas no se cumple o se ejecuta de una manera desorganizada, sin método y sin considerar los tiempos establecidos para esta fase. El resultado es un software sin las pruebas mínimas requeridas y sin el nivel de calidad esperado.
En el Instituto Tecnológico de Zacatepec se desarrolló Penita, una herramienta especialmente diseñada para implementar y automatizar la realización de pruebas unitarias en java, facilitando la creación y colección de casos de pruebas, y soporta varias plataformas de sistemas operativos como LINUX, WINDOWS, entre otros.
Un software es aceptable cuando hace lo que se acordó que debía hacer en las especificaciones y no hace lo que no debe hacer. Asimismo, es importante destacar que un programador jamás debería entregar un programa sin haberlo probado. Igualmente, quien recibe un programa de otro jamás debería aceptarlo sin haberlo probado. Para aprobar una práctica ésta debe pasar las pruebas funcionales.
Los beneficios que se pueden obtener como resultado de aplicar los procesos de aseguramiento de calidad son muchos y variados. Es posible identificar problemas en etapas tempranas del desarrollo de productos de software, ayudando al desarrollador a corregirlos inmediatamente y poder avanzar con más rapidez. Se crean y se siguen estándares de trabajo. Con apoyo del proceso de aseguramiento de calidad, se pueden establecer estándares tan diversos como son los de codificación o de documentación, los cuales apoyan a uniformizar y consolidar el proceso de desarrollo. De acuerdo a la definición del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE, Std. 610-1990) “La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”.

Los factores que determinan la calidad el software son los siguientes:

  • Corrección. ¿Hace lo que quiero?. El software debe ser diseñado de tal manera, que permita ajustarlo a los cambios en los requerimientos del cliente.
    Fiabilidad. ¿Lo hace de forma fiable todo el tiempo?. Incluye varias características además de la confiabilidad, como la seguridad, control de fallos, etc.
    Eficiencia. ¿Se ejecutará en mi hardware lo mejor que pueda?. Tiene que ver con el uso eficiente de los recursos que necesita un sistema para su funcionamiento.
    Seguridad (Integridad). ¿Es seguro?
    Facilidad de uso. ¿Está diseñado para ser usado?. El software debiera ser utilizado sin un gran esfuerzo por los usuarios para los que fue diseñado, documentado, entre otros.

La calidad del software evita incurrir en costos innecesarios. Como un efecto generalizado de algunos de los puntos mencionados con anterioridad, la práctica de procesos de aseguramiento de calidad lleva a las organizaciones a evitar costos no deseados como pueden ser todos aquellos ocasionados por mantenimiento correctivo.
Hoy en día todo el software es desarrollado mediante un lenguaje de programación orientado a objetos donde nos permite ensamblar varios componentes así poder crear aplicaciones completas. Por ejemplo cualquier aplicación (Microsoft Office Word 2007 y otros) que permite una interfaz grafica personalizada donde el usuario tiene la capacidad de seleccionar objetos o componentes como pueden ser círculos, cuadrados etc. Con esto poder ensamblar un diseño de imagen o figura completa.

El usuario le preocupa saber si tiene a su alcance un software de calidad, será confiable, seguro y nunca fallara.
para contestar a esta pregunta se necesita otro software que permita realizar pruebas desde lo particular hasta lo general hasta localizar el mínimo de errores, donde el usuario tenga la confianza de comprar software con licencia. Existen el mercado mundialmente las siguientes herramientas como: junit, Jblue y otros.
La herramienta Penita tiene el propósito de probar aplicaciones que fueron desarrolladas mediante un lenguaje java, por ejemplo diseño de arquitectura para paginas web (http://www.sat.gob.mx/), aplicaciones genéricas. Esta herramienta aplica el método refactorizar (proceso de modificar el código de un desarrollo para mejorar su estructura interna sin alterar la funcionalidad que ofrece el desarrollo externamente).
Una las ventajas que ofrece esta herramienta en comparación de otros mencionadas anteriormente es que permite descomprimir archivos *.zip y *.jar para la realización de pruebas individuales en forma gráfica y en modo texto. Como también se considera un candado electrónico de sistema de seguridad (puerto paralelo), y por ultimo permite probar la simulación de base de datos, servlets y beans mediante Objetos Mock. Para que la herramienta tenga éxito tiene que localizar el máximo de errores (objetos nulos, objetos no iguales, no localiza el objeto).

Este proyecto de investigación inicio el 3 de marzo de 2009, en el Instituto Tecnológico de Zacatepec con la participación del M.T.I. Jesús Ángel Peña Ramírez, la M.C. Norma Josefina Ontiveros Hernández y el Dr. Sergio Antonio Chavarría Puga. Asimismo se destaca que este proyecto fue incluido en el 6º Congreso Internacional sobre Innovación y Desarrollo Tecnológico (CIINDET 2009), un congreso internacional realizado en Cuernavaca.


El M.T.I. Jesús Ángel Peña Ramírez es catedrático del Instituto Tecnológico de Zacatepec, del CONALEP Temixco y de la Universidad Autónoma del Estado de Morelos, Campus Sur. Ha publicado diversos artículos y es miembro de diferentes comités y elaboración de proyectos de investigación sobre virus informáticos.


Norma Josefina Ontiveros Hernández es licenciada en Informática, egresada del Instituto Tecnológico de Durango en 1984. Obtuvo el grado de Maestra en Ciencias de la Computación en 1995 en el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET).


El Dr. Sergio Antonio Chavarría Puga es investigador del Instituto Tecnológico de Zacatepec y catedrático, coordinador de la licenciatura en Administración de Empresas Turísticas, subdirector de servicios administrativos. Ha publicado varios artículos en revistas científicas nacionales e internacionales.