Descargar

Herramienta para gestión de pruebas basada en el estándar ISO/IEC 29119

Enviado por José Páez


  1. Resumen
  2. Introducción
  3. Fundamentación teórica
  4. Desarrollo de la herramienta SGP
  5. Resultados obtenidos
  6. Trabajos relacionados
  7. Conclusiones y recomendaciones
  8. Referencias

Resumen

Las pruebas de software son un elemento imprescindible y crítico para la validación de un producto de software. Es por esto que las pruebas de software deben apoyarse en estándares que revisan los aspectos fundamentales que debe considerar todo proceso de pruebas. Ante estos problemas, el estándar ISO/IEC 29119 para pruebas de software es un referente internacional en el ámbito de las pruebas software y permite eliminar las inconsistencias existentes entre las normas actuales. La presente investigación propone la sistematización de la gestión de pruebas de software utilizando como base este estándar internacional, para lo cual se propone una herramienta que aportará a la mejora de la calidad de un producto software, al evaluar el proceso de pruebas y apoyar la toma de decisiones oportunas.

PALABRAS CLAVE

ISO/IEC 29119, Pruebas de Software, Casos de Prueba, Herramienta de Gestión de Casos de Prueba

ABSTRACT

Software testing is an essential and critical element for the validation of a software product. This is why software testing must be supported on standards that review key aspects to consider throughout the testing process. Given these problems, the standard ISO / IEC 29119 for software testing is an international reference in the field of software testing and eliminates the inconsistencies between existing standards. This research proposes the systematization of the software testing management processes using as a basis this international standard, for which we propose a tool that will contribute to improve the quality of a software product, to evaluate the testing process and support timely decision-making.

KEYWORDS

ISO/IEC 29119, Software testing, Test Cases, Tool Test Case Management

Introducción

Las pruebas de software son un elemento imprescindible y crítico para la validación de un producto de software [6]. En la actualidad las pruebas de software se hacen más complicadas ya que deben hacer frente a una gran cantidad de metodologías de desarrollo, lenguajes de programación, sistemas operativos, hardware, etc.

Es por esto que las pruebas de software deben apoyarse en estándares que revisan los aspectos fundamentales que debe considerar todo proceso de pruebas. Debido a esta complejidad actualmente se cuentan con una gran cantidad de software diseñado exclusivamente para la etapa de pruebas pero que no abarca todo el ciclo de vida [6].

Ante estos problemas el estándar ISO/IEC 29119 para pruebas de software es un referente internacional en el ámbito de las pruebas software y permite eliminar las inconsistencias existentes entre las normas actuales, así como cubrir aquellas áreas del proceso de pruebas de software que simplemente no habían sido tratadas hasta ahora en el resto de normas publicadas.

La presente investigación propone el desarrollo de una herramienta que sistematice el estándar ISO/IEC 29119 [8], que cubrirá el ciclo de vida completo, a través del análisis, diseño, implementación y mantenimiento de las pruebas software. La herramienta desarrollada se llama Sistema de Gestión de Pruebas, en adelante SGP, y pretende ser un aporte en la ingeniería de software para obtener productos con mayor grado de aseguramiento de su calidad [1].

Entre las principales contribuciones de esta investigación se puede citar: la sistematización de un estándar internacional para pruebas de software en una herramienta de gestión de pruebas, la mejora de la calidad de un producto software, el apoyo a la toma de decisiones oportunas. Además, permite identificar la fase más crítica del desarrollo y la de mayor cuidado para futuros proyectos.

Fundamentación teórica

2.1 DEFINICIONES PRELIMINARES

La prueba es una actividad fundamental en los procesos de desarrollo de software. De manera general, se puede decir que la prueba de software permite al desarrollador determinar si el producto generado satisface las especificaciones establecidas. Así mismo, una prueba de software permite detectar la presencia de errores que pudieran generar salidas o comportamientos inapropiados durante su ejecución [1].

En un ciclo de prueba se puede ejecutar una, alguna o todas las pruebas planificadas para el producto de software. Uno de los principales desafíos desde el punto de vista de la prueba es estimar cuantos ciclos de pruebas se requieren, esta consideración la realiza la persona encargada de ejecutar la prueba [4].

2.2 VISIÓN GENERAL DEL ESTÁNDAR ISO/IEC 29119

Son varias las normas que las principales organizaciones internacionales de normalización (ISO, IEEE, BSI, etc.) han publicado relacionadas directa o indirectamente con las pruebas de software. En mayo de 2007, ISO crea un grupo de trabajo para desarrollar el estándar ISO/IEC 29119, cuyo objetivo es ser un estándar definitivo sobre pruebas software, que recoja y estandarice el vocabulario, los procesos, técnicas de documentación, etc., del ciclo de vida de las pruebas.

Éste estándar pretende recopilar la terminología, procesos, documentación y técnicas para todo el ciclo de vida de pruebas en el software. La ISO 29119 se compone de cuatro partes. Ver Figura 1.

edu.red

Figura 1. Estructura de ISO/IEC 29119

Parte 1: Definiciones y Vocabulario

Da una visión general de la norma y de los conceptos generales de pruebas de software y para proporcionar un vocabulario de términos de pruebas de software que cubren las pruebas de software de todo el ciclo de vida.

Se prevé que esta parte se incluyan los siguientes temas:

  • Introducción a las pruebas de software

  • Pruebas de software en un contexto organizativo

  • El proceso de prueba

  • La relación entre las pruebas y el desarrollo

  • Implicaciones de los modelos de ciclo de vida de desarrollo software (por ejemplo, cascada, espiral, ágil)

  • Tipos de pruebas, pruebas técnicas y fases/niveles de prueba

  • Pruebas basadas en el Riesgo

  • Elementos de Pruebas

  • Requisitos de verificación del sistema

  • Requisitos de validación del sistema

Parte 2: Proceso de Pruebas

Define un modelo de proceso de pruebas genérico que se puede utilizar dentro de cualquier desarrollo de software y pruebas de ciclo de vida. Dicho modelo de procesos tal está formado por tres niveles:

  • Procesos de la organización

  • Procesos de gestión

  • Procesos "fundamentales"

En el nivel superior se encuentran los procesos de la organización, que no son específicos de un determinado proyecto de pruebas. Permiten definir las políticas y estrategias aplicables a toda la organización o a una línea de proyectos [9].

Para un proyecto de pruebas se tienen los niveles de procesos de gestión y procesos "fundamentales". Se define un conjunto de procesos de gestión genéricos para permitir flexibilidad y adaptación a diferentes contextos. Estos procesos son la planificación, monitorización y control, y finalización de las pruebas. Los diferentes procesos de gestión se podrán instanciar en uno o en varios dependiendo de la situación. Por ejemplo, en un proyecto simple puede existir solamente un plan de pruebas global (una sola instancia). En un proyecto más complejo puede existir un plan maestro y otros planes subordinados a éste para cubrir diferentes niveles de prueba (por ejemplo, pruebas de integración, sistema o aceptación) o diferentes tipos de prueba. Cada uno de ellos sería una instancia del proceso de gestión.

Los procesos fundamentales abarcan los aspectos técnicos de las pruebas: diseño e implementación, puesta a punto del entorno, ejecución de pruebas y la notificación de resultados de las pruebas. También se incluirán variantes de los procesos para contemplar tanto pruebas dinámicas como estáticas.

Parte 3: Documentación de Pruebas

Cubre la documentación de las pruebas a través del ciclo de vida completo del software. Esta parte contendrá plantillas de todas las capas del modelo de proceso 29119, incluyendo:

  • Política organizacional del Proceso de prueba

  • Estrategia organizacional del Proceso de prueba

  • Proyecto de Gestión del Proceso de prueba

  • Proceso de pruebas fundamentales

Parte 4: Técnicas de Pruebas

Cubre las técnicas de pruebas del software a través de todos los tipos de pruebas, incluyendo estáticas (por ejemplo: revisiones, inspecciones, tutoriales), funcionales (por ejemplo: caja negra, caja blanca), no funcionales (por ejemplo: funcionamiento, seguridad, utilidad) y basadas en experiencia (por ejemplo: cálculo de error, experimental).

Adicionalmente, se está elaborando una Parte 5 Evaluación del Proceso, que será nombrada ISO/IEC 29119-5. La Figura 2 ilustra la relación de los procesos definidos en el estándar.

edu.red

Figura 2. Procesos de ISO/IEC 29119

Desarrollo de la herramienta SGP

La presente investigación requiere un importante nivel de abstracción, y por lo tanto debe ser lo suficientemente flexible para satisfacer los requerimientos en el desarrollo de SGP.

3.1 ANÁLISIS

Después de definidos los requerimientos automatizables y no automatizables, estructura, alcance, funcionalidades y usuarios para el desarrollo del sistema SGP, con la guía de la Norma ISO/IEC 29119, es necesario definir estos requerimientos en diagramas de Casos de Uso para cada uno de los usuarios, de esta forma las actividades de cada participante en el sistema serán más claras y entendibles.

3.2 DISEÑO

Para este proyecto se va a utilizar una arquitectura WEB basada en una arquitectura de aplicaciones de tres capas, en donde se separa la presentación, la lógica del negocio y el acceso a los datos. El sistema SGP ha sido diseñado para ser sencillo de utilizar y amigable, ya que requerirá tener únicamente conocimientos básicos para poderlo operar. Para el desarrollo se utilizó los siguientes lenguajes y herramientas:

  • PHP (Hypertext Preprocessor)

  • HTML (Hyper Text Markup Language)

  • Javascript (Lenguaje ejecutado en el navegador del cliente)

  • MySql (Base de datos)

  • Apache (Servidor web)

  • PhpMyAdmin (Administrador de la base de datos)

  • JQuery (Herramienta para desarrollo de interfaces web)

  • GeyBox (Permite cargar en una ventana emergente diferentes enlaces)

3.3 IMPLEMENTACIÓN

La implementación del sistema desarrollado, necesita tener levantado un servidor web, una base de datos, un servidor FTP, y conexión a Internet. Se contrató un servicio de Hosting con las características especificadas para alojar las páginas dinámicas y la base de datos. Utiliza un navegador estándar porque la tecnología que se ha utilizado para las aplicaciones es HTML, DHTML, CSS y Javascript. Ver Figuras 3, 4, 5.

edu.red

Figura 3. Interfaz del Proceso de Gestión de Pruebas de SGP

edu.red

Figura 4. Interfaz de Monitoreo y Control de SGP

edu.red

Figura 4. Interfaz de Seguimiento y evaluación de SGP.

Resultados obtenidos

Luego del desarrollo del software para gestión de pruebas del software en base al estándar ISO/IEC 29119, se preveen los siguientes resultados.

  • Automatización en la gestión del proceso de pruebas.

  • Mayor confiabilidad en el estado de pruebas del proyecto.

  • Aumento de la calidad en el producto de software final.

  • Rapidez en la toma de decisiones.

  • Identificación de la fase de mayor complejidad y de mayor cuidado para futuros proyectos.

  • Medio de estimación más asertiva de costo y tiempo con fundamento en una base histórica.

  • Mayor garantía en los productos desarrollados.

Trabajos relacionados

En el mercado actual existe una variedad de herramientas y estándares que permiten tener un proceso de pruebas pero todas son particulares. Así mismo, existen algunas normas pero la que más enfoque tiene al proceso de software es la ISO/IEC 29119, la misma que permite cubrir todo el ciclo de vida completo, a través del análisis, diseño, implementación y mantenimiento de las pruebas software. La Tabla 1 resume los resultados del análisis que se realizó en el contexto de esta investigación entre algunas herramientas existentes.

edu.red

Tabla 1. Análisis de Herramientas

Del análisis se concluye que no existe una herramienta que permita tener una gestión basado en el estándar ISO/IEC 29119 que permita evaluar y apoye la toma de decisiones, es por ello que se vio la necesidad del desarrollo de una herramienta, enfocándola para nuestro entorno pero con bases internacionales con el fin de obtener un mejor producto y una mejor calidad.

Conclusiones y recomendaciones

6.1. CONCLUSIONES

Cada proyecto de software realizado y gestionado a través de la herramienta permitirá una mejor toma de decisiones por parte de la gerencia o dirección de proyectos, como por ejemplo, identificar la fase de mayor criticidad en el ciclo de vida de desarrollo de software.

Así mismo, es importante destacar que para la implementación de la herramienta, se consideran aspectos relevantes en el área de pruebas de software, así como algunas métricas para software, todo esto con el propósito de enriquecer los criterios de evaluación y obtener un producto de calidad.

La realización de este trabajo, los resultados obtenidos a partir de él y muchas otras experiencias, permite entender que la gestión de las pruebas de software es una actividad que indiscutiblemente debe llevarse a cabo en todo proceso de desarrollo en empresas tanto públicas como privadas.

6.2. RECOMENDACIONES

Se recomienda que la herramienta a futuro sirva como base para la realización de métricas y la detección de puntos clave en el macro proceso de creación de software.

Se recomienda dar a conocer la herramienta por medio de la web, permitiendo al interesado pueda descargarla de forma gratuita y sirva para toda la comunidad que crea el software a baja, media y alta escala.

Es recomendable realizar actualizaciones al sistema de tal manera de incluir funcionalidades como: reportes en formato Excel y pdf.

Referencias

  • 1. Fischer G., "The Software Technology of the 21st Century: From Software Reuse to Collaborative Software Design". [Última visita: 20-Junio- 2012] Disponible en: http://l3d.cs.colorado.edu/~gerhard/papers/isfst2001.pdf

  • 2. Instituto Nacional de Tecnologías de la Comunicación, "GUÍA DE MEJORES PRÁCTICAS DE CALIDAD DE PRODUCTO". [Última visita: 22-Junio- 2012] Disponible en: http://www.inteco.es/file/TnOIvX7kM5orWmEwNq53IQ.

  • 3. Páez J., "Diseño de un modelo para evaluación/pruebas del software en base a ingeniería de pruebas aplicando el estándar ISO/IEC 29119". AÑO. [Última visita: 22-Junio- 2012]

  • 4. Pérez B., "Gestión de las Pruebas Funcionales". [Última visita: 22-Junio- 2012] Disponible en: http://www.ces.com.uy/documentos/imasd/CES-PRIS_Gestion_Testing.pdf

  • 5. Reales P., "Calidad de casos de prueba, Calidad y medición de sistema de información". [Última visita: 18-Junio- 2012] Disponible en: http://alarcos.inf-cr.uclm.es/doc/cmsi/trabajos/Pedro%20Reales.pdf

  • 6. Reid S., "Software Testing. The new international software testing standard ISO/IEC 29119". [Última visita: 18-Mayo-2012] Disponible en: http://softwaretestingstandard.org/

  • 7. Sánchez Melchor S., "UNA REVISIÓN Y COMPARATIVA DE MODELOS DE PROCESOS DE PRUEBA". [Última visita: 01-Julio-2012] Disponible en: http://eciencia.urjc.es/bitstream/10115/4115/1/Una%20revisi%C3%B3n%20y%20comparativa…%20Sandra%20S%C3%A1nchez%20Melchor.pdf

  • 8. Zapata C. y Cardona C., "Feature comparison among some software tools for load testing" [Última visita: 22-Junio- 2012] Disponible en: http://www.revistas.unal.edu.co/index.php/avances/article/viewFile/26734/27044

 

 

Autor:

Ing. José Páez E.

Escuela Politécnica del Ejército – Ecuador