Vous êtes sur la page 1sur 10

Implementacin de pruebas del sistema.

Un caso prctico

Javier J. Gutirrez, Mara J. Escalona, Manuel Mejas, Arturo H. Torres, Jess Torres
Departamento de Lenguajes y Sistemas Informticos
Universidad de Sevilla
{javierj, escalona, risoto, jtorres}@lsi.us.es

Resumen prueba a partir de casos de uso. Sin embargo,


varios trabajos comparativos y casos prcticos,
Las pruebas funcionales del sistema permiten como [3] [6] y el [11], exponen que la mayora de
verificar que el sistema en desarrollo satisface sus estas propuestas no son capaces de generar
requisitos funcionales. Existen una amplia pruebas directamente ejecutables sobre el sistema.
cantidad de trabajos y captulos de libros que La aportacin original de este trabajo es un
proponen cmo obtener objetivos de prueba a proceso para la generacin de cdigo de prueba
partir de requisitos funcionales expresados como que permita, de manera automtica, comprobar si
casos de uso. Sin embargo, existe una carencia de el sistema implementa el comportamiento definido
trabajos que muestren cmo implementar dichos en sus casos de uso. En concreto, este trabajo se
objetivos en pruebas automticas. Este trabajo centra en la implementacin de pruebas que
presenta un ejemplo, basado en el perfil de simulan el comportamiento de actores humanos
pruebas de UML, para la implementacin en sobre un sistema dotado de interfaces grficas.
cdigo ejecutable de objetivos de prueba definidos La generacin automtica de objetivos de
mediante escenarios y variables operacionales. prueba, ya ha sido tratada en trabajos anteriores,
cmo [7]. Un resumen de este proceso se incluye
1. Introduccin en la seccin 2, dado que dichos objetivos sern el
punto de partida para la implementacin de las
pruebas del sistema. Despus, la seccin 3 expone
Un cdigo sin fallos no tiene por qu derivar
una arquitectura para la implementacin de
en un sistema sin fallos. Por ello, la fase de prueba
pruebas del sistema y un conjunto de buenas
de sistemas cobra una gran importancia en el
prcticas para la redaccin de pruebas como
desarrollo de sistemas software. El proceso de
cdigo ejecutable. La seccin 4 muestra un caso
prueba a nivel de sistema engloba tantos tipos de
prctico. Finalmente, la seccin 5 describe otros
prueba como tipos de requisitos se puedan definir
trabajos relacionados, las conclusiones y los
y probar con la ejecucin del sistema o mediante
trabajos futuros.
la verificacin de sus distintos elementos.
Habitualmente, esto engloba requisitos
funcionales, de seguridad, de rendimiento, de 2. Generacin de objetivos de prueba a
fiabilidad, de accesibilidad, etc. partir de casos de uso.
Al abordar la automatizacin de las pruebas
de sistemas, se pueden identificar, a grandes En esta seccin se resumen trabajos anteriores
rasgos, tres niveles claramente separados [10]. El de los autores para obtener objetivos de prueba,
primero es la automatizacin del proceso de los cules son el punto de partida para desarrollar
generacin de casos de prueba a partir de los pruebas automticas segn se describe en las
requisitos, el segundo es la automatizacin de la secciones 3 y 4.
ejecucin de los casos de prueba y el tercero es la El perfil de pruebas de UML [14] define un
comprobacin de sus resultados. Este trabajo se objetivo de pruebas como un elemento con un
centra en el segundo nivel. nombre concreto que define qu debe ser probado.
Existen un amplio nmero de trabajos y En el contexto de pruebas del sistema a partir de
artculos que describen cmo generar objetivos de los casos de uso, un objetivo de prueba puede
expresarse como un escenario del caso de uso. 3. Implementacin de pruebas del sistema
Dicho escenario estar compuesto de una
secuencia de pasos, sin alternativa posible, y de un Una vez obtenidos los objetivos de prueba de
conjunto de valores de prueba, as como las manera automtica con las tcnicas y herramientas
precondiciones y poscondiciones relevantes para resumidas en la seccin anterior, es posible
dicho escenario. implementar casos de prueba que cubran dichos
Para la generacin de los escenarios de objetivos. A continuacin, en la seccin 3.1, se
prueba, en primer lugar, se construye un diagrama describe una arquitectura genrica para pruebas
de actividades a partir de la secuencia principal y del sistema a partir de los elementos definidos en
secuencias errneas y alternativas del caso de uso. el perfil de pruebas de UML. En la seccin 3.2, se
En el diagrama de actividades, se estereotipa las describe un conjunto de buenas prcticas para la
acciones realizadas por el sistema y las acciones implementacin de pruebas funcionales del
realizadas por los actores. Despus, se realiza un sistema.
anlisis de caminos y, cada camino del diagrama
de actividades, ser un escenario del caso de uso
3.1. Una arquitectura de prueba del sistema.
y, por tanto, un potencial objetivo de prueba. Se
ha desarrollado una herramienta de cdigo libre
llamada ObjectGen, an en fase experimental La arquitectura para la ejecucin y
(www.lsi.us.es/~javierj/objectgen/) la cul permite comprobacin automtica de pruebas del sistema
obtener de manera automtica el diagrama de se muestran en la figura 1. A continuacin, se
actividades y la lista de caminos a partir de un describen brevemente los elementos de la
conjunto de casos de uso. Este proceso se describe arquitectura de prueba.
en ms detalle en [7]. Esta arquitectura es similar a la arquitectura
Otra alternativa, o tcnica complementaria, es necesaria para la automatizacin de otros tipos de
la definicin de conjuntos de valores de prueba a pruebas, como las pruebas unitarias. La principal
partir de las variables operacionales de un caso de diferencia estriba en que, en una prueba unitaria,
uso. El trmino variable operacional se define en la propia prueba invoca al cdigo en ejecucin,
[2] como cualquier elemento de un caso de uso mientras que una prueba funcional del sistema
que puede variar entre dos instancias de dicho necesita un mediador (el elemento UserEmulator)
caso de uso. A partir de las variables que sepa cmo manipular su interfaz externa.
operacionales, se aplica el proceso de Categora- La clase UserInterface representa la interfaz
Particin [12] (considerando cada variable externa del sistema bajo prueba y ha sido
operacional como una categora) para definir estereotipada de acuerdo con la definicin del
distintas particiones en los dominios de las perfil de prueba de UML.
variables operacionales, valores de prueba para La clase UserEmulator, define el elemento que
cada particin y restricciones o dependencias podr interactuar con el sistema utilizando las
entre particiones. Los autores de este trabajo mismas interfaces que una persona real. Si, por
tambin han desarrollado una herramienta de ejemplo, el sistema a prueba es una aplicacin
cdigo libre llamada ValueGen, an en fase web (como en el caso prctico) la clase
experimental, la cul permite obtener de manera UserEmulator ser capaz de interactuar con el
automtica un primer conjunto de variables navegador web para indicarle la URL qu tiene
operacionales y particiones para los casos de uso, que visitar, rellenar formularios, pulsar enlaces,
los cules pueden refinarse manualmente con etc. A partir de la interaccin de dicha clase con el
posterioridad. Este proceso se describe en ms sistema, se obtendrn uno o varios resultados
detalle en [15]. (clase TestResult), por ejemplo, en el caso del
La combinacin de un camino en el diagrama sistema web, se obtendr cdigo HTML. El perfil
de actividades con el conjunto de particiones de de pruebas de UML no define ningn elemento
las cules las variables operacionales presentes para representar los resultados obtenidos del
deben tomar sus valores ser un objetivo de sistema a prueba, por lo que se ha modelado con
prueba. una clase sin estereotipar.
System under test Test harness
<<sut>>
UserEmulator AssertCatalog *
UserInterface

<<test context>> * <<data pool>>


TestSuite TestDataPool

TestResult * 1 TestOracle

Figura 1. Arquitectura de prueba.

elemento Arbiter, el cul evala los veredictos de


La clase AssertCatalog define la coleccin de todos los casos de prueba de un contexto de
asertos a disposicin de los casos de prueba para prueba y determina el resultado final. El rbitro
determinar si el resultado obtenido del sistema a tambin suele ser incorporado en el propio test
prueba (clase TestResult) es correcto o no. harness (como por ejemplo en JUnit), como un
Tanto el UserEmulator como el AssertCatalog elemento que ejecuta el Test Suite. Este elemento
se han agrupado en un clasificador que representa se encarga de recordar el valor de todos los casos
el test harness, dado que estos dos elementos, de prueba ejecutados y determinar el resultado
suelen ser comunes para todas las prueba de final del Test Suite.
diversos sistemas y existe gran variedad de ofertas La clase TestDataPool (estereotipada como
en el mercado tanto de pago como libres y Data Pool segn el perfil de UML) contendr un
gratuitas. conjunto de mtodos Data Selector para
La clase TestSuite, estereotipada como un Test seleccionar los distintos valores de prueba segn
Context del perfil de pruebas de UML, representa las distintas particiones identificadas en las
un conjunto de casos de prueba (Test Case en el variables de los casos de uso (como se ha
perfil de UML). En el perfil de pruebas, todo Test comentado en la seccin 2).
Context tiene un elemento Arbiter y un elemento A continuacin, se describen un conjunto de
Scheduler, sin embargo, ambos elementos no se buenas prcticas para implementar los elementos
van a utilizar en esta propuesta, por lo que han de la figura 1 a partir de la informacin de los
sido omitidos de la figura 1. escenarios de casos de uso.
El perfil de pruebas define el elemento
ValidationAction (acciones de validacin) que, 3.2. Implementacin de los casos de prueba
como su nombre denota, permite indicar una
operacin concreta para determinar el resultado de A partir del marco de trabajo definido en la
un caso de prueba. Sin embargo, el perfil de seccin anterior, se define a continuacin cmo
prueba no define ningn elemento genrico para implementar las pruebas del sistema para verificar
denotar todas las acciones de validacin de un la implementacin de los casos de uso.
caso de prueba. Por este motivo se ha introducido Un caso de prueba es una implementacin de
dicho elemento en el marco de trabajo mediante la un objetivo de prueba. Segn el perfil de pruebas
clase no estereotipada TestOracle. Esta clase sirve de UML, un caso de prueba no es un elemento
de contenedor de todas las acciones de validacin arquitectnico sino la definicin de un
(expresadas mediante la ejecucin de asertos comportamiento dentro de un elemento
sobre el resultado obtenido) que determinarn el estereotipado como Test Context. El
veredicto de los casos de prueba del contexto de comportamiento que se adopta con mayor
prueba. El perfil de prueba de UML define el
frecuencia se describe, entre otros trabajos, en [1] Tabla 1. Comportamiento genrico de un caso de
y se lista en la tabla 1. El segundo paso de la tabla prueba.
1 ha sido refinado por los autores de este trabajo
con los pasos 2.1 y 2.2. Este comportamiento ha
sido implementado, por ejemplo, en las 1. Invocacin del set up del caso de pruebas.
herramientas tipo XUnit. 2. Invocacin del mtodo de prueba
Cada caso de uso tendr asociado un test suite
2.1. Ejecucin de una accin sobre el sistema.
(figura 1). Dicha suite contendr las pruebas de
todos los escenarios de dicho caso de uso. Cada 2.2. Comprobacin del resultado de la accin.
uno de los casos de prueba se codificar como tres 3. Invocacin del tear down del caso de pruebas.
mtodos, al menos dentro del test suite
correspondiente. Dos mtodos para el set up y el
tear down, y un mtodo para el caso de prueba en
s. A continuacin se describe cmo implementar Para cada variable de este tipo se definir una
estos mtodos y los dems elementos del modelo nueva clase cuyos objetos contendrn los distintos
de la figura 1. valores de prueba para dicha variable. Para cada
Como se ha visto en los objetivos de prueba, particin del dominio identificada, el elemento
en cada uno de los pasos del escenario debe TestDataPool tendr, al menos, una operacin que
indicarse si el realizado por un actor o por el devuelva un valor de prueba perteneciente a dicha
sistema a prueba. Esta informacin es muy particin. Un ejemplo de una variable operacional
relevante a la hora de la codificacin de los de este tipo se muestra en el caso prctico.
mtodos de prueba de la suite. Todos los pasos El segundo tipo lo componen aquellas
realizados por un actor se traducirn en el cdigo variables operacionales que indican una seleccin
del caso de prueba a una interaccin entre el caso entre varias opciones que un actor externo tiene
de prueba y el sistema. El test oracle de un caso disponible. En este caso, no tiene sentido
de prueba ser el conjunto de ValidationActions, o implementar estas variables como mtodos del
acciones de validacin, obtenidas principalmente, TestDataPool. En su lugar, dicha seleccin se
a partir de los pasos realizados por el sistema. En implementar directamente como parte del cdigo
funcin de las poscondiciones pueden aadirse que implementa la interaccin entre el actor y el
asertos adicionales. Por ejemplo, en aquellos sistema. Un ejemplo de una variable operacional
pasos en los que el sistema realice una peticin de de este tipo se muestra en el caso prctico.
informacin u rdenes a los actores, se debern El tercer tipo lo componen aquellas variables
definir asertos que permitan evaluar que todos los operacionales que indican un estado del sistema.
elementos de la interfaces son los correctos y, en Para implementar el mtodo de set up del caso de
la medida de lo posible, que no hay elementos prueba, se debe escribir el cdigo necesario para
adicionales. Las acciones de validacin se establecer adecuadamente el valor de las variables
implementan utilizando el catlogo de asertos operacionales que describen los estados del
proporcionado por el test harness sobre el sistema, o bien comprobar que dichos valores son
resultado devuelto por el UserEmulator. los adecuados. De manera anloga, el mtodo tear
Como se ha visto en la seccin 2, se va a up debe restaurar dichos valores a sus estados
aplicar la tcnica de variables operacionales y de originales. Adems, el mtodo tear down debe
categora-particin para la definicin de los eliminar, si es procedente, la informacin
valores de prueba necesarios. A partir de la introducida por el caso de prueba en el sistema
experiencia de los autores de este trabajo, se han durante la ejecucin del caso de prueba. Varios
identificado tres tipos distintos de variables ejemplos de variables operacionales de este tipo se
operacionales. Cada uno de los tipos se muestran en el caso prctico.
implementar de manera distinta en los casos de En la seccin 4 se muestra un caso prctico de
prueba. todo lo expuesto en la seccin 3.1 y en los
El primer tipo lo componen aquellas variables prrafos anteriores.
operacionales que indican un suministro de
informacin al sistema por parte de un actor
externo.
Tabla 2. Caso de uso bajo prueba.
Name UC-01. Add new link
Precondition No
Main sequence 1 The user selects the option for introduce a new link.
2 The system recovers all the stored categories and it asks for the information of a link.
3 The user introduces the information of the new link.
4 The system stores the new link.
Alternatives 3.1 At any time, the user can cancel this operation, then this use case ends.
Errors 2.1 If there was an error recovering the categories, then the system shows an error message
and this use case ends.
2.2 If there were not categories found, then the system shows and error message and this
use case ends.
3.2 If the link name, category or link URL is empty, then the system shows an error
message with the result of repeat step 2.
4.1 If there is an error storing the link, then the system shows an error message and this use
case ends.
Post condition A new link is stored.
Notes The categories that a user may choose, are all the categories registered by an administrator into the
system.

criterio 01, el cul consiste en obtener todos los


4. Un caso prctico caminos posibles para una repeticin de ninguna o
una vez de cada uno de los bucles.
En este caso prctico, en primer lugar se Tabla 3. Requisito de informacin de los enlaces.
aplicar lo visto en la seccin 2 para obtener un
Name SR-01. Link.
conjunto de objetivos de prueba a partir de un
Specific Name Domain
caso de uso (seccin 4.1). Despus, se definen las data Identifier Integer
caractersticas del Test harness utilizado (seccin Name String
4.2). Finalmente, se aplica lo visto en las Category Integer
secciones anteriores para implementar un caso de URL String
prueba a partir de un objetivo de prueba (seccin Description String
4.3). Los artefactos del sistema bajo prueba se han Approved Boolean
definido en ingls, ya que el espaol no est Date Date and time
soportado por las herramientas utilizadas. Restrictions The identifier must be unique.
Name, category, URL and approved
4.1. Objetivos de prueba. are mandatory
Default value for approved is false (0)
and for date is the actual date.
El caso de uso de la tabla 2, describe la
introduccin de un nuevo enlace en el sistema. Todos los escenarios obtenidos con este
Como complemento, se muestra tambin el criterio y traducidos al espaol se listan en la tabla
requisito de almacenamiento de informacin que 4. Para este caso prctico, seleccionamos el
describe la informacin manejada por cada enlace escenario 09, el cul se describe en detalle en la
(tabla 3). Los patrones usados se describen en la tabla 5 (dado que el caso de uso se ha redactado
metodologa de elicitacin NDT [4] [5]. en ingls, su escenario principal tambin se
A partir del caso de uso, y de manera muestra en ingls), para su implementacin. El
automtica, se han generado un conjunto de proceso utilizado se describe en detalle en [7].
escenarios los cules sern los objetivos de prueba
de dicho caso de uso. Dado que el caso de uso
presenta bucles no acotados, con un nmero
infinito de potenciales repeticiones, criterio de
cobertura elegido para obtener los caminos es el
Tabla 4. Escenarios del caso de uso. Tabla 5. Escenario principal.

Escenario Descripcin Paso Descripcin


01 Aparece un error recuperando las 01 The user selects the option for introduce a
categoras. new link.
02 El usuario cancela la operacin. 02 The system recovers all the stored
03 El usuario introduce un enlace categories and it asks for the information
incorrecto y, despus, aparece un of a link.
error recuperando las categoras. 03 Not(there was an error recovering the
04 El usuario introduce un enlace categories) AND Not(there were not
incorrecto y, despus, el usuario categories found)
cancela la operacin. 04 Not(cancel this operation)
05 El usuario introduce un enlace 05 The user introduces the information of
incorrecto y, despus, aparece un the new link.
error al almacenar el enlace.
06 Not(the link name, category or URL are
06 El usuario introduce un enlace empty)
incorrecto y, despus, el usuario
07 The system stores the new link.
introduce un enlace correcto.
08 Not(there is an error storing the link)
07 El usuario introduce un enlace
incorrecto y, despus, el sistema no Tabla 6. Variables identificadas para el caso de uso.
encuentra ninguna categora.
Variable Descripcin
08 Aparece un error al almacenar el
enlace. V01 Error al recuperar categoras.
09 El usuario introduce un enlace V02 Categoras encontradas.
correcto (camino principal). V03 Opcin del usuario
10 El sistema no encuentra ninguna V04 Datos del enlace
categora.
V05 Error al almacenar el enlace,

Tabla 7. Categoras par alas variables identificadas.


Tambin ha sido posible aplicar el mtodo de
categora-particin. Todas las variables Variable Particiones
operacionales encontradas automticamente por la V01 C01: Ocurre un error.
herramienta ValueGen se enumeran en la tabla 6.
Las particiones para cada una de dichas variables C02: No ocurre un error.
(tambin encontradas por la herramienta V02 C01: No se encontraron categoras.
ValueGen) se enumeran en la tabla 7.
C02: S se encontraron categoras.
En este caso, no se ha continuado refinando el
conjunto de particiones aunque para algunas V03 C01: Cancela la operacin.
variables, como V04, s podran identificarse C02: No cancela la operacin.
particiones adicionales.
Para la implementacin del escenario de xito, V04 C01: El nombre, categora o URL
todas las variables operacionales deben tener un estn vacas.
valor perteneciente a las particiones C02. C02: El enlace es correcto.
V05 C01: Error almacenando el enlace.
C02: No ocurre un error.
Figura 2. Ejecucin del caso de prueba del escenario principal con la herramienta Selenium.

En la siguiente seccin, se definen los 4.3. Implementacin de un caso de prueba


elementos pertenecientes al test harness usados en
este caso prctico. En primer lugar se ha implementado el data
pool y los valores de prueba tal y como se muestra
en la figura 3.
4.2. Test harness.

Tal y cmo se describi en la figura 1, el test


com.thoughtworks.selenium
harness tiene la misin de simular el
comportamiento del usuario y ofrecer un conjunto
de asertos para evaluar el resultado obtenido.
En este caso prctico, al ser el sistema bajo prueba <<import>>
una aplicacin web, es necesario que el test
harness sea capa de comunicarse con el navegador
TestUC01
web y sea capaz tambin de realizar
comprobaciones en el cdigo HTML recibido +setUpScenario09()
+tearDownScenario09()
como respuesta. Por ellos, hemos elegido la +testScenario09()
herramienta de cdigo abierto Selenium
(www.openqa.org/selenium) la cul cumple estas
Link
caractersticas.
-id: int
Como se puede ver el la figura 2, Selenium -name: String
TestDataPool
ofrece un interfaz que permite abrir un navegador -category: String
-URL: String
web e interactuar con l de la misma manera que +getValidLink() -description: String
+getInvalidLink() -approved: boolean
un actor humano. -addDate: Date
Respecto al catlogo de asertos, al estar
basado en la popular herramienta JUnit, Selenium
incorpora el mismo conjunto de asertos que JUnit
y, adems, funciones para acceder a los resultados Figura 3. Implementacin del caso de prueba.
visualizados en el navegador web.
De la tabla 6, slo la variable V04: Datos del traduccin se realiza actualmente a mano y se
enlace, hace referencia a una informacin muestra en la tabla 8.
suministrada desde el exterior al sistema durante Como se mencion en la seccin 4.2, la
la ejecucin de la prueba. Se ha desarrollado una variable V03: Opcin del usuario, se implementa
clase bean para representar los diferentes enlaces. como parte del cdigo del caso de prueba (ltima
Por cada categora posible, se ha aadido un lnea del segundo paso). En la tabla 8, se puede
mtodo esttico al pool para obtener un objeto observar como el caso de prueba no pulsa en la
enlace con valores adecuados a su categora. opcin de cancelar.
Como se mencion en la seccin 4.2, slo se Por las caractersticas especficas de
han tenido en cuenta las dos particiones Selenium, es necesario aadir esperas a que la
principales: enlaces vlidos e invlidos, sin entrar pgina se cargue antes de continuar. Esto significa
en ms subdivisiones. El cdigo resultado puede que, en la implementacin del paso 1, la prueba
descargarse de la misma pgina que hospeda las esperar como mximo 5 segundos a que la
herramientas ObjectGen y ValueGen. pgina se cargue, si no, dar la prueba como no
A continuacin, se toman todos los pasos superada.
ejecutados por el actor humano y se traducen a A continuacin, en la tabla 9, se escribir los
cdigo Java para la herramienta Selenium. Dicha asertos a partir de los pasos que realiza el sistema.
Tabla 8. Traduccin a cdigo ejecutable de los pasos realizados por el usuario en el escenario principal.

Paso: Cdigo:
01: The user selects the option for s.click("AddNewLink");
introduce a new link. s.waitForPageToLoad("5000");
05: The user introduces the information of Link l = TestDataPool.getValidLink();
the new link. s.type("name", l.getName());
s.type("URL", l.getURL());
s.type("description", l.getDescription());
s.click("addEvent_0");
Tabla 9. Traduccin a cdigo ejecutable del test oracle para el escenario principal.

Paso: Cdigo:
02: The system recovers all assertEquals("Add new link form", sel.getTitle());
the stored categories and it assertTrue(s.isTextPresent("Name*:"));
asks for the information of a assertTrue(s.isElementPresent("addEvent_name"));
link.
assertTrue(s.isTextPresent("Category*:"));
assertTrue(s.isElementPresent("addEvent_category"));
assertTrue(s.isTextPresent("URL*:"));
assertTrue(s.isElementPresent("addEvent_URL"));
assertTrue(s.isTextPresent("Description:"));
assertTrue(s.isElementPresent("addEvent_description"));
assertTrue(s.isTextPresent("Date:"));
assertTrue(s.isElementPresent("addEvent_date"));
assertTrue(s.isElementPresent("addEvent_0"));
07: The system stores the assertEquals("Links manager", s.getTitle());
new link. assertFalse(s.isTextPresent("Error storing new link"));
assertTrue(isLinkStored(TestDataPool.getValidLink()));
Como se puede observar en las tablas 8 y 9, la extensin del trabajo presentado en este artculo
variable s es la referencia al objeto que interacta consistira en definir un script de prueba en un
con el navegador, la cul ofrece mtodos para lenguaje independiente que despus pueda ser
realizar acciones con el navegador y comprobar la implementado en distintas herramientas. Un
pgina visualizada. ejemplo preliminar de esto se puede encontrar en
En este caso sera necesario un aserto [8].
adicional que comprobara que el enlace est Como se ha mencionado a lo largo de este
correctamente almacenado en el sistema tal y trabajo, se ha conseguido automatizar la
como dicta la poscondicin del caso de uso. Para generacin de objetivos de prueba mediante dos
ello se ha aadido nuevo mtodo auxiliar herramientas. El resto, an, debe ser realizado
isLinkStored (usado en la ltima lnea del paso manualmente. El camino hacia la automatizacin
07, tabla 9). total an es largo. Como se puede ver en el caso
La implementacin del mtodo de set-up prctico, para la generacin automtica es
consisti en comprobar que todas las variables necesario tener muchos datos especficos de la
operacionales de la tabla 2 tuvieran un valor de la interfaz. Ser necesario no solo tener esos datos,
particin C02. Es decir, comprobar que hay sino definirlos de una manera procesable
categoras y que no hay ninguna circunstancia que automticamente y enriquecerlos con una
ocasione un error al recuperar las categoras o semntica para que el sistema sepa lo que son.
insertar el nuevo enlace. La implementacin del Nuestros futuros trabajos se basan en la
mtodo de tear down, consisti en la restauracin convencin de nombres, desde los requisitos de
del conjunto original de enlaces almacenado en el almacenamiento hasta la implementacin, para
sistema. poder aplicar generacin automtica.

5. Conclusiones
Referencias
En este trabajo se ha mostrado un proceso
para implementar casos de prueba a partir de [1] Beck K. 2002. Test-Driven Development: By
objetivos de prueba para casos de uso. Otros Example. Addison-Wesley ed.
trabajos relacionados con la generacin de [2] Binder, R.V. 1999. Testing Object-Oriented
pruebas ejecutables se citan en los siguientes Systems. Addison Wesley.
prrafos. [3] Denger, C. Medina M. 2003. Test Case
En [1] se pueden encontrar distintos patrones Derived from Requirement Specifications.
para la implementacin de casos de prueba aunque Fraunhofer IESE Report. Germany.
dichos patrones estn muy orientados a la prueba [4] Escalona M.J. 2004. Models and Techniques
unitaria de cdigo. En [13] se muestra un ejemplo for the Specification and Analysis of
de generacin automtica de cdigo de pruebas Navigation in Software Systems. Ph.
para pruebas unitarias, basado en tcnicas de European Thesis. University of Seville.
reflexin aplicadas sobre el cdigo original. En Seville, Spain.
este caso, los objetivos de prueba se definen cmo [5] Escalona M.J. Gutirrez J.J. Villadiego D.
combinaciones de valores de prueba a verificar Len A. Torres A.H. 2006. Practical
por las pruebas generadas. Experiences in Web Engineering. 15th
En [9] se describe un caso prctico sobre la International Conference On Information
prueba de sistemas mviles a travs de GUI Systems Development. Budapest, Hungary, 31
utilizando como punto de partida modelos y August 2 September.
lenguajes especficos de dominio. En concreto, [6] Gutirrez, J.J., Escalona M.J., Mejas M.,
para dicho caso prctico se describi un lenguaje Torres, J. 2006. Generation of test cases from
de modelado especfico, el cul se implement functional requirements. A survey. 4
con posterioridad mediante un conjunto de Workshop on System Testing and Validation.
eventos de la interfaz grfica. Una posible Potsdam. Germany.
[7] Gutirrez J.J. Escalona M.J. Mejas M. Torres [11] Roubtsov S. Heck P. 2006. Use Case-Based
J. 2006. Modelos Y Algoritmos Para La Acceptance Testing of a Large Industrial
Generacin De Objetivos De Prueba. Jornadas System: Approach and Experience Report.
sobre Ingeniera del Software y Bases de TAIC-PART 06. Windsor, UK.
Datos JISBD 06. Sitges. Spain. [12] Ostrand T. J., Balcer M. J. 1988. Category-
[8] Gutirrez J.J. Escalona M.J. Mejas M. Reina Partition Method. Communications of the
A.M. 2006. Modelos de pruebas para pruebas ACM. 676-686.
del sistema. Taller de Desarrollo de Software [13] Polo M. Tendero S. Piattini M. 2006.
Dirigido por Modelos. Jornadas sobre Integrating Techniques and Tools for Testing
Ingeniera del Software y Bases de Datos Automation. Software Testing, Verification
JISBD. Sitges. Spain. and Reliability 17: 3-39
[9] Katare M. et-al. 2006. Towards Deploying [14] Object Management Group. 2003. The UML
Model-Based Testing with a Domain-Specific Testing Profile. www.omg.org.
Modeling Approach. TAIC PART 06. [15] Gutirrez J.J. Escalona M.J. Mejas M.
Windsor. UK. Torres J. Torres A. 2007. Generacin
[10] Meudec C. ATGen: Automatic Test Data automtica de objetivos de prueba a partir de
Generation Using Constraint Logic casos de uso mediante particin de categoras
Programming and Symbolic Execution y variables operacionales. Jornadas sobre
Ingeniera del Software y Bases de Datos
JISBD 07. Zaragoza. Spain.

Vous aimerez peut-être aussi