1 of 28

VERIFICAR LA CALIDAD DEL SOFTWARE DE ACUERDO CON LAS PRÁCTICAS ASOCIADAS EN LOS PROCESOS DE DESARROLLO.

2 of 28

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.

3 of 28

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.

4 of 28

CONTENIDO

  • Importancia de la calidad del software
  • Planificación y diseño
  • Prácticas de desarrollo
  • Control de calidad y pruebas
  • Mejora continua

Esta foto de Autor desconocido está bajo licencia CC BY-NC

5 of 28

CALIDAD DEL SOFTWARE

6 of 28

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.

7 of 28

MANTENIBILIDAD Y ESCALABILIDAD

8 of 28

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.

9 of 28

10 of 28

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.

11 of 28

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

12 of 28

INCORPORACIÓN DE LA RETROALIMENTACIÓN DE LAS PARTES INTERESADAS

13 of 28

14 of 28

USO DE METODOLOGÍAS ÁGILES

15 of 28

USO DE METODOLOGÍAS ÁGILES

16 of 28

USO DE METODOLOGÍAS ÁGILES

17 of 28

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

18 of 28

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.

19 of 28

20 of 28

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.

21 of 28

PRUEBAS AUTOMATIZADAS

22 of 28

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.

23 of 28

24 of 28

BUCLES DE RETROALIMENTACIÓN

25 of 28

RETROSPECTIVAS

26 of 28

INTEGRACIÓN CONTINUA/IMPLEMENTACIÓN CONTINUA (CI/CD)

27 of 28

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

28 of 28

GRACIAS

DACARLOZ@GMAIL.COM