Carrito de compras

Calidad de Software, cuatro interrogantes y un proceso de equipo

11 dic. Apps en QA

Uno de los problemas más comunes y difíciles de lograr en la esfera de Desarrollo de Software, es la “calidad del software”. Desde hace muchos años este tema ha sido motivo de preocupación para especialistas, ingenieros, investigadores y comercializadores de software, debido a esto se han realizado gran cantidad de investigaciones al respecto teniendo como objetivos fundamentales saber:

  1. ¿Cómo obtener un software con calidad?
  2. ¿Cómo evaluar la calidad del software?

Ambas interrogantes conllevan amplias respuestas, pero están estrechamente ligadas con el concepto de “calidad del software”, que no es otra cosa más que el resultado de la primera y la fuente de la segunda, para entender de que se trata comencemos definiendo…

¿Qué es la calidad del software?

La calidad de una aplicación, producto o desarrollo de software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad, eficiencia, flexibilidad, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad a lo largo de su existencia en el tiempo o como comúnmente se le conoce, su vida útil.

¿Cómo obtener un software de calidad?

La obtención de la calidad implica la utilización de metodologías o procedimientos y estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo en aras de lograr cada una de las características antes mencionadas (utilidad, eficiencia, flexibilidad, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad), y a la vez, que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software.

¿Cómo evaluar la calidad del software?

La calidad, para poder ser entendida de una mejor manera y posteriormente ser medida con eficacia, debe ser expresada por medio de términos que tengan más sentido para el usuario. En el caso del software, estos factores son el medio por el cual se traduce el término “calidad” al lenguaje de las personas que manejan la tecnología. Los factores de calidad que afectan a la calidad del software se dividen en dos grupos:

  • Los que miden directamente (defectos descubiertos en las pruebas).
  • Los que se miden directamente (facilidad de uso o de mantenimiento).

Dicho en palabras más sencillas, un software libre de errores, que cumpla con lo requerido y que haga lo esperado de una manera fácil y sencilla y que permita mejorarse, actualizarse y mantenerse por un largo periodo de tiempo siendo altamente útil es un producto de calidad.

La adopción de una buena metodología contribuye en gran medida a lograr los objetivos de calidad, pero no la asegura. Para el aseguramiento de la calidad es necesario su control o evaluación y es aquí donde surge la cuarta interrogante:

¿Cómo controlar la calidad del software?

El primer paso para lograr el objetivo es adoptar una cultura en la cual todos los implicados en la construcción del software tengan claro que la calidad de este depende de todo el equipo y de un proceso en el que las labores de Desarrollo, compilación, Pruebas, análisis estático del código y liberaciones del nuevo Código son unificados en lo que se conoce como Integración Continua.

Control continuo de la calidad del software.

La integración continua se refiere en su mayoría a la fase de creación o integración del proceso de creación y publicación de código que crea un software y conlleva un componente de compilación y automatización que se encarga de “probar” el código ejecutando tareas específicas que tienen como objetivo:

  • Encontrar y arreglar errores con mayor rapidez.
  • Mejorar la calidad del software.
  • Reducir el tiempo que se tarda en validar y publicar nuevas actualizaciones de software.

Con la integración continua, los equipos de desarrollo envían el nuevo código de forma periódica a un repositorio compartido con un sistema de control de versión en donde se definen varios niveles de pruebas, un ejemplo básico de estos niveles puede ser:

  • Pruebas unitarias automatizadas. Que comprobarán el correcto funcionamiento de cada componente de código de manera individual e integrada y arrojará información del porcentaje de código probado y del estado funcional del código a medida que crece.
  • Análisis de código estático. Enfocado en mejorar la mantenibilidad, seguridad y confiablidad del producto software.
  • Pruebas funcionales y no funcionales automatizadas. Ejecutas desde una interfaz de usuario por el equipo de calidad y necesarias para asegurar la correcta aplicación de los requisitos definidos por el cliente y usuarios expertos una buena parte de estas pruebas puede automatizarse para mantener el sistema en constante prueba a medida que se agregan funcionalidades.

En base a los resultados de las pruebas, se sigue un camino lógico, es decir, si en un nivel de pruebas se encuentran errores, el sistema debe ser revisado para solventar los problemas detectados, en caso de obtener una análisis limpio y sin errores, de manera automática se lanza la publicación del nuevo código a diferentes ambientes definidos para los procesos siguientes, por ejemplo: ambiente de prueba(QA) para reforzar con pruebas manuales o crear un nuevo bloque de pruebas funcionales automatizadas, ambiente UAT para pruebas de confirmación de usuarios expertos e incluso con un proceso bien depurado y efectivo a un ambiente de producción directamente.

Componentes de una integración continua

En conclusión.

Lograr el éxito en la producción de software es hacerlo con calidad y demostrar su buena calidad. Esto sólo es posible con la implantación de todos los actores involucrados y de una metodología para el Aseguramiento de la Calidad del Software directamente relacionado con las políticas establecidas por la organización y el cliente para su elaboración y que esté en correspondencia con la definición internacional de normas de calidad.

Danilo Morales Ortez | QA Leader | Tec. Ingeniería de Software

¿Te gustó? Entonces comparte la publicación: