El objetivo de este proyecto es construir una plataforma que

Anuncio
Proyecto de desarrollo de una plataforma para la
gestión de casos de prueba de software
El objetivo de este proyecto es construir una plataforma que sistematice y facilite las
actividades de prueba en los equipos de desarrollo de software. La plataforma esta
centrada en la gestión de los casos de prueba y se conecta con otras herramientas para la
ejecución y evaluación de las pruebas.
Problema
El elemento principal de a las actividades de prueba es el caso de prueba. Las técnicas
de prueba proponen distintas estrategias para diseñar o evaluar casos, ya que en el
diseño de los casos se define la efectividad de la prueba. Las actividades de ejecución,
análisis y reporte vuelven a utilizar al caso de prueba como instrumento.
Al igual que el desarrollo de software, el diseño de casos de prueba es una actividad que
requiere inteligencia y creatividad. Por eso el diseño de casos es realizado
necesariamente por personas que dominan una técnica de prueba y tienen conocimiento
de programa objetivo. El volumen de casos de prueba para una aplicación suele ser muy
grande, por lo que estos se agrupan en conjuntos para su gestión. La gestión de casos
incluye su registro, ejecución y evaluación.
Actualmente existen numerosas herramientas que se enfocan en una parte específica del
proceso de prueba, por ejemplo: grabación y reproducción de acciones, cobertura de
código, mutación de programas, pruebas de sobrecarga, etc. Sin embargo, la gestión de
los casos de prueba se realiza a menudo en forma manual y no integrada con las otras
actividades del proceso de prueba.
Para el registro de casos de prueba suelen utilizarse formatos poco estructurados como
planillas de distintos formatos. Esto impide que la evaluación de los conjuntos de
prueba sea sistemática y no se guarden datos sobre su efectividad o nivel de cobertura.
Además como las aplicaciones pueden tener distintos modelos de ejecución, el pasaje de
los datos contenidos en los casos de prueba a la etapa de ejecución suele ser una
actividad compleja aun estando parcialmente automatizada.
Plataforma para gestión de casos de prueba
Para gestionar los casos de prueba los equipos de desarrollo de software necesitan una
infraestructura que les permita integrar las distintas actividades de la prueba.
El proceso de prueba de software puede dividirse en cuatro etapas:
 Diseño (generación) de casos de prueba
 Evaluación de conjuntos de prueba
 Ejecución y análisis de resultados
 Reporte de defectos
El sistema cubre las tres primeras etapas del proceso y esta abierta a la integración con
herramientas de reporte y seguimiento de defectos.
Gestión: definición de
estrategias, conjuntos y
niveles de cobertura.
Evaluación de
conjuntos
Ejecución
Edición remota
de CP
IU
(Web)
línea de
comando
xUnit
Edición remota
de CP
Repositorio
de casos de
prueba
Programa
objetivo
script
Edición remota
de CP
Otro
ejecutor
Funciones
1. Diseñar y registrar casos de prueba
El registro debe poder hacerse por varios usuarios y en forma remota. En este punto es
importante la facilidad de uso del sistema para el tester. Una restricción para esta
función es que no requiera instalación en la terminal donde se definen los casos de
prueba, o sea una interfaz de usuario web.
2. Definir conjuntos de casos
Los casos se agrupan en conjuntos para poder gestionarlos. Un conjunto puede ser caso
de prueba generados por cierto criterio de prueba o para un área especifica del sistema
objetivo. La definición de conjuntos puede hacerse en forma remota por parte del
diseñador o directamente sobre el repositorio de casos ya generados.
3. Ejecutar las pruebas según el modelo de la aplicación
La ejecución de las pruebas depende del modelo de la aplicación. El programa objetivo
de la prueba puede ser invocado por línea de comando, un componente al que se le pasa
un script, llamados directos a métodos, interfaz de usuario gráfica, etc. Estos modelos
definen la forma en que se ejecutan los casos de prueba en el programa objetivo.
4. Evaluar y ajustar las pruebas en base a mediciones
Existen varios criterios para asegurar la completitud y profundidad de un conjunto de
pruebas. Los más simples son los criterios de cobertura. Estos criterios permiten hacer
una evaluación para mejorar los casos de prueba. También hay métricas básicas de la
prueba que pueden ser tomas a partir del repositorio para facilitar la gestión de casos.
 Número de casos
 Tamaño de los programas probados
 Nivel de cobertura alcanzada
 Número de defectos por versión del programa
 Efectividad histórica de casos y conjuntos de prueba
5. Control de sesión y definición de reglas para el proceso de prueba
Otra función de la plataforma es controlar las sesiones de diseño y ejecución de las
pruebas y definir reglas que produzcan avisos para el probador en base a las mediciones
de las pruebas realizadas. Por ejemplo: medir los tiempos de diseño y comparar con la
efectividad alcanzada, definir un aviso para el diseñador cuando e nivel de cobertura sea
bajo.
Alcance del proyecto
El alcance del producto que se desarrollará dentro del proyecto será variable, según la
estimación de esfuerzo que se realizará al comienzo del proyecto y los recursos
disponibles. Las funciones definidas se pueden separar en tres grupos 1-2, 3 y 4-5. El
alcance del desarrollo puede incluir uno o varios de estos grupos de funcionalidad según
el tamaño del equipo de desarrollo. También los modelos de ejecución definidos en la
funcionalidad 3 son modulares y las métricas de control de la funcionalidad 4 pueden
ampliarse o reducirse para ajustar el alcance del proyecto.
La prioridad de los requerimientos funcionales del producto esta dada por el orden dado
en la sección anterior.
Puntos de investigación
Para la construcción de esta plataforma de prueba, se debe profundizar en dos áreas de
conocimiento distintas. Por un lado en el área de ingeniería de software, para poder
modelar el proceso de prueba. En segundo lugar en la tecnología de software que
permita construir la arquitectura del producto dada las restricciones del mismo.
Ingeniería de software


Profundizar en el proceso de prueba de software para modelar sus actividades.
Identificar métricas relevantes para gestionar el proceso de prueba.

Investigar sobre criterios de cobertura, evaluación y ejecución de pruebas.
Tecnología de software



Investigar mecanismos que faciliten la interacción con el usuario en un entorno
distribuido y con poco esfuerzo de instalación. Por ejemplo HTML generado
dinámicamente, junto con componentes AJAX o Flash.
Modelado de datos para el repositorio de casos de prueba.
Interacción con otros programas para ejecución de las pruebas.
Uso del producto
La plataforma tiene como objetivo utilizarse académicamente para una investigación
empírica sobre efectividad de técnicas de prueba de software. La realización de
experimentos controlados en ingeniería de software es muy costosa ya que requiere que
un número grande de personas apliquen cierta técnica de diseño de casos para luego
recolectar y análisis los casos de prueba generados.
La gestión del proceso de prueba, en particular en el registro y evaluación de los casos,
es una actividad que se realiza de forma poco sistemática y sin herramientas de apoyo
en las organizaciones productoras de software. Esta plataforma puede ser usada
industrialmente por equipos de desarrollo de software para apoyar las actividades de
prueba.
Descargar