# ISO/IEC 29119

ISO/IEC/IEEE 29119 Ingeniería de software y sistemas -- Pruebas de software es una serie de cinco estándares internacionales para pruebas de software . Desarrollado por primera vez en 2007 y lanzado en 2013, el estándar "define vocabulario, procesos, documentación, técnicas y un modelo de evaluación de procesos para pruebas que se pueden usar dentro de cualquier ciclo de vida de desarrollo de software".

## Historia y revisiones

El desarrollo del conjunto de estándares de prueba de software ISO/IEC/IEEE 29119 comenzó en mayo de 2007, basado en estándares existentes como el Instituto de Ingenieros Eléctricos y Electrónicos IEEE 829 (documentación de prueba) e IEEE 1008 (prueba unitaria); y BS 7925-1 (vocabulario) y -2 (componentes de software) del Grupo BSI .
Al principio, la Organización Internacional para la Estandarización (ISO) no tenía un grupo de trabajo con experiencia significativa en pruebas de software, por lo que la ISO creó el WG26, que para 2011 estaba representado por más de 20 países diferentes. Inicialmente, se desarrollaron cuatro secciones para el estándar: Conceptos y definiciones (1), Procesos de prueba (2), Documentación de prueba (3) y Técnicas de prueba (4). Se consideró agregar una quinta parte relacionada con la evaluación de procesos, que finalmente se convirtió en ISO/IEC 33063:2015, que se relaciona con los procesos de prueba de 29119-2. La quinta parte real de 29119 se publicó en noviembre de 2016 sobre el concepto de prueba basada en palabras clave .
Hasta junio de 2018, no se han realizado revisiones importantes a las cinco partes de la norma. Estas piezas son, de la más reciente a la más antigua:
* ISO/IEC/IEEE 29119-5:2016, Parte 5: Pruebas basadas en palabras clave, publicada en noviembre de 2016
* ISO/IEC/IEEE 29119-4:2015, Parte 4: Técnicas de prueba, publicado en diciembre de 2015
* ISO/IEC/IEEE 29119-3:2013, Parte 3: Documentación de prueba, publicado en septiembre de 2013
* ISO/IEC/IEEE 29119-2:2013, Parte 2: Procesos de prueba, publicado en septiembre de 2013
* ISO/IEC/IEEE 29119-1:2013, Parte 1: Conceptos y definiciones, publicado en septiembre de 2013

## Estructura y contenidos
### ISO/IEC/IEEE 29119-1:2013, Parte 1: Conceptos y definiciones

ISO/IEC/IEEE 29119 Parte 1 facilita el uso de las otras partes del estándar al presentar el vocabulario sobre el cual se construye el estándar y proporciona ejemplos de su aplicación en la práctica. La Parte 1 proporciona definiciones, una descripción de los conceptos de pruebas de software y formas de aplicar estas definiciones y conceptos a las otras partes del estándar.

### ISO/IEC/IEEE 29119-2:2013, Parte 2: Procesos de prueba

La Parte 2 define un modelo de proceso de prueba genérico para las pruebas de software que está destinado a las organizaciones cuando realizan pruebas de software. Comprende descripciones de procesos de prueba que definen los procesos de prueba de software a nivel organizacional, nivel de gestión de prueba (proyecto) y niveles de proceso de prueba dinámica (el WG26 no pudo llegar a un consenso sobre la inclusión de pruebas estáticas). Los procesos definidos en este estándar se pueden utilizar junto con diferentes modelos de ciclo de vida de desarrollo de software.

### ISO/IEC/IEEE 29119-3:2013, Parte 3: Documentación de prueba

Esta parte se ocupa de la documentación de prueba de software e incluye plantillas y ejemplos de documentación de prueba que se producen durante el proceso de prueba. Las plantillas admiten los tres niveles de proceso de prueba principales de la Parte 2, y el estándar también incluye el mapeo a otros estándares existentes.
Los documentos que se definen en ISO/IEC/IEEE 29119-3 son los siguientes:

#### Documentación del proceso de prueba organizacional

    - Política de prueba
    - Estrategia de prueba organizacional

#### Documentación del proceso de gestión de pruebas

    - Plan de prueba (incluida una estrategia de prueba)
    - Estado de la prueba
    - Finalización de la prueba

#### Documentación del proceso de prueba dinámica

    - Especificación de diseño de prueba
    - Especificación del caso de prueba
    - Especificación del procedimiento de prueba
    - Requisitos de datos de prueba
    - Informe de preparación de datos de prueba
    - Requisitos del entorno de prueba
    - Informe de preparación del entorno de prueba
    - Resultados actuales
    - Resultado de la prueba
    - Registro de ejecución de prueba
    - Informe de incidentes de prueba

### ISO/IEC/IEEE 29119-4:2015, Parte 4: Técnicas de prueba

La Parte 4 proporciona definiciones estándar de las técnicas de diseño de pruebas de software (también conocidas como técnicas de diseño de casos de prueba o métodos de prueba ) y las medidas de cobertura correspondientes que se pueden usar durante los procesos de diseño e implementación de pruebas definidos en la Parte 2. Las técnicas de la Parte 4 están destinadas a apoyar o usarse por separado de la Parte 2. Las técnicas de diseño de pruebas del estándar se clasifican en tres categorías principales: técnicas de diseño de pruebas basadas en la especificación, la estructura y la experiencia.

#### Técnicas de diseño de pruebas basadas en especificaciones

Estas técnicas se basan en la especificación (funcional) del sistema bajo prueba . También se les llama técnicas de prueba de caja negra .
Las técnicas de diseño de prueba sugeridas en este grupo son:
* Partición de equivalencia
* Método del árbol de clasificación
* Análisis de valor límite
* Pruebas de sintaxis
* Técnicas de diseño de pruebas combinatorias
* Pruebas de tablas de decisiones
* Gráficos de causa-efecto
* Pruebas de transición de estado
* Prueba de escenario
* Pruebas aleatorias

#### Técnicas de diseño de pruebas basadas en estructuras

Estas técnicas de prueba estructural se basan en la estructura (interna) del sistema bajo prueba. También se les llama técnicas de prueba de caja blanca.
Las técnicas de diseño de prueba sugeridas en este grupo son:
* Pruebas de rama
* Pruebas de decisión
* Pruebas de condición de ramales
* Pruebas de combinación de condiciones de derivación
* Pruebas de Cobertura de Decisión de Condición Modificada (MCDC)
* Pruebas de flujo de datos

#### Técnicas de diseño de pruebas basadas en la experiencia.

Estas técnicas de prueba exploratorias se basan en la experiencia del evaluador humano.
Las técnicas de diseño de prueba sugeridas en este grupo son:
* Adivinando errores

### ISO/IEC/IEEE 29119-5:2016, Parte 5: Pruebas basadas en palabras clave

Este estándar cubre las pruebas basadas en palabras clave, un enfoque para especificar pruebas de software (normalmente automatizadas) utilizadas en la industria de pruebas de software. Este estándar está destinado a usuarios "que desean crear especificaciones de prueba basadas en palabras clave, crear marcos correspondientes o crear automatización de prueba basada en palabras clave".

## Controversia

Tras la introducción de ISO/IEC/IEEE 29119, que culminó en el verano de 2014, algunos probadores de software y organizaciones asociadas comenzaron a hacer llamados para que ISO rescindiera el estándar. Las organizaciones notables que protestaron contra el estándar incluyeron la Asociación para Pruebas de Software y la Sociedad Internacional para Pruebas de Software Algunas razones para la oposición al estándar incluyeron:
* falta de un verdadero consenso de contenido, como lo exige ISO/IEC, entre evaluadores profesionales
* un fuerte enfoque en la documentación restará valor al proceso real de prueba de software
* ISO 29119 es inconsistente con la forma en que las personas trabajan en tareas cognitivamente exigentes, al tiempo que refuerza la forma en que se aferran a prácticas inútiles mientras realizan organizaciones complejas y estresantes
* la norma no tiene en cuenta el trabajo relevante en otros lugares sobre el equilibrio de reglas y principios en la regulación y las normas; el estándar no es claro acerca de los principios que deben regir las pruebas, mientras que es demasiado prescriptivo en cuanto a los detalles, lo que lleva a una confusión de medios y fines
* el estándar excluye efectivamente las pruebas basadas en el contexto
* la estandarización de las pruebas de software en general es innecesaria
* el estándar tiene connotaciones políticas y monetarias y es demasiado prescriptivo, lo que no beneficia a la industria
El Dr. Stuart Reid, coordinador del WG26, respondió a algunos de estos y otros puntos de vista opuestos en septiembre de 2014, aunque no está claro si el WG26 tomó alguna otra medida debido a las quejas de los probadores de software.