ISO/IEC 29119 y modelos de desarrollo de software: tipos de pruebas y ciclos de vida

Clasificado en Diseño e Ingeniería

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

Resumen

El documento presenta el estándar ISO/IEC 29119 de pruebas de software y sus principales tipos de prueba, junto con conceptos de análisis de impacto y mantenibilidad. También explica el outsourcing, la norma ISO 9001 y los principales modelos de desarrollo de software: cascada, V, espiral, incremental, prototipado e iterativo, con sus ventajas e inconvenientes.

Puntos clave

  • La prueba por unidad puede ser de caja negra (sin conocer la estructura interna) o de caja blanca (analizando la estructura interna).
  • La prueba de integración sirve para detectar errores en las interfaces de los componentes al unirlos.
  • La prueba de regresión somete el software modificado a casos de prueba almacenados previamente.
  • Los tipos de mantenimiento son correctivo, adaptativo y perfectivo.
  • La ISO 9001 define y controla los procesos internos de la empresa, pero no garantiza por sí sola la calidad del producto final.
  • El modelo en cascada es ideal para proyectos de corto plazo con requisitos bien definidos, pero es difícil incorporar nuevas funciones.
  • El modelo en V realiza cada prueba después de la implementación, aunque hace explícita la iteración.
  • El modelo espiral reduce los riesgos del proyecto, pero puede requerir mucho tiempo y resultar costoso.

Resumen generado con IA a partir del documento. Ponte a prueba

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.

Preguntas frecuentes

¿Qué diferencia hay entre pruebas de caja negra y de caja blanca?

Las pruebas de caja negra se realizan sin conocer la estructura interna del componente, mientras que las de caja blanca analizan dicha estructura interna. Ambas buscan situaciones límite que expongan las limitaciones de la implementación.

¿Qué es el mantenimiento adaptativo?

Es el mantenimiento que mantiene operativo un programa mientras se realiza un cambio en el entorno de producción.

¿Cuándo es recomendable el modelo en cascada?

Es ideal para proyectos de corto plazo y con requisitos bien definidos. Su principal inconveniente es que la iteración resulta costosa.

¿La norma ISO 9001 garantiza la calidad del producto?

No. La norma indica que la empresa ha adoptado una organización definida y controlada, pero no garantiza que la calidad del producto final sea buena.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué tipo de prueba comprueba la correcta unión de los componentes del sistema?
2. ¿Qué prueba somete el software modificado a casos de prueba almacenados previamente?
3. ¿Qué tipo de mantenimiento busca mejorar el rendimiento o añadir nuevas funcionalidades?
4. ¿Qué modelo de desarrollo es ideal para proyectos de corto plazo con requisitos bien definidos?
5. ¿Qué modelo reduce los riesgos del proyecto mediante versiones incrementales y puede ser costoso?
6. ¿Qué norma define los procesos internos de una empresa para estandarizarlos y controlarlos?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.