Cómo Medimos la Calidad del Software
Antes de poder entregar un producto de software, necesitamos medir su calidad para asegurarnos de que esté tan libre de errores como sea posible. Sin embargo, para hacer esto, primero necesitamos saber con qué métricas de calidad de software estamos midiendo.
¿Cuáles son las Métricas para Medir la Calidad del Software?
Las métricas para medir la calidad del software pueden ser extremadamente técnicas, pero se pueden resumir en las siguientes cuatro categorías esenciales:
- Calidad de código
- Rendimiento
- Seguridad
- Usabilidad
Calidad de código
El código correcto semánticamente y sin errores es muy importante para el software premium. Los estándares de calidad del código se pueden dividir en métricas cuantitativas y cualitativas. Las métricas cuantitativas de calidad miden el tamaño o la complejidad del programa de software, el número de líneas y funciones que contiene, cuántos errores hay por cada 1000 líneas de código y más. Las métricas cualitativas de calidad de código miden características como la capacidad de mantenimiento, la legibilidad, la claridad, la eficiencia y la documentación. Estas métricas miden cuán fácil es leer y comprender el código y si está escrito de acuerdo con los estándares de codificación.
Rendimiento
Cada programa de software está diseñado para un propósito. Las métricas de rendimiento miden si el producto cumple con su propósito y si funciona de la manera en que está destinado. También se refiere a cómo la aplicación utiliza los recursos, su escalabilidad, la satisfacción del cliente y los tiempos de respuesta.
Seguridad
Las métricas de seguridad de software miden la seguridad inherente de un programa de software y garantizan que no haya cambios no autorizados en el producto cuando se entrega al cliente.
Usabilidad
Dado que todos los productos de software están diseñados para un usuario final, una métrica de calidad importante es si el programa es viable y fácil de usar. También nos aseguramos de que el cliente esté satisfecho con las características y el rendimiento.
¿Cuándo Medimos La Calidad Del Software?
Nuestro equipo de desarrollo de software y el equipo de Control de Calidad (QA) trabajan juntos para garantizar que la calidad del software sea del más alto nivel. El equipo de control de calidad realiza pruebas de productos, una vez desarrollados. Sin embargo, el equipo de desarrollo también mantiene, mide y mejora constantemente la calidad del software durante la compilación. Sin embargo, si bien mantenemos la calidad del software en todas las etapas de desarrollo, podemos probarlos en diferentes puntos del desarrollo, según la metodología de desarrollo utilizada. Utilizamos dos metodologías al desarrollar aplicaciones de software: Cascada y Ágil. Dado que las dos metodologías entregan el producto de diferentes maneras, también se prueban de manera diferente.
Medición de la calidad del software: Metodología en cascada
La metodología en cascada es cuando planificamos, ejecutamos, probamos y entregamos en fases distintas. Cada fase se completa antes de que comience la siguiente. Como resultado, con un producto desarrollado utilizando esta metodología, necesitamos mantener la calidad del producto en cada etapa: requisitos, diseño, implementación, verificación (o prueba) y mantenimiento. Dado que la prueba se realiza al final de la compilación, lleva menos tiempo y no requiere muchas pruebas de regresión.
Medición de la calidad del software: Ágil
Las metodologías ágiles son más receptivas y flexibles, donde el desarrollo se divide en fases o sprints. El objetivo es que al final de cada sprint, que puede durar entre dos y seis semanas, entreguemos un producto mínimo viable de alta calidad que sea completamente funcional y probado. Esto significa que tenemos que asegurarnos de mantener la calidad del software del producto en cada paso, en cada sprint. Los productos desarrollados utilizando las metodologías ágiles se prueban con más frecuencia. Sin embargo, también significa que necesitan pruebas de regresión constantes para asegurarse de que una actualización no ha roto las funcionalidades que se probaron y pasaron en compilaciones anteriores.
¿Cómo mantienen los Desarrolladores la Calidad del Código del Software?
Un buen desarrollador es aquel que puede entregar código de software de alta calidad con errores mínimos. Decimos ‘mínimo’ porque, durante el desarrollo, algunos errores son inevitables y lo que importa es cómo los arreglamos o controlamos. Es por eso que los desarrolladores miden la calidad de su código a medida que se desarrollan, ya que significa que pueden identificar y solucionar cualquier problema durante la compilación. Miden su código contra estándares de codificación, revisiones de código, analizadores de código y código heredado de refractores.
En esta etapa, la calidad del software se prueba manualmente con pruebas unitarias cortas. Una prueba unitaria es la primera etapa de la medición de la calidad del software, en la que se comprueba la parte más pequeña comprobable del software, un módulo o componente del programa o incluso una sola función dentro del código.
Por ejemplo, puede haber una serie de campos de datos que deben completarse como parte de un software más grande. Una prueba unitaria podría simplemente probar el primer campo y no los otros, o de hecho cualquier otra parte del programa de software.
Los desarrolladores crean una biblioteca compartida de cientos de pruebas de este tipo, con funcionalidad repetible incorporada en el software, por lo que estas pruebas se pueden usar una y otra vez, en todos los proyectos para detectar errores en el código del software en la etapa de desarrollo. También realizan pruebas automatizadas utilizando un analizador de código, SonarQube, que comprueba el software para:
- Claridad
- Capacidad de mantenimiento
- Documentación
- Extensibilidad
- Eficiencia
- Bien probada
- Codificación segura
- Refactorización de código
- Extensibilidad
Nos ayuda:
- Revisiones de código de conducta
- Mantener estándares de codificación
- Identificar errores y el número de errores potenciales en el software
También lo usamos para evaluar:
- La complejidad estructural del programa (número de líneas de código)
- Cualquier vulnerabilidad encontrada en repositorios
- Olores de código (código que es confuso o difícil de mantener)
- Cobertura de código (medida de código cubierta por pruebas unitarias)
- Duplicación de código (cantidad de código que se repite)
¿Cómo Mide el Equipo de Control de Calidad la Calidad del Software?
Los evaluadores de control de calidad revisan todas las métricas de calidad del software a través de pruebas manuales y automatizadas (utilizando Selenio), incluida la validez y el estándar del código del producto. Las métricas de prueba manuales se pueden dividir en dos clases: métricas base y Métricas calculadas. Las métricas base se componen de los datos sin analizar que se recopilan, mientras que las métricas calculadas se derivan de la información recopilada en las métricas base.
Métricas de prueba manuales
Algunas de las métricas de prueba manuales importantes que consideramos para la calidad del software son:
- Métricas de productividad de ejecución de casos de prueba
- Métricas de productividad de preparación de casos de prueba
- Duración de la prueba
- Cobertura de pruebas unitarias (la cantidad de código de software que cubre las pruebas unitarias)
- Porcentaje de pruebas aprobadas/no aprobadas, etc.
Métricas de prueba de automatización
Las pruebas de automatización pueden ayudar a reducir la cantidad de tiempo manual dedicado a probar la calidad del software. Estas son algunas de las métricas importantes para las pruebas de automatización que consideramos:
- Duración total de la prueba
- Cobertura de prueba unitaria
- Cobertura de ruta (cuántas rutas linealmente independientes del programa cubre la prueba)
- Cobertura de requisitos
- Porcentaje de aprobados/reprobados de las pruebas
- Número de defectos
- Ejecución de prueba (pruebas totales ejecutadas durante la compilación)
- Resultados útiles vs.irrelevantes
- Defectos en la producción
- Porcentaje de compilaciones rotas, etc.
Otros tipos de Pruebas para Medir la Calidad del software
También utilizamos varios tipos de pruebas para medir la calidad del software. Estos son:
- Pruebas funcionales
- Prueba para romper
- Pruebas de rendimiento de carga
- Pruebas de regresión
- Pruebas de seguridad
- Pruebas de penetración
- Pruebas de aceptación del usuario