Norma ISO/IEC 29119 y Metodologías de Desarrollo de Software: Claves y Comparativa

Clasificado en Diseño e Ingeniería

Escrito el en español con un tamaño de 5,29 KB

Estándar ISO/IEC 29119: Pruebas de Software

El estándar ISO/IEC 29119 para pruebas de software es un referente internacional en el ámbito de las pruebas de software. Su objetivo principal es eliminar las inconsistencias existentes entre las normas actuales. Las pruebas al sistema son un paso obligatorio en la mantención del sistema antes de su puesta en producción.

Tipos de Pruebas de Software

  • Prueba por unidad: Comprueba el correcto funcionamiento de un componente concreto o específico del sistema. Busca situaciones límite que expongan las limitaciones de la implementación del componente, ya sea mediante "pruebas de caja negra" (sin conocer la estructura interna) o "pruebas de caja blanca" (analizando la estructura interna).
  • Prueba de integración: Se realizan cuando se juntan o unen los componentes que conforman el sistema. Sirven para detectar errores en sus interfaces.
  • Prueba de aceptación: Los datos utilizados en esta prueba se añadirán a la documentación de la versión del sistema.
  • Prueba de regresión: Se somete el software modificado a casos de prueba previamente almacenados y por los que ya pasó.
  • Pruebas de validación: El objetivo es comprobar que el producto desarrollado cumple con lo establecido en el documento de requisitos y satisface las necesidades de los usuarios.

Análisis de Impacto y Mantenibilidad

  • Análisis de impacto: Analiza cómo afecta el nuevo sistema a la empresa. El impacto económico es el más relevante, pudiendo llegar hasta cuatro veces su costo inicial.
  • Mantenibilidad:
    • Correctivo: Localiza y elimina los posibles defectos de los programas.
    • Mantenimiento de emergencia (dentro del correctivo): Se realiza sin planificación previa para mantener operativo el sistema.
    • Adaptativo: Mantiene operativo un programa mientras se realiza un cambio en el entorno de producción.
    • Perfectivo: Conjunto de actividades para mejorar el rendimiento del software o añadir nuevas funcionalidades requeridas por el usuario.

Outsourcing

El outsourcing consiste en que una empresa contrata a otra empresa o firma externa especializada en un área o servicio determinado, para desarrollar algún servicio en la cual la empresa contratante no se especializa.

Norma ISO 9001

La ISO 9001 es una normativa de cumplimiento opcional para el aseguramiento de la calidad en las empresas. Define los procesos internos para estandarizarlos y controlarlos. Es de carácter genérico. El cumplimiento de la norma ISO 9001 no garantiza que la calidad del producto final sea buena, sino que la empresa ha adoptado una organización definida y controlada.

Modelos de Desarrollo de Software

Modelo en Cascada

Trabaja metódicamente, ordenando rigurosamente las etapas del ciclo de vida del software. El inicio de cada etapa debe esperar la finalización de la anterior. Es ideal para proyectos de corto plazo y con requisitos bien definidos. Sin embargo, la iteración es costosa, los problemas se corrigen después de la etapa final y puede que el software no cumpla con todos los requisitos. Es difícil incorporar nuevas funciones.

Modelo en V

En cada nivel del desarrollo existe, de forma paralela, una fase de verificación y otra de validación. En el brazo izquierdo de la V, se especifican los requisitos del servicio. En el brazo derecho, se indican las pruebas para comprobar cada especificación. Hace explícita la iteración, pero cada prueba se realiza después de la implementación.

Modelo Espiral

El software se desarrolla en una serie de versiones incrementales. Se adapta y aplica a lo largo de la vida del software. Permite la construcción de prototipos en cualquier etapa. Reduce los riesgos del proyecto, pero puede generar mucho tiempo de desarrollo y resultar costoso.

Modelo Incremental

Reduce las repeticiones de trabajo y permite retrasar la toma de decisiones sobre los requisitos. Evita proyectos largos y entrega avances a los usuarios con frecuencia, involucrándolos más. No es recomendable para sistemas de tiempo real, de alta seguridad, de procesamiento distribuido o con alto índice de riesgos.

Modelo de Prototipado

Permite que el sistema, o partes de él, se construyan rápidamente para comprender y aclarar aspectos, asegurando que el desarrollador, el usuario y el cliente estén de acuerdo. Es útil cuando se conocen los objetivos generales, pero no los requisitos detallados. Los usuarios suelen enfocarse en aspectos superficiales del prototipo.

Modelo Iterativo

Busca reducir el riesgo derivado de malentendidos en la etapa de recogida de requisitos. Al final de cada iteración, se entrega al cliente una versión mejorada o con mayores funcionalidades.

Procesos

Las fases dividen el ciclo de vida del producto de programación en una serie de actividades sucesivas. Cada fase requiere información de entrada, procesos y resultados bien definidos. Se necesitan recursos para completar los procesos de cada fase.

Entradas relacionadas: