Thread: [Pfc-prolog-cvs] prolix-doc/pfc-es/pruebas casosDeUso.tex,NONE,1.1 pruebas.tex,NONE,1.1
Status: Beta
Brought to you by:
ivanfrade
From: <iva...@us...> - 2003-09-03 19:14:12
|
Update of /cvsroot/pfc-prolog/prolix-doc/pfc-es/pruebas In directory sc8-pr-cvs1:/tmp/cvs-serv11517 Added Files: casosDeUso.tex pruebas.tex Log Message: Anyadido el capitulo de pruebas a la documentacion --- NEW FILE: casosDeUso.tex --- % Escenarios % \section{Pruebas orientadas por casos de uso} Siguiendo los casos de uso y escenarios de la seccion \ref{seccion:escenarios}, realizamos las pruebas del sistema, presentando en cada una la descripción de la misma, la salida esperada y la salida real obtenida. Usaremos el programa de prueba de la figura \ref{ejemploProlog} donde sea necesario. \begin{escenariosAnalisis} \begin{figure}[h] \begin{verbatim} buengrupo(X):-grupotoca(X,Y),buenamusica(Y). grupotoca(folsom,blues). grupotoca(uveocho,rock). buenamusica(soul). buenamusica(rock). buenamusica(blues). \end{verbatim} \caption{\label{ejemploProlog} Programa en prolog utilizado en las pruebas} \end{figure} %%% CASO DE USO 1 \subsection{Cargar Programa} %% Escenario 1.1 \subsubsection{Alumno carga programa} Se trata de comprobar que \texttt{Prolix} gestiona bien la carga de programas y la muestra de sus errores, no de la labor del intérprete (que además es facilmente reemplazable), por lo que no se realizan pruebas exhaustivas del lenguaje Prolog. \begin{prueba} \descripcion Carga correcta de un programa. Se utiliza como ejemplo el programa de la figura \ref{ejemploProlog}. \salidaEsperada Deberiamos avanzar a la página de introducir consultas, donde se mostrase el programa introducido. \salidaReal Se produce el efecto deseado, mostrandose la página adecuada. \end{prueba} \begin{prueba} \descripcion Carga de un programa con errores sintácticos. Se teclea el programa de ejemplo, quitanto en la linea 4 el paréntesis de cierre:\\ \begin{verbatim} buengrupo(X):-grupotoca(X,Y),buenamusica(Y). grupotoca(folsom,blues). grupotoca(uveocho,rock). buenamusica(soul. buenamusica(rock). buenamusica(blues). \end{verbatim} \salidaEsperada Deberia mostrarse un mensaje de error, y no permitir consultar el programa. \salidaReal Se muestra en pantalla el mensaje <<Error sintactico line 4:13: unexpected token: soul>>. El mensaje de error indica con acierto la linea y marca el token anterior al que da error. La diagnosticación de estos errores es parte del intérprete. \end{prueba} \begin{prueba} \descripcion Carga de un programa con errores léxicos. Introducimos el programa de ejemplo modificado con un signo que el intérprete no reconoce. En este caso <<\@>>, en la linea 2. \begin{verbatim} buengrupo(X):-grupotoca(X,Y),buenamusica(Y). grupotoca(fols@m,blues). grupotoca(uveocho,rock). buenamusica(soul). buenamusica(rock). buenamusica(blues). \end{verbatim} \salidaEsperada Deberia mostrarse un mensaje de error y el programa editable para corregir los errores. \salidaReal Aparece el programa editable, y el mensaje <<Error léxico line 2:15: unexpected char: @ >> \end{prueba} %% Escenario 1.2 \subsubsection{Alumno carga programa de biblioteca} \begin{prueba} \descripcion De toda la lista de programas de la biblioteca, el alumno escoge uno de ellos y ordena su carga en el sistema. Previamente se han cargado algunos programas en la biblioteca. \salidaEsperada El programa debe cargarse y el sistema mostrar la página de consultas, con el programa cargado (no editable). \salidaReal Llegamos a la página de consultas y se muestra el código del programa. \end{prueba} %%% CASO DE USO 2 \subsection{Ejecución de consultas y exploración de resultados} %% Escenario 2.1 \subsubsection{Alumno carga consulta} \begin{prueba} \descripcion Carga de una consulta correcta. Usando el programa de ejemplo, evaluamos \texttt{buengrupo(folsom)}. \salidaEsperada Deberia llegarse a la página de evaluar soluciones, donde se mostrase el programa y la consulta (ambos no editables), sin ninguna solución por el momento. \salidaReal Llegamos a la página esperada y se muestran tanto el programa como la consulta cargada, mientras se espera la orden de avanzar solución. \end{prueba} %% Escenario 2.2 \subsubsection{Alumno avanza hasta siguiente solución} Trataremos dos tipos de consulta: la que intenta devolver Si o No, y la que debe mostrar substituciones. \begin{prueba} \descripcion El alumno solicita avanzar hasta la siguiente solución despues de carga la consulta de la prueba anterior (\texttt{buengrupo(folsom)}). \salidaEsperada El sistema deberia devolver un \texttt{Si} la primera vez que se solicita la solución, y un \texttt{No hay mas soluciones} o mensaje equivalente las siguientes. \salidaReal Se muestra en la página de soluciones un mensaje de <<Solución 1: si>>. Al solicitar otra solución muestra el mensaje de <<No hay mas soluciones>> y desaparece la opción de mostrar soluciones. \end{prueba} \begin{prueba} \descripcion Añadimos la clausula \texttt{grupotoca(beth,pop)}. Y cargamos la consulta \texttt{buengrupo(beth)}. \salidaEsperada No deberia sorprendernos que el sistema contestase con un sonoro <<No>> a tan evidente pregunta. \salidaReal El sistema devuelve un <<No hay mas soluciones>> pues efectivamente intenta resolver la consulta, hasta explorar todas las posibilidades y no encuentra solución afirmativa. \end{prueba} \begin{prueba} \descripcion Se carga la consulta \texttt{buengrupo(X)}, para el programa ejemplo. \salidaEsperada Deberia mostrarse una solución << X = folsom >>. Si se solicita otra más << X = uveOcho >> y si se solicita una tercera, <<No hay mas soluciones>>. \salidaReal Aparecen los resultados esperados. \end{prueba} %% Escenario 2.3 \subsubsection{Alumno avanza un paso la ejecución} \begin{prueba} \descripcion Comprobaremos que el sistema, una vez cargado el programa y al consulta correctamente, es capaz de avanzar en la resolución paso a paso. Esta opción solo esta permitida en la resolución gráfica (en la resolución textual no tiene sentido). Cargamos una consulta que conlleve varios pasos como \texttt{buengrupo(X)}. \salidaEsperada El arbol de resolución deberia crear un nodo cada vez que seleccionemos avanzar un paso. \salidaReal. Efectivamente se añade un nodo en cada avance, desapareciendo la opción de avanzar un paso cuando se acaba de recorrer el arbol. \end{prueba} %% Escenario 2.4 \subsubsection{Alumno visualiza soluciones} Cuando el alumno cambia de resolución gráfica a texto, el servidor no realiza ninguna labor, se trata de visualizar los datos obtenidos en la parte cliente. Para comprobar la visualización de soluciones, cargamos programa ejemplo, consulta \texttt{buengrupo(X)} y ejecutamos distintas combinaciones de cambio entre el modo gráfico y texto, despues de realizar un paso o un avance hasta solución, o paso a paso hasta solución. \begin{prueba} \descripcion Cargada la consulta, vamos al modo gráfico y avanzamos un paso. \salidaEsperada Todavia no se ha encontrado ninguna solución, no deberia mostrarse ningun mensaje. \salidaReal Efectivamente, no se muestra ningun resultado. \end{prueba} \begin{prueba} \descripcion Cargada la consulta, vamos al modo gráfico y avanzamos hasta solución. \salidaEsperada Deberia mostrarnos un mensaje de <<solucion X = folsom>>. \salidaReal Se muestra el resultado deseado. \end{prueba} \begin{prueba} \descripcion Cargada la consulta, vamos al modo gráfico y avanzamos paso a paso hasta encontrar solución. \salidaEsperada Deberia mostrarnos las soluciones encontradas hasta el momento (continuando la prueba anterior, además de <<solución X = folsom>> deberia mostrar <<solución X = uveOcho >>). \salidaReal El resultado es el esperado. \end{prueba} %% Escenario 2.5 \subsubsection{Alumno visualiza arbol de representación de soluciones} Comprobamos al representación del arbol de resolución cuando cambiamos del modo texto al modo gráfico. \begin{prueba} \descripcion Cargamos el programa y consulta de las pruebas anteriores, y solicitamos la resolución gráfica antes de ejecutar ningun paso o avance. \salidaEsperada No debería mostrarse ningún arbol de resolución, pues no se realizó ninguna operación. \salidaReal No se muestra ninguna imagen, en la representación gráfica. \end{prueba} \begin{prueba} \descripcion Cargamos el programa y consulta de las pruebas anteriores, y solicitamos la resolución gráfica despues de ejecutar un <<avanzar hasta solución>>. \salidaEsperada Deberia mostrarse un arbol de resolución que incluyese la primera solución. \salidaReal Tal como se esperaba, aparece el arbol correcto. \end{prueba} %%% CASO DE USO 3 \subsection{Gestión de la biblioteca} %% Escenario 3.1 \subsubsection{Alumno guarda programa en biblioteca} \begin{prueba} \descripcion Se procede a guardar el programa ejemplo en la biblioteca, introduciendo todos los datos requeridos (titulo y descripcion). \salidaEsperada Si el alumno accede a la biblioteca deberia encontrarse el programa, no produciendose ningun efecto visual inmediato. \salidaReal Usandose otro escenario comprobamos que el programa esta guardado realmente. (Comprobable también en los registros del sistema). \end{prueba} \begin{prueba} \descripcion Se intenta guardar el programa en la biblioteca sin incluir el título. \salidaEsperada Deberia mostrarse un mensaje de error solicitando el dato, y no guardar nada en la biblioteca. \salidaReal Se muestra el mensaje <<Debe poner título a su programa>>, y la biblioteca no ha sufrido cambios. \end{prueba} \begin{prueba} \descripcion Se intenta guardar el programa en la biblioteca sin incluir descripción. \salidaEsperada Deberia mostrarse un mensaje de error solicitando descripción, y el programa no debe guardarse en la biblioteca. \salidaReal Se muestra el mensaje <<Debe escribir una breve descripción de su programa>> y la biblioteca no cambia. \end{prueba} \begin{prueba} \descripcion Se intenta guardar dos veces el mismo programa (el mismo título). (Se almacenan usando el título como clave). \salidaEsperada El sistema deberia informar de la coincidencia de claves. \salidaReal El sistema muestra un mensaje de <<Error guardando programa - puede que haya otro con ese titulo>>. \end{prueba} %%Escenario 3.2 \subsubsection{Alumno elimina programa propio de la biblioteca} \begin{prueba} \descripcion El alumno selecciona uno de sus programas y la opción borrar, cuando tiene 3 programas disponibles. \salidaEsperada Deberia de observar los 2 programas restantes. \salidaReal Efectivamente se muestra solo los 2 programas restantes. Y comprobando la base de datos del sistema, verificamos que le programa se ha eliminado. \end{prueba} \begin{prueba} \descripcion El alumno borra el último de sus programas. \salidaEsperada Su biblioteca deberia de mostrarse vacia. \salidaReal La biblioteca se muestra vacia. \end{prueba} %% Escenario 3.3 \subsubsection{Administrador suprime programa en la biblioteca} \begin{prueba} \descripcion Despues de hacer login como administrador, borramos un programa de la biblioteca, propiedad de otro usuario. \salidaEsperada Deberiamos visualizar la biblioteca sin el programa borrado, y el programa debe estar efectivamente eliminado. \salidaReal Comprobamos en la base de datos que el programa no está, y no se muestra en la página de biblioteca. \end{prueba} %% Escenario 3.4 \subsubsection{Alumno lista sus programas en biblioteca} \begin{prueba} \descripcion Introducimos utilizando un usuario un programa en la biblioteca. Usando un segundo usuario, introducimos otro programa en la biblioteca. Comprobamos que el segundo usuario cuando accede a sus propios programas solo puede ver el suyo. \salidaEsperada Aunque en la biblioteca haya dos programas, el usuario deberia acceder a su propia biblioteca y ver solo el suyo. \salidaReal Efectivamente se produce el efecto deseado. \end{prueba} %% Escenario 3.5 \subsubsection{Alumno lista todos los programas de la biblioteca} \begin{prueba} \descripcion El alumno debe observar todos los programas que hay disponibles en la biblioteca. \salidaEsperada Comprobamos en la base de datos los programas disponibles, hacemos login con un usuario con permisos de alumno y al acceder a la biblioteca deberia poder verlos todos. \salidaReal Se muestran todos los programas disponibles en la base de datos. \end{prueba} %% CASO DE USO 4 \subsection{Control de acceso} %% Escenario 4.1 \subsubsection{Usuario hace login en el sistema} \begin{prueba} \descripcion Alumno hace login con un usuario y clave correctos. \salidaEsperada El sistema deberia dejarnos acceder a la página de carga de programas. \salidaReal Se produce el efecto deseado. \end{prueba} \begin{prueba} \descripcion Usuario intenta entrar en el sistema sin introducir una clave. \salidaEsperada El sistema deberia mostrar un mensaje de error y permitir realizar el login correctamente. \salidaReal Se muestra la página de login con un mensaje <<debe teclear su password>>. \end{prueba} \begin{prueba} \descripcion Usuario intenta entrar en el sistema y su clave es incorrecta \salidaEsperada El sistema muestra de nuevo la página de acceso advirtiendo al usuario de su error. \salidaReal Se muestra la página de login con un mensaje <<No se pudo hacer login: nombre/clave incorrector>> \end{prueba} \begin{prueba} \descripcion Usuario con permisos de administrador introduce su nombre y clave. \salidaEsperada El sistema deberia mostrar la página de administrador. \salidaReal El sistema se dirige a la página apropiada. \end{prueba} %% Escenario 4.2 \subsubsection{Usuario hace logout en el sistema} \begin{prueba} \descripcion Desde alguna página el usuario actualmente en el sistema decide salir del mismo. \salidaEsperada Se debe mostrar la pantalla de login para que un nuevo usuario pueda utilizar el sistema. \salidaReal Se muestra la página de entrada al sistema. \end{prueba} %% Escenario 4.3 \subsubsection{Alumno se registra} \begin{prueba} \descripcion Un nuevo visitante decide registrarse e introduce sus datos correctamente en la página. \salidaEsperada El sistema deberia hacer login al mismo tiempo que registrar al usuario y almacenarlo en la base de datos. \salidaReal El usuario aparece logeado en el sistema y si comprobamos la base de datos confirmamos que sus datos han sido guardados. \end{prueba} \begin{prueba} \descripcion Un nuevo visitante decide registrarse pero introduce nombre de usuario ya registrado. \salidaEsperada El sistema deberia mostrar un mensaje de error apropiado y darle oportunidad de registrarse con otro nombre. \salidaReal El sistema vuelve a la página de registro mostrando un error <<El nombre de usuario ya esta ocupado>>. \end{prueba} \begin{prueba} \descripcion Un nuevo visitante decide registrarse pero introduce la clave y la confirmación de la clave distintas. \salidaEsperada El sistema deberia mostrar un mensaje de error apropiado y darle la oportunidad de registrarse correctamente. La base de datos no deberia almacenar ningun cambio. \salidaReal El sistema vuelve a la página de registro mostrando el mensaje de <<no coinciden el password y la confirmación>>, y la base de datos no se modifica. \end{prueba} %% Escenario 4.4. \subsubsection{Usuario cambia su clave de acceso} \begin{prueba} \descripcion El usuario que esta actualmente en el sistema decide cambiar su clave, e introduce correctamente la nueva clave y la confirmación. \salidaEsperada El usuario deberia volver a la página principal y su cambio de password quedar reflejado en la base de datos. \salidaReal El usuario aparece en la página principal y si comprobamos la base de datos podemos confirmar el cambio de clave. \end{prueba} %% CASO DE USO 5 \subsection{Gestión de usuarios} %% Escenario 5.1 \subsubsection{Administrador crea otro administrador} \begin{prueba} \descripcion Usuario con permisos de administrador, rellena correctamente los datos para crear un administrador. \salidaEsperada El sistema deberia dar de alta al nuevo administrador con los permisos adecuados en el sistema, y darle la oportunidad de hacer login. \salidaReal El sistema muestra la pantalla de login. En la base de datos comprobamos que el nuevo usuario ha sido creado y con los permisos apropiados. \end{prueba} \begin{prueba} \descripcion Usuario con permisos de adminsitrador intenta registrar un administrador con un nombre de usuario ya ocupado. \salidaEsperada Volviendo a mostrar el formulario, deberia indicarse el error. \salidaReal Se muestra en la pantalla del formulario el error <<El nombre de usuario esta ocupado>> \end{prueba} \begin{prueba} \descripcion Usuario con permisos de administrador intenta registrar otro administrador y la clave y confirmación no coinciden. \salidaEsperada Deberia mostrarse el error apropiado y dar oportunidad de corregir el dato erroneo. \salidaReal Se muestra el error <<No coincide el password y la confirmación>>. \end{prueba} %% Escenario 5.2 \subsubsection{Administrador elimina usuario de la aplicación} \begin{prueba} \descripcion Usuario con permisos de administrador escoge un usuario y seleccion la operación <<borrar>>. \salidaEsperada El usuario seleccionado no deberia aparecer en la nueva lista de usuarios, ni en la base de datos. \salidaReal Efectivamente el usuario desaparece en ambos lugares. \end{prueba} %% Escenario 5.3 %\subsubsection{Administrador cambia clave de usuario} \end{escenariosAnalisis} --- NEW FILE: pruebas.tex --- (This appears to be a binary file; contents omitted.) |