Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
TestResult * 1 TestOracle
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.