41 Pruebas Funcionales y de Campo Autor Universidad de Las Américas Puebla
41 Pruebas Funcionales y de Campo Autor Universidad de Las Américas Puebla
41 Pruebas Funcionales y de Campo Autor Universidad de Las Américas Puebla
La prueba del software es un elemento crítico para la garantía de calidad del software y
representa una revisión final de las especificaciones, del diseño, y de la codificación de
los elementos que juntos componen la aplicación computacional.
En este capítulo se discuten las generalidades del proceso de pruebas que se incluye en
el ciclo de vida de un proyecto de software, así como las pruebas especificas bajo las
cuales se prueba la herramienta de software basada en ambientes virtuales que pretende
ser utilizada como auxiliar en el tratamiento del trastorno de lateralidad y ubicación
espacial.
De acuerdo con Pressman [PRR98], a nivel general la etapa de pruebas del software
consiste en que el ingeniero de software crea una serie de casos de prueba que pretenden
“demoler” el software construido. De hecho, la prueba es uno de los pasos de la
ingeniería del software que se puede ver como destructivo en lugar de constructivo.
Myers [MYE79] establece tres normas que en un momento dado pueden servir
atinadamente como objetivos de la prueba:
Es importante recalcar que de acuerdo a los tres objetivos anteriores, una prueba tiene
éxito no cuando no descubre errores, sino cuando lo hace. El objetivo de un esquema de
pruebas es diseñar pruebas que sistemáticamente saquen a la luz diferentes clases de
errores, haciéndolo con la menor cantidad de tiempo y esfuerzo. Si la prueba se lleva a
cabo con éxito, descubrirá errores en el software; la prueba demuestra hasta que punto
las funciones del software parecen funcionar de acuerdo con las especificaciones y
parecen alcanzarse los requisitos de rendimiento [PRR98].
Los datos que se van recogiendo a medida que se lleva a cabo la prueba proporcionan
una buena indicación de la fiabilidad del software y, de alguna manera, indican la
calidad del software como un todo. Sin embargo, y citando a Pressman, hay una cosa
fundamental que una prueba no puede hacer:
“La prueba no puede asegurar la ausencia de defectos, sólo puede demostrar que
existen defectos en el software.”
Más adelante dentro de este capítulo se discuten más a detalle los procesos de pruebas
funcionales y de campo que llevaron a cabo dentro de este proyecto.
La prueba de caja blanca del software se basa en el minucioso examen de los detalles
procedimentales. Se comprueban los caminos lógicos del software proponiendo casos
de prueba que ejerciten conjuntos específicos de condiciones. Se puede examinar el
estado del programa en varios puntos para determinar si el estado real coincide con el
estado deseado o esperado. La prueba de caja blanca es un método de diseño de casos
de prueba que usa la estructura de control del diseño procedimental para obtener los
casos de prueba [PRR98].
Las pruebas de caja negra se centran en los requisitos funcionales del software, es
decir, la prueba de caja negra permite obtener conjuntos de condiciones de entrada que
ejerciten completamente todos los requisitos funcionales de un programa. La prueba de
caja negra intenta encontrar errores de las siguientes categorías [PRR98]:
Tal y como se estableció previamente, las pruebas que conciernen a los aspectos
funcionales de una herramienta de software basada en ambientes virtuales que puede
utilizarse como auxiliar al tratamiento de lateralidad y ubicación espacial, pueden
hacerse basadas en cuanto a la premisa de desarrollo que este proyecto propone.
Este proyecto utiliza VRML 2.0 para modelar objetos tridimensionales que se juntan
para formar ambientes virtuales. Desde un punto de vista gráfico, VRML es un
lenguaje de programación cuya función principal es la de proporcionar a un VRML
browser los detalles descriptivos, del estado y comportamiento, de un objeto.
Es solamente lógico que las pruebas a los aspectos referentes al modelado de objetos y
mundos virtuales en VRML 2.0 se hagan durante el mismo proceso de desarrollo, es
decir, se describe un objeto, y se ve su resultado en el VRML browser. Si la apariencia
o comportamiento del objeto no es el esperado, entonces se presenta un error que puede
corregirse inmediatamente. Por medio de repetir este procedimiento se obtiene un ciclo
constante de pruebas en el cual se llega al resultado esperado a través de codificación
inicial, pruebas, y codificación correctiva.
En párrafos anteriores se comentó que la facilidad con la que puede probarse un sistema
o aplicación de software es un aspecto muy importante que no debe pasarse por alto al
momento de llevar a cabo las actividades de diseño del mismo. Es precisamente en la
etapa de pruebas al modelado y descripción de objetos tridimensionales que se
manifiestan los beneficios de programar modularmente y por separado los objetos, ya
que de esta manera se pueden probar independientemente para que, una vez obtenido el
resultado deseado, puedan incluirse o incorporarse a otros objetos para construir un
mundo o escena virtual completo.
Los errores en la codificación del script pueden detectarse a través del compilador que
se utiliza para traducir las instrucciones que el programador emplea por medio de un
lenguaje de alto nivel, a lenguaje máquina. Las pruebas en esta etapa del desarrollado de
un program script se hacen durante la codificación del mismo, ya que se compila una y
otra vez hasta que no se presenten errores en la traducción al lenguaje que entiende la
computadora. Es importante decir que el compilar exitosamente no quiere decir que no
existen errores en el script, sino que simplemente se ha podido hacer una interpretación
exitosa.
Cuando se programa un script en Java, por ejemplo, los errores de código los detecta el
compilador que se utilice para convertir los archivos *.java a archivos *.class. En el
caso de que se esté utilizando JavaScript para codificar un program script, entonces los
errores de código los detectará el VRML browser, y los reportará al programador a
través de la consola de comunicación con el usuario.
Todo programador conoce las ventajas que vienen con trabajar con un ambiente de
desarrollo que facilite el proceso de generación de código. Estos ambientes o
plataformas generalmente son editores que cuentan con herramientas funcionales que
proporcionan al programador una interfaz amigable para realizar tareas específicas. En
el caso de este proyecto, las plataformas o herramientas de desarrollo principales son:
Java Software Development Kit, o Java SDK, es la plataforma tradicional que Sun
Microsystems proporciona gratuitamente a los desarrolladores interesados para generar
aplicaciones computacionales basadas en Java. En el Apéndice A anexado a este
documento puede encontrarse el URL desde el cual puede obtenerse esta plataforma de
desarrollo.
La ventaja de utilizar VrmlPad 2.0 como ambiente de desarrollo para el Virtual Reality
Modeling Language es que esta plataforma detecta cuando se presenta alguna
incoherencia o anomalía en la declaración de un circuito, permitiendo así al programar
el identificar los posibles errores sin la necesidad de planear casos de prueba extensos y
complicados.
Una particularidad de un programa es el hecho de que tiene que operar con diferentes
inputs (entradas) para producir alguna salida (outputs). Es dogmático que el software
sea probado con una variedad de inputs diferentes para observar el comportamiento del
software ante cada una de las entradas que pueda obtener, ya sea de un usuario, o de la
interacción con alguna otra aplicación computacional. Cuando éste es el caso, se
generan diversos caminos lógicos (o no tan lógicos) que crean una gran cantidad de
estados posibles por los que puede pasar el software durante un ciclo de ejecución. Una
vez que el ciclo de vida del proyecto llega a los desarrolladores en la etapa de pruebas,
es imprescindible desarrollar los suficientes casos de prueba para que pueda evaluarse el
desempeño del software en cada una de sus transiciones entre estados. En proyectos de
software muy grandes, los estados y transiciones pueden ser muchas, lo que hace que la
etapa de pruebas tenga que ser muy larga y exhaustiva. En el caso del estudio Realidad
Virtual Aplicada al Tratamiento del Trastorno de Lateralidad y Ubicación espacial, los
program scripts solo tienen una entrada posible, y solamente hay una salida correcta. Es
por esto que no es necesario realizar pruebas que vayan más allá de proporcionar la
entrada definida, esperando que el impacto de la entrada sobre la escena virtual sea el
esperado. En ningún momento se generan árboles de decisión complejos ya que, a
través del routing o creación de circuitos, se define solamente un camino que el VRML
browser debe seguir.
En vista de que este estudio pretende desarrollar una aplicación computacional que
busca tener aplicación inmediata, es sumamente importante el no solo hacer pruebas
funcionales, sino también pruebas de campo que requieran de interacción directa entre
los ambientes virtuales y la población objetivo o usuarios finales. Las pruebas de campo
que se llevaron a cabo se discuten en la siguiente sección.
A pesar de que existen varios modelos de trabajo a los cuales los desarrolladores de
software pueden apegarse para generar aplicaciones computacionales, todos estos
modelos tienen como una etapa común una pesquisa de requerimientos que sirven como
lineamientos de lo que el software debe poder hacer, lo que no debe hacer, y de las
restricciones globales a las que debe apegarse el proyecto de software [KII02].
Generalmente estos requerimientos se obtienen por medio de un trabajo conjunto entre
los involucrados en el desarrollo del proyecto de software, y los interesados (usuarios
finales) en el software mismo. Sin embargo, no debe de caerse en el error de obtener la
lista inicial de requerimientos y después perder el contacto con los clientes o usuarios
finales; por el contrario, es necesario que durante el ciclo de vida de un proceso de
desarrollo de software se mantengan abiertas las vías de comunicación entre quienes
desarrollan el software y quienes solicitan el desarrollo del mismo. Esto con el fin de
tener una retroalimentación constante que impida que se pierdan de vista los objetivos
iniciales que se fijan para el proyecto.
Las pruebas de campo se llevaron a cabo con dos muestras poblacionales, la población 1
estuvo constituida por un grupo de niños sin trastornos neurofisiológicos, y la población
2 se conformó por niños que sí son padecientes del trastorno de lateralidad y ubicación
espacial y que actualmente se encuentran bajo tratamiento tradicional impartido por la
psicóloga Norma Rodríguez y sus colegas. Los resultados de las pruebas de campo con
cada una de las poblaciones se presentan en la tabla 4.1 y en los reportes de prueba que
presentan posteriormente dentro de esta sección.
La tabla 4.1 muestra los resultados e interpretaciones de las pruebas de campo que se
llevaron a cabo con la primera población de sujetos que, como ya se mencionó antes, se
conformó por niños no padecientes del trastorno de lateralidad y ubicación espacial. A
cada uno de los sujetos de la población 1 les tomó 20 minutos promedio el completar las
4 actividades presentadas.
En vista de que los sujetos de la población 1 son sujetos sin ninguna alteración
neurofisiológica, a todos les resulto fácil resolver las actividades de tratamiento que se
encuentran modeladas dentro de los ambientes virtuales; como puede verse en la tabla
4.1, los niños comentaron que les resultaba relativamente sencillo resolver los acertijos.
La mayoría de los sujetos prefieren recibir las instrucciones en voz que por escrito, y se
comprobó que a los niños les gusta interactuar con este tipo de aplicaciones
computacionales.
Los resultados que se obtuvieron a través de las pruebas con la población 1 fueron
tomados en cuenta para realizar modificaciones a la interfaz o apariencia de la
herramienta de software en base a los comentarios que los niños hicieron. Estas pruebas
fueron importantes para ver la respuesta de un niño ante mundos modelados en realidad
virtual, esto con el fin de verificar si desde el punto de vista de la disposición y apertura
por parte del usuario es viable utilizar la terapia de exposición utilizando realidad virtual
para modelar dentro de entornos virtuales los tratamientos a los diferentes trastornos
neurofisiológicos. Por lo determinado por estas pruebas, los resultados son favorables y
positivos dentro de los fines del proyecto Realidad Virtual Aplicada al Trastorno de
Lateralidad y Ubicación Espacial.
La tabla 4.2 presenta resultados porcentuales obtenidos de las pruebas de campo que se
llevaron a cabo con la población 1. Estos valores fueron obtenidos en base a los
comentarios que los usuarios hicieron con respecto a la herramienta de software que se
les presentó.
En lo que se reporta en las pruebas de campo que se llevaron a cabo con la población 2,
puede observarse que a pesar de que los pacientes no tenían experiencia previa
operando o trabajando con computadoras, todos coinciden en que prefieren trabajar con
ambientes virtuales y con computadoras que con actividades presentadas en libros y
otros impresos. El hecho de que el 100% de los pacientes no tengan experiencia
operando ambientes virtuales o computadoras no es algo negativo; por el contrario, a los
pacientes y terapeutas no solo se les proporciona una metodología de tratamiento que
acarrea los beneficios de la Terapia de Exposición Utilizando Realidad Virtual, sino
también se les de la oportunidad de empezar a formar un poco de cultura computacional
que en estos tiempos se ha vuelto una necesidad para la formación educativa de todas
las personas. La falta de experiencia computacional solamente implica que el periodo de
adaptación es un poco más largo, pero nadie nace sabiendo y siempre es un buen
momento para aprender.
Los niños mostraron mucha alegría y curiosidad hacia el nuevo prospecto de tratamiento
que se les estaba presentando. El 100% de los niños establecieron que prefieren trabajar
la computadora y con ambientes virtuales, que con la metodología tradicional a la que
ha estado sujetos. La gran ventaja de esto es que los pacientes, al mostrar entusiasmo
por interactuar con los ambientes virtuales, aumentan su apertura mental hacia recibir
un tratamiento correctivo de sus padecimientos, y con esto se agiliza el tratamiento en
si.
A los sujetos les gusta mucho la apariencia de los ambientes virtuales, más cabe
mencionar que la imaginación de un niño no tiene límites, y por eso mismo hacen
comentarios referentes a cosas que han visto en videojuegos o en la televisión y que les
gustaría ver dentro de las escenas modeladas en VRML. Más muchas de estas
sugerencias no son viables, o en un momento dado adecuadas para los fines de la
herramienta de software que este proyecto propone.
También pudo observarse de las pruebas de campo que lo más cercano que los sujetos
han visto a mundos virtuales son los tan populares videojuegos, que inmediatamente se
relacionan con entretenimiento. Esto es muy positivo para los fines de este proyecto, ya
que el tratamiento deja de ser una actividad molesta o monótona y se vuelve mucho más
amigable y atractiva para los usuarios.
Tanto las pruebas funcionales como de campo que se efectuaron dentro de este proyecto
dieron buenos resultados. El haber mantenido un contacto con un terapeuta profesional
sirvió como elemento de retroalimentación sobre el proceso de desarrollo de la
herramienta de software propuesta por este estudio. Las pruebas de campo sacaron a la
luz detalles funcionales que pueden ser mejorados en versiones posteriores del software
desarrollado por este proyecto.
Las muestras poblacionales con las que se realizaron las pruebas son pequeñas, y por
esto mismo no es apropiado sacar conclusiones precisas y exactas respecto al rango de
aplicación que puede llegar a tener este proyecto. Si embargo, las pruebas de campo que
se llevaron a cabo son suficientes para comprobar empíricamente que los objetivos de
este proyecto se cumplen, y que los resultados de llevarlo a la práctica pueden ser
realmente positivos. Además, las pruebas ilustraron reacciones y tendencias positivas
provenientes de los mismos usuarios para los cuales se realizó este proyecto en primer
lugar, lo cual puede tomarse en cuenta como argumento a favor para futuras
expansiones a este proyecto, o para otros proyectos que pretendan utilizar la Realidad
Virtual como medio de tratamiento y enseñanza.