<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>1692-3324</journal-id>
<journal-title><![CDATA[Revista Ingenierías Universidad de Medellín]]></journal-title>
<abbrev-journal-title><![CDATA[Rev. ing. univ. Medellín]]></abbrev-journal-title>
<issn>1692-3324</issn>
<publisher>
<publisher-name><![CDATA[Universidad de Medellín]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1692-33242009000300004</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Método para generar casos de prueba funcional en el desarrollo de software]]></article-title>
<article-title xml:lang="en"><![CDATA[Generating functional testing case method in software development]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[González Palacio]]></surname>
<given-names><![CDATA[Liliana]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de Medellín  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>07</month>
<year>2009</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>07</month>
<year>2009</year>
</pub-date>
<volume>8</volume>
<numero>15</numero>
<fpage>29</fpage>
<lpage>36</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S1692-33242009000300004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S1692-33242009000300004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S1692-33242009000300004&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Un aspecto crucial en el control de calidad del desarrollo de software son las pruebas y, dentro de estas, las pruebas funcionales, en las cuales se hace una verificación dinámica del comportamiento de un sistema, basada en la observación de un conjunto seleccionado de ejecuciones controladas o casos de prueba. Para hacer pruebas funcionales se requiere una planificación que consiste en definir los aspectos a chequear y la forma de verificar su correcto funcionamiento, punto en el cual adquieren sentido los casos de prueba. En este artículo derivado de investigación se define un método para generar casos de prueba funcional a partir de casos de uso del sistema, como producto intermedio del proyecto cofinanciado titulado "Herramienta para la documentación de pruebas funcionales"]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Testing is a main aspect in quality control of software development, especially functional tests. The aim of functional testing is to dynamically verify the system behavior, based on the observation of a given set of controlled executions or test cases. Planning is required to make functional tests, defining the aspects to be checked and the way to verify its proper operation; this allows test cases make sense. In this paper (research based), we propose a method to generate functional test cases from system use cases, based on the co-financed project "Tool for Documenting Functional Testing."]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[pruebas de software]]></kwd>
<kwd lng="es"><![CDATA[casos de prueba]]></kwd>
<kwd lng="es"><![CDATA[ingeniería de software]]></kwd>
<kwd lng="es"><![CDATA[pruebas funcionales]]></kwd>
<kwd lng="en"><![CDATA[software testing]]></kwd>
<kwd lng="en"><![CDATA[test cases, software engineering]]></kwd>
<kwd lng="en"><![CDATA[functional testing]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  	    <p ALIGN="CENTER"><FONT SIZE="4" FACE="Verdana"><B>M&eacute;todo para generar casos de prueba funcional en el desarrollo de <I>software</I></B></FONT></p> 	    <p>&nbsp;</p> 	    <p ALIGN="CENTER"><B><FONT SIZE="3" FACE="Verdana">Generating functional testing case method in <I>software</I> development  </FONT></B></p> 	    <p>&nbsp;</p> 	    <p>&nbsp;</p> 	    <p><FONT SIZE="2" FACE="Verdana">Liliana Gonz&aacute;lez Palacio*  </FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">* Ingeniera de sistemas Universidad de Antioquia. Mag&iacute;ster en Ingenier&iacute;a con &eacute;nfasis en Inform&aacute;tica Universidad de Antioquia. Docente tiempo completo Programa Ingenier&iacute;a de Sistemas Universidad de Medell&iacute;n. Tel&eacute;fono: 3405529. E&#150;mail: <a href="mailto:ligonzalez@udem.edu.co">ligonzalez@udem.edu.co</a> 	</FONT></p> 	    <p>&nbsp;</p> 	    <p>&nbsp;</p> 	<hr size="1" noshade> 	<FONT SIZE="2" FACE="Verdana"><B>Resumen</B></FONT> 	    ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana">Un aspecto crucial en el control de calidad del desarrollo de <I>software</I> son las pruebas y, dentro de estas, las pruebas funcionales, en las cuales se hace una verificaci&oacute;n din&aacute;mica del comportamiento de un sistema, basada en la observaci&oacute;n de un conjunto seleccionado de ejecuciones controladas o casos de prueba.</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Para hacer pruebas funcionales se requiere una planificaci&oacute;n que consiste en definir los aspectos a chequear y la forma de verificar su correcto funcionamiento, punto en el cual adquieren sentido los casos de prueba. En este art&iacute;culo derivado de investigaci&oacute;n se define un m&eacute;todo para generar casos de prueba funcional a partir de casos de uso del sistema, como producto intermedio del proyecto cofinanciado titulado "Herramienta para la documentaci&oacute;n de pruebas funcionales". 	</FONT></p> 	<FONT SIZE="2" FACE="Verdana"><B>Palabras clave:</B> pruebas de <I>software</I>, casos de prueba, ingenier&iacute;a de <I>software</I>, pruebas funcionales.	</FONT> 	<hr size="1" noshade> <FONT SIZE="2" FACE="Verdana"><B>Abstract  </B></FONT> 	    <p><FONT SIZE="2" FACE="Verdana">Testing is a main aspect in quality control of <I>software</I> development, especially functional tests. The aim of functional testing is to dynamically verify the system behavior, based on the observation of a given set of controlled executions or test cases. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Planning is required to make functional tests, defining the aspects to be checked and the way to verify its proper operation; this allows test cases make sense. In this paper (research based), we propose a method to generate functional test cases from system use cases, based on the co&#150;financed project "Tool for Documenting Functional Testing." 	</FONT></p> 	<FONT SIZE="2" FACE="Verdana"><B>Key words: </B><I>software</I> testing, test cases, <I>software</I> engineering, functional testing 	</FONT> 	<hr size="1" noshade> 	    <p>&nbsp;</p> 	    <p><FONT SIZE="3" FACE="Verdana"><B>INTRODUCCI&Oacute;N  </B></FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Un aspecto crucial en el control de calidad del desarrollo de <I>software</I> son las pruebas y, dentro de estas, las pruebas funcionales, en las cuales se hace una verificaci&oacute;n din&aacute;mica del comportamiento de un sistema, basada en la observaci&oacute;n de un conjunto seleccionado de ejecuciones controladas o casos de prueba &#91;1&#93;. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Las pruebas funcionales son aquellas que se aplican al producto final, y permiten detectar en qu&eacute; puntos el producto no cumple sus especificaciones, es decir, comprobar su funcionalidad &#91;2&#93;. Para realizarlas se debe hacer una planificaci&oacute;n que consiste en definir los aspectos a examinar y la forma de verificar su correcto funcionamiento, punto en el cual adquieren sentido los casos de prueba. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">En este art&iacute;culo se define un m&eacute;todo para generar casos de prueba funcionales a partir de casos de uso del sistema, como producto intermedio del proyecto de investigaci&oacute;n titulado "Herramienta para la documentaci&oacute;n de pruebas funcionales", y est&aacute; organizado como se indica a continuaci&oacute;n: en la segunda secci&oacute;n se encuentran los materiales y m&eacute;todos que fundamentan el trabajo. La tercera secci&oacute;n presenta los resultados, esto es, el m&eacute;todo propuesto en este art&iacute;culo. La discusi&oacute;n de resultados es mostrada en la secci&oacute;n 4. Las conclusiones y trabajos futuros se enuncian en la quinta secci&oacute;n. Por &uacute;ltimo las referencias. 	</FONT></p> 	    <p>&nbsp;</p> 	    ]]></body>
<body><![CDATA[<p><FONT SIZE="3" FACE="Verdana"><B>1. MATERIALES Y M&Eacute;TODOS</B></FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">En esta secci&oacute;n se presentan algunos conceptos b&aacute;sicos que permiten entender las secciones siguientes. Inicialmente se indica a manera de glosario la terminolog&iacute;a necesaria, pasando por una breve revisi&oacute;n de la literatura en cuanto a m&eacute;todos existentes para derivar casos de prueba y por &uacute;ltimo la propuesta que ocupa esta publicaci&oacute;n. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">&#8226; Caso de prueba &#91;2&#93;: conjunto 	    de gu&iacute;as que incluye pasos y resultados esperados durante la ejecuci&oacute;n 	    de una prueba funcional del <I>software</I>.             <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Caso feliz: caso de prueba que prueba el funcionamiento del flujo normal del caso de uso relacionado.     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Verificaci&oacute;n &#91;3&#93;: Conjunto de actividades que pretenden resolver el interrogante: &#191;Se est&aacute; construyendo el producto correctamente&#63;     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Validaci&oacute;n &#91;3&#93;: Conjunto de actividades que pretenden resolver el interrogante: &#191;Se est&aacute; construyendo el producto correcto&#63;     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Error &#91;2&#93;: Discrepancia entre los resultados obtenidos al ejecutar el programa y los resultados que se esperaban.     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Escenario &#91;4&#93;: Conjunto ordenado de interacciones entre un sistema y uno o varios actores.     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Caso de uso &#91;5&#93;: conjunto de escenarios.     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Condiciones de ejecuci&oacute;n en un caso de prueba &#91;2&#93;: inventario de datos con los cuales se llevar&aacute;n a cabo cada paso indicado en el caso de prueba.     ]]></body>
<body><![CDATA[<BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Nivel de complejidad de un error &#91;2&#93;: impacto que genera la presencia del error detectado en caso de no ser resuelto y ser liberada la aplicaci&oacute;n sin corregirlo.     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">&#8226; Resultado esperado: reacci&oacute;n ideal (lo que desea el cliente y lo que est&aacute; en el documento de requisitos) que debe tener la aplicaci&oacute;n ante un escenario y condiciones de ejecuci&oacute;n indicadas. </FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Para llegar a la aproximaci&oacute;n propuesta se hizo un sondeo de las formas actuales usadas para derivar casos de prueba funcional. A continuaci&oacute;n se presenta de manera concisa la revisi&oacute;n de la literatura. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">La metodolog&iacute;a SCENT &#91;4&#93; permite derivar casos de prueba tomando como insumo la definici&oacute;n de escenarios y actores que interact&uacute;an con el sistema, para luego definir prioridades, pasando por la elaboraci&oacute;n de diagramas de dependencia, diagramas de estados y por &uacute;ltimo generar casos de prueba. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Heumann &#91;6&#93; desarrolla un m&eacute;todo para generar casos de prueba tomando como base casos de uso, e identificando dentro de cada uno los posibles escenarios, o caminos de ejecuci&oacute;n, y por &uacute;ltimo definir los valores a probar de cada caso de prueba. Finalmente se obtiene una lista de casos de prueba, con los valores que deben probar y los resultados esperados para cada caso. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">La propuesta de Riebisch et al. &#91;7&#93; est&aacute; centrada en la transformaci&oacute;n autom&aacute;tica de un modelo de casos de uso a un modelo de uso que sirve como entrada para realizar pruebas estad&iacute;sticas autom&aacute;ticas, que mejoran el nivel de cobertura, partiendo de que diferentes partes de un <I>software</I> no necesitan ser probadas con la misma minuciosidad. El m&eacute;todo comienza con el refinamiento de los casos de uso ampli&aacute;ndolos con precondiciones y postcondiciones, alternativas al camino de ejecuci&oacute;n principal y referencia a otros casos de uso relacionados. Despu&eacute;s se traducen a diagramas de estado y se elabora el modelo de uso donde se indica la probabilidad de que ocurra una transici&oacute;n y se identifican los caminos de ejecuci&oacute;n m&aacute;s frecuentes. Por &uacute;ltimo, se extraen los modelos de prueba a partir de los modelos de uso y se generan recorridos aleatorios sobre cada modelo de uso. Cada camino aleatorio ser&aacute; un caso de prueba. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">De otro lado, Hartman &#91;8&#93; es una metodolog&iacute;a centrada en dos productos: el primero compuesto por un modelo del sistema escrito en el lenguaje de modelado IF y un conjunto de diagramas UML de clases y estados que van a permitir la generaci&oacute;n autom&aacute;tica del conjunto de pruebas. El segundo, conformado por un conjunto de objetos de casos de prueba ejecutables tanto en el modelo del sistema como en la implantaci&oacute;n, lo que permite comparar los resultados esperados y los obtenidos. Para obtener los productos enunciados, en primer lugar se construye un modelo de comportamiento del sistema a partir de sus especificaciones. Este modelo est&aacute; compuesto por diagramas UML de clases y un diagrama UML de estados por cada clase que describe el comportamiento de los objetos de dicha clase. A continuaci&oacute;n se elaboran los objetivos de las pruebas (pruebas de casos de uso con datos concretos, pruebas de carga del sistema, etc.) y se traducen a un conjunto de directivas de generaci&oacute;n y ejecuci&oacute;n de pruebas. En el siguiente paso, una herramienta genera autom&aacute;ticamente una serie de pruebas que satisfacen los objetivos de prueba anteriores y se ejecuta autom&aacute;ticamente. Por &uacute;ltimo, se analizan los resultados y se repiten los pasos hasta que se alcanzan los objetivos deseados. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Las anteriores propuestas, reconociendo que se encuentran muy bien estructuradas, no facilitan la derivaci&oacute;n de casos de prueba por la cantidad excesiva de pasos y modelos intermedios que se deben fabricar antes de llegar al resultado final. Este tipo de procedimientos no resulta pr&aacute;ctico para una empresa dedicada al oficio de las pruebas. La aproximaci&oacute;n propuesta en este art&iacute;culo no requiere de modelos intermedios y cuenta con una lista de chequeo que permite tener en cuenta aspectos cruciales a la hora de hacer pruebas funcionales. 	</FONT></p> 	    <p>&nbsp;</p> 	    <p><FONT SIZE="3" FACE="Verdana"><B>2. RESULTADOS</B></FONT></p> 	    ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana">En esta secci&oacute;n se presenta el m&eacute;todo propuesto para derivar casos de prueba funcional, a partir de un ensamble entre las aproximaciones estudiadas y la experiencia de la empresa con la cual se desarrolla este proyecto cofinanciado. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">La <A HREF="#f1">figura 1</A> muestra los insumos y productos que se 	    generan durante el proceso de dise&ntilde;o de casos de prueba del m&eacute;todo propuesto: 	</FONT></p> 	    <P ALIGN="CENTER"><IMG SRC="/img/revistas/rium/v8n15s1/v8n15s1a04f1.jpg"><A NAME="f1"></A></P> 	    <p><FONT SIZE="2" FACE="Verdana">Como se muestra en la <A HREF="#f1">figura 	      1</A>, para derivar casos 	    de prueba funcional usando el m&eacute;todo propuesto en este art&iacute;culo se debe contar con insumos como: la especificaci&oacute;n de casos de uso (diagramas y plantillas de descripci&oacute;n de cada caso de uso), una lista de chequeo que permita determinar si ya fueron probados todos los aspectos relevantes del <I>software</I>, una plantilla para diligenciar cada caso de prueba y la versi&oacute;n de la aplicaci&oacute;n a probar. Como salida se obtendr&aacute; un conjunto de plantillas de casos de prueba debidamente diligenciados. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Luego de contar con estos insumos ser&aacute; sencillo derivar los casos de prueba funcional de una aplicaci&oacute;n. A continuaci&oacute;n se presenta un diagrama que permite observar su proceso de dise&ntilde;o: 	</FONT></p> 	    <P ALIGN="CENTER"><IMG SRC="/img/revistas/rium/v8n15s1/v8n15s1a04f2.jpg"><A NAME="f2"></A></P> 	    <p><FONT SIZE="2" FACE="Verdana">La plantilla de caso de prueba que se referencia en los pasos 4 y 6 del diagrama se presenta a continuaci&oacute;n: 	</FONT></p> 	    <P ALIGN="CENTER"><IMG SRC="/img/revistas/rium/v8n15s1/v8n15s1a04t1.jpg"><A NAME="t1"></A></P> 	    <p><FONT SIZE="2" FACE="Verdana">La lista de chequeo referenciada en el paso 	    5 de la <A HREF="#f2">figura 2</A> permite identificar otros aspectos m&aacute;s 	    espec&iacute;ficos que se le deben probar a cada funcionalidad de la aplicaci&oacute;n: 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">1. Campos opcionales (resuelven dudas como &#191;En 	    el sistema se est&aacute;n respetando los datos que son opcionales&#63; &#191;Es 	    posible lograr la funcionalidad si el usuario deja en blanco estos campos 	    opcionales&#63;).             ]]></body>
<body><![CDATA[<BR> 	</FONT><FONT SIZE="2" FACE="Verdana">2. Campos obligatorios (permiten detectar si: &#191;El sistema est&aacute; permitiendo que se dejen en blanco campos marcados como obligatorios&#63; &#191;Qu&eacute; pasa si se deja en blanco uno de estos campos&#63;).     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">3. Tama&ntilde;o permitido en los campos (logran aclarar comportamientos como: &#191;Qu&eacute; pasa si en un campo que tiene longitud de 10 se ingresan m&aacute;s caracteres&#63;).     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">4. Tipos de datos permitidos (aclaran aspectos como: &#191;Si en un campo que es tipo num&eacute;rico se ingresan otros caracteres que pasa&#63; &#191;El sistema lo controla&#63;).     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">5. C&aacute;lculos (&#191;Si un campo depende de valores que se ingresan en otros campos, que pasa entonces si se ingresan valores incorrectos&#63;).     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">6. Formato de los datos (&#191;Si un campo debe tener formato de pesos, se est&aacute; respetando esto&#63; O solo se ponen cifras y no se indican unidades de medida&#63; &#191;son peras, manzanas o qu&eacute;&#63;).     <BR> 	</FONT><FONT SIZE="2" FACE="Verdana">7. Funcionamiento de v&iacute;nculos. </FONT></p> 	    <p>&nbsp;</p> 	    <p><FONT SIZE="3" FACE="Verdana"><B>3. DISCUSI&Oacute;N DE RESULTADOS 	</B></FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">En esta secci&oacute;n se muestra un comparativo de los m&eacute;todos estudiados y el propuesto en este art&iacute;culo tomando como base algunos criterios importantes: 	</FONT></p> 	    <P ALIGN="CENTER"><IMG SRC="/img/revistas/rium/v8n15s1/v8n15s1a04t2.jpg"><A NAME="t2"></A></P> 	    ]]></body>
<body><![CDATA[<p><FONT SIZE="2" FACE="Verdana">Los n&uacute;meros que encabezan cada columna indican las propuestas revisadas: 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">1: Metodolog&iacute;a SCENT &#91;4&#93;; 2: M&eacute;todo de Heumann &#91;6&#93;; 3: M&eacute;todo de Riebisch &#91;7&#93;; 4: AGEDIS &#91;8&#93;; 5: M&eacute;todo propuesto en este art&iacute;culo. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">Una explicaci&oacute;n de cada criterio de comparaci&oacute;n se indica a continuaci&oacute;n: 	</FONT></p> 	    <P ALIGN="CENTER"><IMG SRC="/img/revistas/rium/v8n15s1/v8n15s1a04t3.jpg"></P> 	    <p><FONT SIZE="2" FACE="Verdana">Como es posible observar en la <A HREF="#t2">tabla 	      2</A>, algunas propuestas 	    cuentan con un n&uacute;mero excesivo de pasos para su utilizaci&oacute;n, adem&aacute;s de agregar esfuerzo adicional al exigir la generaci&oacute;n de modelos o diagramas intermedios antes de la derivaci&oacute;n de casos de prueba. Por otro lado, no cuentan con gu&iacute;as como listas de chequeo que permiten validar si se tuvieron en cuenta aspectos cr&iacute;ticos en la prueba funcional. Adicional a esto tampoco se encontr&oacute; en la literatura el conjunto de plantillas usadas para abordar cada paso indicado en el m&eacute;todo. Por &uacute;ltimo, algunas de las propuestas estudiadas tienen un alto nivel de dificultad asociado con los modelos intermedios y con la falta de plantillas y gu&iacute;as para su uso. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">La propuesta objeto de este art&iacute;culo recoge los m&eacute;todos existentes y la experiencia empresarial para generar un m&eacute;todo con un nivel de formalidad adecuado, y reduce algunas desventajas como el nivel de dificultad y la cantidad de modelos intermedios, evidenciados en las otras aproximaciones. 	</FONT></p> 	    <p>&nbsp;</p> 	    <p><FONT SIZE="3" FACE="Verdana"><B>4. CONCLUSIONES</B></FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">La planificaci&oacute;n y dise&ntilde;o de pruebas funcionales en las primeras fases del desarrollo ayuda a validar los requisitos funcionales. Durante el dise&ntilde;o de la prueba se busca obtener un conjunto amplio de casos de prueba para chequear que toda la informaci&oacute;n incluida en los casos de uso efectivamente est&eacute; implementada en la aplicaci&oacute;n bajo prueba. Pensando en la din&aacute;mica de las empresas, se debe contar con un m&eacute;todo que facilite la derivaci&oacute;n de casos de prueba evitando en lo posible la generaci&oacute;n de modelos intermedios que aumentan el tiempo a invertir para el dise&ntilde;o de la prueba. En este art&iacute;culo se present&oacute; un m&eacute;todo sencillo para generar casos de prueba funcional a partir de casos de uso del sistema. 	</FONT></p> 	    <p><FONT SIZE="2" FACE="Verdana">En publicaciones posteriores se presentar&aacute;n casos de estudio desarrollados usando el m&eacute;todo propuesto, ya que por extensi&oacute;n del art&iacute;culo no es posible incluirlos aqu&iacute;.Como trabajo futuro se plantea la construcci&oacute;n de una herramienta inform&aacute;tica que facilite el uso del m&eacute;todo propuesto. 	</FONT></p> 	    ]]></body>
<body><![CDATA[<p>&nbsp;</p> 	    <p><FONT SIZE="3" FACE="Verdana"><B>REFERENCIAS</B></FONT></p> 	    <!-- ref --><p><FONT SIZE="2" FACE="Verdana">1.  J. Guti&eacute;rrez, M. J. Escalona, M. 	    Mej&iacute;as <I>et al.,</I> "Analysis of Proposals to Generate System Test 	    Cases From System Requirements," in CAiSE&#39;05 Forum, Porto, Portugal, 2005. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000075&pid=S1692-3324200900030000400001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana">2.  W. Lewis, <I>Software testing and continuous 	      quality improvement,</I> 2 ed., Boca Rat&oacute;n, FL: Gunnasekaran Veerapillai, 	      technical contributor, 2005. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000076&pid=S1692-3324200900030000400002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana">3.  I. Sommerville, <I>Software Engineering,</I> 7 	    ed., Michigan: Pearson/Addison&#150;Wesley, 2005. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000077&pid=S1692-3324200900030000400003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana">4.  J. Ryser, and M. Glinz, "A Practical Approach 	    to Validating and Testing Software Systems Using Scenarios," in Quality 	    Week Europe QWE&#39;99, Bruselas, 1999. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000078&pid=S1692-3324200900030000400004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana">5.  C. Larman, <I>UML y patrones. Una introducci&oacute;n 	      al an&aacute;lisis y dise&ntilde;o orientado a objetos y al proceso unificado,</I> 2 	      ed., Madrid: Prentice Hall, 2003. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000079&pid=S1692-3324200900030000400005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana">6.  J. Heumann, "Generating Test Cases From 	    Use Cases,<I>" The rational edge,</I> <A HREF="http://download.boulder.ibm.com/ibmdl/pub/software/dw/rationaledge/jun01/GeneratingTestCasesFromUseCasesJune01.pdf" TARGET="_blank">http://download.boulder.ibm.com/ibmdl/pub/<I>software</I>/dw/rationaledge/jun01/GeneratingTestCasesFromUseCasesJune01.pdf</A>, 	    2001&#93;. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000080&pid=S1692-3324200900030000400006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana">7.  M. Riebisch, I. Philippow, and M. G&#246;tze, "UML&#150;Based 	    Statistical Test Case Generation," in Revised Papers from the International 	    Conference NetObjectDays on Objects, Components, Architectures, Services, 	    and Applications for a Networked World, 2003, pp. 394&#150;411. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000081&pid=S1692-3324200900030000400007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p><FONT SIZE="2" FACE="Verdana">8.  A. Hartman, <I>AGEDIS 1999&#150;20218 Final 	      Project Report,</I> 2004. 	</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000082&pid=S1692-3324200900030000400008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p>&nbsp;</p> 	    <p><FONT SIZE="2" FACE="Verdana"><B>Recibido:</B> 31/08/2009    <B>    <BR>     Aceptado:</B> 05/10/2009 																								   	</FONT></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gutiérrez]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Escalona]]></surname>
<given-names><![CDATA[M. J.]]></given-names>
</name>
<name>
<surname><![CDATA[Mejías]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Analysis of Proposals to Generate System Test Cases From System Requirements]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ CAiSE'05 Forum]]></conf-name>
<conf-date>2005</conf-date>
<conf-loc>Porto </conf-loc>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lewis]]></surname>
<given-names><![CDATA[W.]]></given-names>
</name>
</person-group>
<source><![CDATA[Software testing and continuous quality improvement]]></source>
<year>2005</year>
<edition>2</edition>
<publisher-loc><![CDATA[Boca Ratón^eFL FL]]></publisher-loc>
<publisher-name><![CDATA[Gunnasekaran Veerapillai, technical contributor]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sommerville]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Engineering]]></source>
<year>2005</year>
<edition>7</edition>
<publisher-loc><![CDATA[Michigan ]]></publisher-loc>
<publisher-name><![CDATA[Pearson/Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ryser]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Glinz]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Practical Approach to Validating and Testing Software Systems Using Scenarios]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ Quality Week Europe QWE'99]]></conf-name>
<conf-date>1999</conf-date>
<conf-loc>Bruselas </conf-loc>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Larman]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<source><![CDATA[UML y patrones: Una introducción al análisis y diseño orientado a objetos y al proceso unificado]]></source>
<year>2003</year>
<edition>2</edition>
<publisher-loc><![CDATA[Madrid ]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Heumann]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Generating Test Cases From Use Cases]]></article-title>
<source><![CDATA[The rational edge]]></source>
<year>2001</year>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Riebisch]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Philippow]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Götze]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[UML-Based Statistical Test Case Generation]]></article-title>
<source><![CDATA[Revised Papers from]]></source>
<year></year>
<conf-name><![CDATA[ the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World]]></conf-name>
<conf-date>2003</conf-date>
<conf-loc> </conf-loc>
<page-range>394-411</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hartman]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<source><![CDATA[]]></source>
<year></year>
<conf-name><![CDATA[ AGEDIS 1999-20218]]></conf-name>
<conf-date>2004</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
