Profesionalización de las pruebas y de la calidad del software
-
Si Costa Rica gana reputación mundial de ser un país donde se hace consistentemente software de alta calidad, logrará una distinción que hará más próspero al sector de tecnologías digitales.
Ignacio Trejos Zelaya | TEC y Cenfotec | [email protected]
Deming sostenía que la calidad era el grado en el cual un producto satisface las necesidades o las expectativas de un cliente o de un usuario. Juran afirmaba que la calidad corresponde a adecuarse al uso, mientras que Crosby dio una definición estricta: “estar conforme con los requerimientos”. La ISO define calidad como “la totalidad de las características de un producto o servicio, que tienen que ver con su capacidad de satisfacer necesidades enunciadas o implícitas”.
Al software suelen asociársele características de calidad como estas:
- Funcionalidad: Existencia de un conjunto de funciones para satisfacer necesidades de procesamiento de información.
- Corrección: Cualidad de un sistema de estar libre de defectos en su especificación, diseño y construcción.
- Usabilidad: Nivel de esfuerzo necesario para utilizar eficazmente un sistema de software.
- Eficiencia: Relación entre rendimiento y recursos utilizados.
- Mantenibilidad: Esfuerzo requerido para realizar modificaciones especificadas.
- Confiabilidad: Capacidad de un sistema informático para mantener el nivel de desempeño bajo condiciones enunciadas y períodos de tiempo acordados.
- Portabilidad: Capacidad de transferir un sistema de un ambiente operativo a otro.
- Interoperabilidad: Esfuerzo requerido para acoplar un sistema con otro, a fin de que puedan intercambiar datos.
- Seguridad: Grado en que se puede controlar el acceso al sistema por agentes no autorizados.
- Robustez: Capacidad de un sistema de continuar funcionando en presencia de datos de entrada incorrectos o condiciones ambientales límite.
En el año 2002, el National Institute of Standards and Technology (NIST) de Estados Unidos publicó un estudio en el que revela que “los defectos de software le cuestan a la economía de Estados Unidos US$59.500 millones al año. Aproximadamente US$22.200 millones podrían ahorrarse si se mejoran los procesos de identificación y eliminación de defectos de software”. Tal situación sería otra si los profesionales conocieran los procesos y buenas prácticas para evaluar y asegurar la calidad de los productos de software.
Pocas carreras informáticas de Costa Rica, apenas en el presente siglo, han comenzado a incorporar en sus planes de estudios cursos en que se aprenden los temas relacionados con calidad del software, procesos de software, pruebas de software, gestión de configuraciones de software, interacción humano-computadora y arquitectura de software; todavía está prácticamente ausente el tema de mantenimiento de software, que es el área de actividad en software que consume más esfuerzo.
Esta situación no es muy distinta internacionalmente; apenas hace 20 años aparecieron las primeras carreras de Ingeniería del software en Norteamérica, como algo distinto de Ciencia de la Computación (Computer Science) o Sistemas de Información (Information Systems).
No es de extrañar, entonces, que se hubiera dado poca atención a la calidad del software y a las pruebas de software en el mercado laboral, tanto en instituciones públicas como en empresas privadas.
Eso está comenzando a cambiar. Algunas organizaciones ya tienen conciencia de que la vigilancia de la calidad del software vía procesos de aseguramiento, verificación y validación puede ahorrar esfuerzo, tiempo y dinero en el desarrollo y el mantenimiento de software, así como mejorar la productividad de los equipos de trabajo y de las organizaciones que producen software.
El determinar la calidad de algo implica evaluarlo de alguna manera. En el caso del software, la tradición es probarlo para determinar si satisface los requerimientos del cliente o las otras características deseadas. Para poder ejecutar pruebas primero se requiere elaborar los programas. Observar cualidades del software mediante pruebas, al final de un esfuerzo de desarrollo, es anti-económico; es preferible diseñar y planear sistemáticamente las pruebas desde temprano, para ejecutarlas incrementalmente: primero las unidades, luego los componentes integrados y finalmente el sistema.
Aún mejor es adoptar un enfoque en que haya prevención y(o) detección temprana de desviaciones respecto de la calidad. El construir intencionadamente especificaciones de requerimientos y modelos de diseño en el proceso de desarrollo, permite someterlos a revisiones por pares humanos (asistidos por herramientas de análisis estático), de manera que se puedan detectar y resolver temprano los defectos, para así evitar su maligna propagación hacia los programas. Esto no es extraño para los costarricenses; nuestro sistema de salud pública se basa en la prevención y la detección con respuesta temprana, lo que ha permitido tener resultados espectaculares y comparables con los de países desarrollados.
Algo semejante podemos lograr en software. Una mejor calidad sistémica en la producción de software, y en los servicios habilitados por este, contribuirá a mejorar la productividad de las empresas e instituciones del país, así como a impulsar la competitividad nacional en el ámbito global. Si Costa Rica gana reputación mundial de ser un país donde se hace consistentemente software de alta calidad, logrará una distinción que hará más próspero al sector de tecnologías digitales – cada vez más productos y servicios tienen al software como un elemento central que les anima, diferencia y viabiliza (el software es su ‘alma’ tecnológica).
Para profesionalizar a la fuerza laboral en materia de calidad del software y de pruebas del software necesitamos desarrollar iniciativas en dos planos: la preparación de los futuros informáticos y la capacitación de los profesionales actuales.
Por un lado, es necesario que más carreras incorporen esas temáticas de manera integrada (y práctica) en sus currículos. Para ello, es necesario que los profesores conozcan de esas áreas o que se invite a profesionales del ramo a incorporarse como docentes adjuntos en las universidades.
Por otro lado, los informáticos en servicio pueden acudir a programas de capacitación o de especialización profesional en calidad del software o en pruebas de software, así como a esquemas de certificación de competencias en alguna de esas áreas.
El diseño de las carreras de Ingeniería del software, o de otras en las que se decida incorporar las temáticas de calidad del software y de pruebas de software, puede revisar las recomendaciones curriculares que periódicamente publican la Association for Computing Machinery (ACM) en conjunto con la Computer Society del IEEE. La más reciente de ellas fue publicada en febrero del 2015 y se denomina Software Engineering 2014 – Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. Algunas instituciones, como Cenfotec, han venido trabajando en cursos que combinan el estudio de las pruebas y la calidad del software desde el año 2002. Carreras informáticas en el Instituto Tecnológico de Costa Rica (TEC), la Universidad Técnica Nacional (UTN) y la Universidad de Costa Rica (UCR) ya incluyen estas temáticas en sus planes de estudios.
El aprendizaje del aseguramiento de la calidad del software y de las pruebas de software para los profesionales en servicio se ha dado vía auto-estudio, mentoría o capacitación. Desde el 2003, con la colaboración de la American Society for Quality (ASQ), se han organizado en Costa Rica cursos de preparación para la el esquema Certified Software Quality Engineer.
Desde el 2005, Cenfotec ofrece cursos y talleres relacionados con pruebas de software, aseguramiento de la calidad del software y requerimientos de software. Las certificaciones del International Software Testing Qualifications Board (ISTQB) han ido creciendo en demanda desde el 2015 en Costa Rica; hoy Costa Rica es el país con más rápido crecimiento proporcional en toda Hispanoamérica.
En reconocimiento a este crecimiento, en octubre de este año, Costa Rica será una ‘parada’ en la segunda Gira Hispanoamericana de Pruebas de Software, que promueven el Consejo Hispanoamericano de Pruebas de Software (HASTQB) y el International Software Quality Institute (iSQI). Será una excelente oportunidad para que profesionales y empresas conozcan, de primera mano, las versiones más actualizadas de los esquemas internacionales de certificación profesional en pruebas de software (en sus distintos niveles) y para entrar en contacto con personas que comparten intereses afines y así formar comunidad. En las próximas semanas CAMTIC y UCenfotec estarán anunciando más detalles sobre esta gira.
Compartir
NOTICIAS
Entradas recientes
- Contratación administrativa | SICOP 10 al 23 de marzo del 2023
- Contratación administrativa | La Gaceta 10 al 23 de marzo del 2023
- Agencia Nacional de Empleo tiene disponibles casi 900 cupos para capacitarse en ciberseguridad
- Babel firma alianza con Cloudera y refuerza su oferta en Big Data
- Tech Together: Internet de las Cosas como agente de innovación en el desarrollo en Costa Rica