ISO/IEC 29119

ISO/IEC/IEEE 29119 Ingeniería de software y sistemas -- Pruebas de software [1]​ es una serie de cinco estándares internacionales para pruebas de software . Desarrollado por primera vez en 2007[2]​ 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".[3]

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 .[2][4]

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.[2]​ 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).[2]​ 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.[2][5]​ La quinta parte real de 29119 se publicó en noviembre de 2016 sobre el concepto de prueba basada en palabras clave .[6]

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[6]
  • ISO/IEC/IEEE 29119-4:2015, Parte 4: Técnicas de prueba, publicado en diciembre de 2015[7]
  • ISO/IEC/IEEE 29119-3:2013, Parte 3: Documentación de prueba, publicado en septiembre de 2013[8]
  • ISO/IEC/IEEE 29119-2:2013, Parte 2: Procesos de prueba, publicado en septiembre de 2013[9]
  • ISO/IEC/IEEE 29119-1:2013, Parte 1: Conceptos y definiciones, publicado en septiembre de 2013[1]

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.[4]​ 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.[1]

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).[2][3][10]​ Los procesos definidos en este estándar se pueden utilizar junto con diferentes modelos de ciclo de vida de desarrollo de software.[9]

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.[2][8]

Los documentos que se definen en ISO/IEC/IEEE 29119-3 son los siguientes:[2][4]

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.[7]​ 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.[2][11]

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:[12][13]

  • 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:[2][11]

  • 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:[11]

  • 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.[14]​ 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".[6]

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.[15][16][17][18][19][20][21]​ Las organizaciones notables que protestaron contra el estándar incluyeron la Asociación para Pruebas de Software[20]​ y la Sociedad Internacional para Pruebas de Software[22]​ 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[15][22][17][18]
  • un fuerte enfoque en la documentación restará valor al proceso real de prueba de software[15][16][20]
  • 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[21]
  • 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[21]
  • el estándar excluye efectivamente las pruebas basadas en el contexto[18][19]
  • la estandarización de las pruebas de software en general es innecesaria[17][20]
  • el estándar tiene connotaciones políticas y monetarias y es demasiado prescriptivo, lo que no beneficia a la industria[15][19][20]

El Dr. Stuart Reid, coordinador del WG26, respondió a algunos de estos y otros puntos de vista opuestos en septiembre de 2014,[23]​ aunque no está claro si el WG26 tomó alguna otra medida debido a las quejas de los probadores de software.

Referencias

  1. a b c «ISO/IEC/IEEE 29119-1:2013». Standards catalogue. International Organization for Standardization. September 2013. Consultado el 24 de junio de 2018. 
  2. a b c d e f g h i j Reid, S. (2012). «The New Software Testing Standard». En Dale, C.; Anderson, T., eds. Achieving Systems Safety: Proceedings of the Twentieth Safety-Critical Systems Symposium, Bristol, UK, 7-9th February 2012. Springer Science & Business Media. pp. 237-56. ISBN 9781447124948. 
  3. a b Shoemaker, D.; Sigler, K. (2014). «Chapter 6: Software Impelementation Process Group». Cybersecurity: Engineering a Secure Information Technology Organization. Cengage Learning. pp. 117-34. ISBN 9781305443471. 
  4. a b c Pröll, R.; Bauer, B. (2018). «Toward a Consistent and Strictly Model-Based Interpretation of the ISO/IEC/IEEE 29119 for Early Testing Activities». Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development (MODELSWARD 2018): 699-706. ISBN 978-989-758-283-7. doi:10.5220/0006749606990706. 
  5. «ISO/IEC 33063:2015». Standards catalogue. International Organization for Standardization. August 2015. Consultado el 24 de junio de 2018. 
  6. a b c «ISO/IEC/IEEE 29119-5:2016». Standards catalogue. International Organization for Standardization. November 2016. Consultado el 24 de junio de 2018. 
  7. a b «ISO/IEC/IEEE 29119-4:2015». Standards catalogue. International Organization for Standardization. December 2015. Consultado el 24 de junio de 2018. 
  8. a b «ISO/IEC/IEEE 29119-3:2013». Standards catalogue. International Organization for Standardization. September 2013. Consultado el 24 de junio de 2018. 
  9. a b «ISO/IEC/IEEE 29119-2:2013». Standards catalogue. International Organization for Standardization. September 2013. Consultado el 24 de junio de 2018. 
  10. Kasurinen, J.; Runeson, P.; Riungu, L. (2011). «A Self-assessment Framework for Finding Improvement Objectives with ISO/IEC 29119 Test Standard». En Connor, R.V.; Pries-Heje, J.; Messnarz, R., eds. Systems, Software and Services Process Improvement: 18th European Conference, EuroSPI 2011, Roskilde, Denmark, June 27-29, 2011, Proceedings. Springer Science & Business Media. pp. 25-36. ISBN 9783642222054. 
  11. a b c «ISO/IEC/IEEE 29119-4:2015-12 (E) Table of Contents». Normenausschuss Informationstechnik und Anwendungen (NIA). Deutsches Institut für Normung e. V. Consultado el 24 de junio de 2018. 
  12. Reid, S. (2012). «The New Software Testing Standard». En Dale, C.; Anderson, T., eds. Achieving Systems Safety: Proceedings of the Twentieth Safety-Critical Systems Symposium, Bristol, UK, 7-9th February 2012. Springer Science & Business Media. pp. 237-56. ISBN 9781447124948. 
  13. «ISO/IEC/IEEE 29119-4:2015-12 (E) Table of Contents». Normenausschuss Informationstechnik und Anwendungen (NIA). Deutsches Institut für Normung e. V. Consultado el 24 de junio de 2018. 
  14. Faught, D.R. (5 de noviembre de 2004). «Keyword-Driven Testing». StickyMinds. TechWell Corp. Consultado el 24 de junio de 2018. 
  15. a b c d Krill, P. (22 de agosto de 2014). «Software testers balk at ISO 29119 standards proposal». InfoWorld. IDG Communications, Inc. Consultado el 24 de junio de 2018. 
  16. a b Demman, J. (9 de septiembre de 2014). «Software testers petition to stop ISO 29119». TechTarget SearchSoftwareQuality. TechTarget, Inc. Consultado el 24 de junio de 2018. 
  17. a b c McCowatt, I. (24 de agosto de 2014). «STOP 29119». Exploring Uncertainty: A Software Testing Blog. Consultado el 24 de junio de 2018. 
  18. a b c Bach, J. (25 de agosto de 2014). «How Not to Standardize Testing (ISO 29119)». Satisfice Blog. Satisfice, Inc. Consultado el 24 de junio de 2018. 
  19. a b c Kaner, C. (28 de agosto de 2014). «Please sign the Petition to Stop ISO 29119». context-driven-testing.com. Consultado el 24 de junio de 2018. 
  20. a b c d e «The ISO29119 debate». Association for Software Testing. 5 de septiembre de 2014. Consultado el 24 de junio de 2018. 
  21. a b c Christie, J. (28 de agosto de 2015). «Why ISO 29119 Is a Flawed Quality Standard». Better Software Magazine. Consultado el 23 de julio de 2018. 
  22. a b «Petition against ISO 29119». International Society for Software Testing. 19 de agosto de 2014. Archivado desde el original el 8 de febrero de 2017. Consultado el 24 de junio de 2018. 
  23. Marnane, T. (10 de septiembre de 2014). «Response to Stop 29119 Petition». SoftwareTestingStandard.org. Archivado desde el original el 16 de febrero de 2020. Consultado el 24 de junio de 2018.