VERIFICAR LA CALIDAD DEL SOFTWARE DE ACUERDO CON LAS PRÁCTICAS ASOCIADAS EN LOS PROCESOS DE DESARROLLO.
CALIDAD DEL SOFTWARE
La calidad del software es un factor clave para garantizar productos confiables, seguros y mantenibles. El cual se requiere de comprensión y aplicación de prácticas, métodos y herramientas para verificar la calidad del software durante su ciclo de vida (Planificación, Análisis, Diseño, Codificación (Desarrollo), Pruebas, Implementación y Mantenimiento), alineándose con los procesos de desarrollo de software.
OBJETIVO GENERAL
Desarrollar en el aprendiz las competencias necesarias para verificar la calidad del software mediante la aplicación de buenas prácticas, estándares, técnicas de prueba y herramientas utilizadas en los procesos de desarrollo.
CONTENIDO
CALIDAD DEL SOFTWARE
FIABILIDAD Y EFICIENCIA
Fiabilidad
Garantizar que el software funcione de manera consistente bajo condiciones específicas.
Eficiencia
Asegurar que los recursos del sistema sean utilizados de manera óptima.
Impacto en usuarios
Minimizar los errores y brindar una experiencia satisfactoria para los usuarios finales.
MANTENIBILIDAD Y ESCALABILIDAD
SATISFACCIÓN DE LAS PARTES INTERESADAS
Enfoque en el usuario
Incorporar retroalimentación de usuarios durante el desarrollo para garantizar que el software cumpla con sus necesidades específicas.
Confianza
Entregar un producto final confiable y funcional que refuerce la imagen de la empresa y la satisfacción de los clientes.
Cumplimiento de expectativas
Garantizar que el software cumpla con los requisitos del cliente, tanto a nivel funcional como en términos de experiencia de uso.
Formular requisitos comprensibles y detallados, minimizando ambigüedades que puedan generar errores de interpretación durante el desarrollo.
Clasificar los requisitos según su importancia para optimizar la asignación de recursos y cumplir con plazos críticos.
Realizar talleres o reuniones frecuentes para asegurar que todos los miembros del equipo comprendan los requisitos de manera uniforme.
Escalabilidad
Estándares
Modularidad
Desarrollar sistemas que puedan crecer según la demanda sin comprometer el rendimiento; utilizar patrones como microservicios.
Diseñar componentes independientes que sean fáciles de mantener y actualizar sin afectar otros elementos del sistema.
Aplicar patrones reconocidos, como MVC para aplicaciones web, que garantizan estructura y claridad en el flujo de trabajo.
Diseño arquitectónico sólido
INCORPORACIÓN DE LA RETROALIMENTACIÓN DE LAS PARTES INTERESADAS
USO DE METODOLOGÍAS ÁGILES�
USO DE METODOLOGÍAS ÁGILES�
USO DE METODOLOGÍAS ÁGILES�
Rastreo de cambios
Herramientas como Git permiten mantener un historial detallado de modificaciones, facilitando la identificación de errores y restauración de versiones anteriores en caso necesario.
Colaboración efectiva
Con flujos de trabajo como ramas y pull requests, los equipos pueden desarrollar en paralelo, fusionando código de manera ordenada y evitando conflictos innecesarios.
Gestión de versiones
El control de versiones garantiza que cada ciclo de desarrollo tenga un seguimiento claro, manteniendo organizado el producto según las fases o lanzamientos.
Sistemas de control de versiones
ESTÁNDARES DE CÓDIGO LIMPIO
Legibilidad
Escribir código claro, con nombres descriptivos y buena organización, facilita la comprensión y colaboración entre los desarrolladores.
Herramientas de Análisis
Utilizar herramientas como SonarQube ayuda a detectar problemas de calidad en el código, como errores ocultos o vulnerabilidades, promoviendo la mejora continua.
Uniformidad
Aplicar estándares unificados entre los miembros del equipo reduce las discrepancias y mejora la mantenibilidad del software a largo plazo.
Documentación del código
Incluir comentarios claros y concisos asegura que incluso los desarrolladores que no participaron en la creación inicial puedan comprender y trabajar fácilmente con el código.
Detección de errores
Realizar revisiones sistemáticas entre pares permite identificar bugs y problemas en las primeras etapas del desarrollo.
Mejora colaborativa
Las revisiones fomentan la discusión constructiva entre los desarrolladores, compartiendo mejores prácticas y sugerencias.
Estándares unificados
Garantiza que el código cumple con los estándares establecidos, mejorando la consistencia y la mantenibilidad a largo plazo.
PRUEBAS AUTOMATIZADAS
PRUEBAS DE RENDIMIENTO Y SEGURIDAD�
Rendimiento óptimo
Realizar pruebas de carga y estrés evalúa cómo el software responde bajo diferentes niveles de demanda, asegurando su estabilidad y capacidad.
Identificación de vulnerabilidades
Las pruebas de seguridad ayudan a descubrir brechas como inyecciones SQL, accesos no autorizados o fallos en la gestión de datos sensibles.
Cumplimiento regulatorio
Estas pruebas garantizan que el software cumple con normativas y estándares de seguridad requeridos en su industria.
Monitoreo y ajustes
Los resultados de estas pruebas permiten realizar optimizaciones continuas para garantizar un funcionamiento confiable y seguro.
BUCLES DE RETROALIMENTACIÓN
RETROSPECTIVAS
INTEGRACIÓN CONTINUA/IMPLEMENTACIÓN CONTINUA (CI/CD)�
Enfoque / Modelo | Descripción | Norma o Referencia clave |
Calidad a nivel de proceso | Evalúa cada fase del ciclo de vida del desarrollo (análisis, diseño, implementación, pruebas, mantenimiento) con el objetivo de minimizar riesgos, garantizar la eficiencia operativa y asegurar la calidad antes de llegar al producto final. | ISO/IEC 15504 (SPICE) |
Calidad a nivel de producto | Se centra en los atributos internos y externos del software —como corrección, confiabilidad, eficiencia, usabilidad, mantenibilidad, portabilidad e interoperabilidad— para garantizar un desempeño técnico óptimo. | Modelo McCall (1977) |
Calidad de uso | Analiza la experiencia real del usuario, evaluando la eficacia, productividad, seguridad y satisfacción durante la interacción con el software. | ISO/IEC 25010 – Enfoque basado en atributos de uso |
Calidad organizacional | Busca madurar los procesos y capacidades de toda la organización para lograr resultados predecibles, sostenibles y alineados con los objetivos estratégicos del negocio. Fomenta la mejora continua y la gestión de la calidad a nivel institucional. | CMMI (Capability Maturity Model Integration) / TMMi (Test Maturity Model Integration) |
NORMAS DE MODELOS DE CALIDAD DEL SOFTWARE
GRACIAS
DACARLOZ@GMAIL.COM