por
Praveen Kallakuri
y Sebastian Elbaum
Traducido por
Luz Cummings
Este artículo primero proporciona una descripción de las definiciones y estrategias necesarias al conducir un estudio empírico. Despues, examinanos los conceptos y metas de la ingeniería de programas experimental. Finalmente, examinamos la estructura de estudios experimentales. La estructura de la experimentación abogada en este trabajo se basa en las ofertas de Perry, Porter, y Votta [8]. Concretaremos nuestra discusión examinando un estudio experimental en la diferenciación textual de regresion llevado a cabo, actualmente, por el Equipo Experimentos de Medidas, Analisis, Perfiles, y Pruebas de Programas (MAPSTEXT) [6] de la Universidad de Nebraska-Lincoln.
La Investigación Empírica se puede definir como investigación basada en la observación para descubrir un desconocido o probar una hipótesis [5]. La Investigación Empírica generalmente se trata de un investigador acumulando datos y ejecutando analisis para determinar el significado de esos datos, y abarca las siguientes estrategias de investigación:
Entre estas estrategias, la experimentación es costosa y compleja, sin embargo la mas eficáz para probar una hipótesis. La fortaleza de este metodo se encuentra en la posibilidad de estudiar sistematicamente causas y efectos por medio de manipular las variables de un sistema. Ademas de control, repetición es otro atributo de la experimentación. Repetición le concede major certeza a la obsevación.
Los estudios anécdota y de caso se basan en la observación de la practica real, no obstante el investigador no puede ejercitar el mismo nivel de control sobre el estudio, posible en la experimentación. Otro problema de índole práctica es que es dificil encontrar los estudios de caso que corresponden con las metas del investigador.
La tercera estrategia es la demostración de un concepto en temas seleccionados. Este metodo es el mas eficáz cuando un estudio tiene el alcanze limitado de acentuar la utilidad de una técnica existente.
Para el resto de esta discusión, nos concentraremos en la primera de esta estrategias, investigación experimental.
Una teoría se considera apoyada si sus conclusiones pueden ser validadas por medio de explicaciones lógicas y físicas de sus principios. El componente lógico explica la idea detrás de la teoría y le presta credibilidad; el componente físico implementa la metodología y deriva las conclusiones del componente lógico por medio de la observación y análisis.
En MAPSTEXT, seguimos el acercamiento experimental. Ademas de verificar nuestras hipótesis lógicamente, también las ponemos en practica en los temas a menudo seleccionados de industria. Usamos el metodo que mejor llena los requerimientos de la teoría y observamos si conseguimos las conclusiones esperadas. La majoría de las dudas con respecto a la factibilidad de un método se calman cuando lo simulamos y mostramos como trabaja. La evaluación empírica de un concepto asume el papel primario en la manera que conducimos la investigación.
En la sección siguiente, examinamos los componentes que constituyen la estructura de un estudio empírico. La mayoría de los pasos de progresión que discutimos se basan en la estructura propuesta por Perry, Porter y Votta [8]. Un artículo sobre la experimentación parecería incompleto sin un ejemplo. Por lo tanto, la descripción de cada paso de progresión es seguida por un caso, que es realmente un estudio que es realizado en MAPSTEXT. Examinamos este estudio a la luz de la estructura que definimos para la ingienería de programas experimental. Aunque el experimento todavía está en curso, responde al propósito de explicar cómo la estructura se puede utilizar realmente en un experimento.
Definición De Problema
Entre las expectativas de un estudio, Anger [1] discute la " colocación de la investigación propuesta con respecto al otro trabajo relacionado. " Donde sea posible, las metas en nuestro estudio se deben basar en las preguntas no resueltas por la investigación anterior.
La industria también le agrega perspectiva al problema. Observando prácticas en industria, nosotros ganamos la entrada de información significativa en las expectativas de nuestra investigación.
Una vez que procesamos la información recibida de la investigación anterior y de la industria, tenemos el fondo del problema en perspectiva. Procedemos, concentrandonos en las porciones específicas del problema que nuestro estudio investigará. La ilustración que sigue examina cómo observaciones e información recibida de la industria y de la investigación anterior nos conducen a los problemas que definen el alcance de nuestro estudio.
Fondo a Nuestro Estudio
El foco de nuestro estudio en MAPSTEXT es la regresión de prueba, que es el proceso de examinar lógica de programas para verificar que el programa modificado todavía trabaja correctamente, en todos los casos de prueba usados para probar el programa original. Las prácticas actuales en la industria para la prueba de la regresión son primitivas [7]. Normalmente, una suite de pruebas se ejecuta en su totalidad durante la prueba del sistema después de cada cambio del código y antes de un desbloquear formal. Esto es tan ineficáz como es costoso y desperdicia tiempo. Sin embargo, en ausencia de alternativas más baratas y más eficientes, la industria ha seguido usando este método de prueba .
En un esfuerzo de abordar este problema, la comunidad de investigación propuso la regresión selectiva de pruebas en donde solamente los módulos afectados en el código oríginal se seleccionan. Bastantes técnicas se han propuesto para ejecutar la prueba selectiva de regresión. Rothermel y Rosenblum [2] han descrito una evaluación comparativa de diversas técnicas para la prueba de regresión selectiva en un conjunto de sujetos de experimento. Rothermel y Harrold [10] [11] también han presentado una serie de algoritmos seguros y estudios empíricos para la selección de prueba de la regresión. En particular, los dos métodos DejaVu y TestTube desarrollados por los autores se evalúan y se comparan para mostrar que ni unos ni otros pueden ser exactos y eficientes.
Vokolos y Frank[13] desarrollaron un acercamiento distinto a la prueba selectiva de la regresión, llamada el diferenciamiento textual. Inicialmente, se forma una asociación de casos de prueba a los bloques básicos del código original. Después, declaraciones modificadas en un programa son identificadas comparando las versiones viejas y nuevas del código original. Finalmente, la prueba de la regresión es realizada ejecutando esos casos de prueba que apuntan hacia los bloques básicos que contienen las declaraciones modificadas del programa. Vokolos y Frankl [14] también desarrollarón una herramienta, Pythia, basada en este acercamiento. La eficacia y la precisión de esta herramienta fuéron verificadas más adelante [15] using un programa escrito por La Agencia Espacial Europea. Nuestro trabajo comienza donde este estudio termina.
Alcance de nuestro estudio
El experimento de Vokolos y Frankl [15] evaluó empíricamente sólo una parte de su acercamiento; la réplica del método se juzga necesaria para asegurar la ausencia de cualquier resultado circumstancial específico a esa puesta en práctica. Por lo tanto, la técnica necesita ser probada en lógica de programas de diversos dominios. Por otra parte, el concepto no fué puesto en ejecución a través de versiones múltiples del código original, que es la norma del desarrollo de la lógica de programas en la industria. Nuestro objetivo es enfocar y mejorar sobre estos aspectos de diferenciación textual.
Hipótesis
La etapa siguiente es definir una hipótesis y utilizarla para generar preguntas de alto nivel, abstractas. El uso de la abstracción nos ayuda a análizar nuestras hipótesis en las preguntas definidas, que se pueden contestar cuantitativamente. Asimilando, podemos derivar conclusiones a nuestras preguntas abstractas. Puesto que las preguntas abstractas se derivan de la hipótesis inicial, sus respuestas validan lo último
El objetivo de nuestro estudio es probar que diferenciación textual puede minimizar e l costo y tiempo requerido en la prueba de regresiones de programas. El estudio [13] concentrado en poner la metodología en ejecución de un tema . El concepto se debe probar en diversos temas, representativos de los diversos dominios, para consolidar los resultados. Por lo tanto, otro objetivo de este estudio es utilizar diversos temas para validar nuestras hipótesis .
Nuestra primera hipótesis predice que con esta técnica se reducirá la talla del porcentaje de la suite de pruebas comparada a la suite original de pruebas. Se implica que éste también causará una reducción en la longitud de la fase regresión-regresión-prueba. La segunda hipótesis es que al usar la suite seleccionada de prueba, no habrá disminución del porcentaje del número de los incidentes detectados comparados al caso cuando se utiliza la suite completa de pruebas. Nos referimos al número de los incidentes detectados por una suite de prueba como la potencia de la suite de prueba .
De las hipótesis antedichas, las preguntas planteadas en nuestro estudio son :
Es importante observar que estas preguntas son interdependientes. En el estudio final, no es muy útil tener unasuite más pequeña de pruebas, que detecta un porcentaje más pequeño de incidentes en lo referente a la suite original de pruebas. Nuestra idea es guardar lafortaleza de la constante de la suite deprueba, mientras que reduce su talla. El mejor caso es que podemos reducir la talla de la suite deprueba mientras que conserva su fortaleza, y viceversa .
Estas preguntas pueden ser definidas mas a fondo:
Éstas son solamente algunas de las muchas preguntas concretas que serán encontradas en el curso del estudio. Estas preguntas son simples; pueden ser contestadas directamente agregando nuestros resultados a través de varias versiones y temas.
En orden de establecer la validad empírica de una teoría, nosotros necesitamos probarla en sujetos de diferentes dominios. Esto es, eliminando el efecto de variables circumstanciales en el ambiente del experimento. Este paso implica la preparación de objetos que necesitan ser procesados y manipulados por nuestros experimentos. Algunas de las preguntas que mantenemos en mente al seleccionar un sujeto son:
La naturaleza exacta de la preparación de un sujeto será más clara a partir de la siguiente illustración, la cual presenta a los sujetos siendo usados en nuestro estudio, preparándolos para los experimentos y otras fuentes de datos.
Cada miembro investigativo del MAPSTEXT [6] trabaja en preparar y experimentar con un sujeto diferente para substanciar nuestra hipótesis. Nuestros sujetos son el código de programas bajo desarrollo. Al tiempo de escribir este artículo, tres programas están siendo preparados para el estudio:
Además de estos tres, hay otros sujetos que están siendo examinados para concordancia. En este artículo, nosotros illustramos el uso de el program BASH, de el cual nosotros usamos versiones 1.14.7 a 2.04. La racional detrás la selección de BASH como sujeto para este estudio fué basada en su facilidad para pruebas de regresión. Como la preparación de un sujeto es costosa, BASH fué seleccionado porque es un programa abierto desarrollado por el GNU. Adicionalmete, la majoría de las versiones de BASH vienen con al menos una suite parcial de prueba, lo cual puede reducir significativamente el tiempo y costo de preparación de un sujeto. BASH también pasó nuesto requerimiento de ser un programa evolucionario con multiples versiones, lo cual es como los programas son generalmente desarrollados en la industria.
Las características de el programa BASH lo hacen un buen sujeto para asegurarse que los experimentos sean repetibles, y también facilita el análisis (discutiremos esto en la sección de diseño).
Preparando el sujeto, BASH en este caso, incluye desarrollar argumentos de prueba, creando las tablas de funciones, encontrando y creando de tablas de fallas y cualquier otro dato que nosotros necesitemos para procesar. El proceso de identificar los errores en varias versiones de el programa y compararlas con versiones futuras para descubrir mejoras es una parte de la fase de preparación del sujeto. El grupo sigue reglas similares de análisis, selección, y preparación para todos los sujetos en el experimento.
La principal característica de un experimento es el angulo escojido para llevarlo a cabo . El diseño de un estudio se preocupa del método seguido para experimentar con el sujeto y el proceso para generar datos. En efecto, es un plan detallado acerca de como los sujetos serán usados para probar la el hipótesis.
Un set de componentes descrito como parte de el plan para crear datos son las variables independientes y dependientes. Los autores en [8] definen variables dependientes como atributos los cuales definen el marco del estudio. Manipulando estas variables dependientes puede producir una cantidad de datos importante, lo cual puede ayudarnos a determinar si la hipótesis es verificada o no. Variables dependientes son definidas como el resultado de aquellas cuyos valores varian de manera predecible manipulando las variables independientes.
Nosotros empezamos por identificar las variables independientes y las variables dependientes en nuestro experimento. Las variables dependientes nos deberán llevan a soluciones para nuestras preguntas concretas por medio de observar y analizar su comportamiento. Nuestros experimentos son llevados a cabo por medio de controlar las variables independientes y medir el efecto en las variables dependientes. Necesitamos confirmar que los cambios observados en las variables dependientes son en verdad causados por el regulamiento de las variables independientes. En consecuencia, nosotros sistematicamente "manipulamos" las variables independientes repetidamente para aislar el efecto en las variables dependientes. Este proceso niega el efecto de cualquier variable circumstancial en el experimento que pudieran afectar los valores de las variables dependientes observadas. Cuando podemos confirmar una relación de causa y efecto entre las variables independientes y dependientes, nos basta una suposición fundamental en nuestro experimento (prodremos examinar esta y otras suposiciones en la sección de análisis de datos estadísticos).
El diseño de un estudio enlaza las varias entidades envueltas en un experimento, como la hipótesis, sujetos, y las medidas. Por ejemplo, podría indicar como los sujetos pueden ser manipulados para producir datos (metrics) que pueden contestar nuestras preguntas (hipótesis). El diseño también describe el marco necesario para conducir el experimento. Perry, Porter y Votta [8] describen esto como el ambiente físico, intelectual y cultural donde el estudio se lleva a cabo. Esta información es significativa para la mejor interpretación de los datos cuando el concepto es ejecutado en un ambiente diferente. El diseño también incluye el problemas de recursos y riesgos que son naturales como parte de el estudio. Nosotros examinaremos como los principios de diseño de un estudio empiríco son ejecutados en nuestro actual ejemplo.
En nuestro estudio, las variables independientes son sujetos, versiones, y suites de prueba; las variables dependientes son el porcentaje de reducción en el tamaño de la suite de prueba y el porcentaje de cambio en el número de defectos descubiertos.
Aseguramos que los casos de prueba en cada suite de prueba (perteneciente a cada version) son los mejores para verificar la funcionalidad de la versión a la que pertenecen. Anotamos los defectos descubiertos en la suite de prueba. Repetimos este proceso para todas las versiones para tener suficientes datos para todo el sujeto. El siguiente paso es usar nuestra herramienta de diferenciado textual en versiones consecutivas de el código. Esto identifica las funciones en las versiones subsiguientes de el código que han sido añadidas, modificadas, o borradas desde las version anterior. Enumeramos las funciones donde han ocurrido cambios y con la ayuda de los datos, identificamos los casos de prueba que validan estas funciones. Entonces tenemos un subconjunto de la suite original de prueba, lo cual solamente verifica la funcionalidad de aquellas funciones en la version corriente que han sido añadidas, modificadas o borradas desde la version anterior. El tamaño del subconjunto de la suite original de prueba es nuestra primera variable dependiente. Nuestro siguiente paso es correr este subconjunto de la suite de prueba en el código original y verificar el número de defectos descubiertos. Esta es nuestra segunda variable dependiente. Nuestro objetivo es mantener la reducción en el número de defectos descubiertos al un mínimo mientras tratamos de lograr el major porcentaje de reducción en el tamaño de la suite de prueba. Habremos logrado eficiencia máxima usando este método cuando el número de defectos descubiertos permanece igual para una reducción en el tamaño de la suite de prueba. Repetimos este proceso para cada version de el código original, y despues para cada sujeto. De esta manera, alcanzamos una etapa donde tenemos sets de valores para las variables dependientes a traves de nuestros varios sujetos y versiones constituyentes.
Nos adherimos a un diseño factorial al examinar nuestra hipótesis. Un diseño factorial implica que cada variable independiente es aislada para medir su efecto en las variables importantes. A continuación es una lista de factores involucrados en nuesto estudio.
Nosotros aplicamos estos factores en varias combinaciones como se muesta en la siguiente tabla. Por razones de claridad, sólo tres sujetos y dos versiones son tabuladas. Para una dada version de el código, la técnica de diferenciado textual es usada derivando un subconjunto TS1' de la suite original de prueba TS1. El tamaño de la suite de prueba TS1 y TS1', el cual puede ser el número de casos en cada suite de prueba, es anotado para cada versión; esta es nuestra primera variable dependiente. TS1 y TS1' independientemente corren en la versión dada de el programa. El número de fallas detectadas es observada; esta es nuestra segunda variable dependiente. El experimento es repetido para cada Ver1, Ver2... Ver N. Las observaciones son repetidas para cada sujeto, Sub 1, Sub 2, Sub 3... SubM. Las medidas son analizadas como descrito en la subsiguiente sección de análisis de datos.
|
VARIABLES INDEPENDIENTS |
Sub 1 |
Sub 2 |
Sub 3 |
|||||||||
|
VARIABLES DEPENDIENTES |
Ver 1 |
Ver 2 ... |
Ver 1 |
Ver 2 ... |
Ver 1 |
Ver 2 ... |
||||||
|
TS1 |
TS1' |
TS2 |
TS2' |
TS1 |
TS1' |
TS2 |
TS2' |
TS1 |
TS1' |
TS2 |
TS2' |
|
|
Tamaño de la suite de prueba |
OBSERVACIONES |
|||||||||||
|
Número de fallas detectadas |
||||||||||||
Nota: Para cada versión Ver(N), TS(X)' es un subconjunto de TS(X) selectecionado por medio de la técnica de diferenciado textual.
Herramientas son significativas al conducir experimentos. La fortaleza de una ejecución resta en la simplicidad de las herramientas usadas para que la simulación se convierta en una acción relativamente facil. Una de las metas de un estudio experimental es ser capáz de reproducir fácilmente el estudio con varios sujetos y dominios. Nosotros facilitamos esta meta porque includimos una descripción completa y tipo de herramientas usadas en nuestro experimento.
Nosotros instrumentamos el código de cada sujeto usando el Clic tool [3](detalles se pueden encontrar en el sitio de web de el MAPSTEXT) [6]. Clic es un programa el cual instrumenta el código escogido, en orden de proveer un rastro de ejecución para cada suite de prueba. Varios programas C y Shell scripts han sido desarrollados por miembros del equipo para procesar reportes de rastros y generar información general. Estos son usados en combination con tablas de fallas, lo cual enumera las fallas descubiertas en cada version de el programa, determinan el porcentaje de cambio en el tamaño de la suite de prueba y fallas detectadas por la suite de prueba seleccionada.
La parte de diferenciamiento de esta técnica de experimentación se basa en una utilidad estandar Unix 'diff', la cual es usada por la herramienta de cubrimiento general. La major parte de los detalles de estas herramientas usadas a través de estos experimentos, tal cual los orígines de las versiones, seran completamente presentadas al final del estudio.
Las estadisticas proveen un mechanismo objetivo para analizar datos y producir conclusiones. Proveen pautas las cuales validan la seguridad de los resultados porque le añaden al nivel de confianza de nuestra hipótesis.
Podemos analizar datos generados por nuestros experimentos cuantitativamente o qualitativamente. Cuando hacemos un analisis quantitativo [12], dado que nuestros experimentos involucran mas de un par de factores a traves de nuestros datos muestra, necesitamos determinar:
Debemos determinar si nuestros datos muestra permiten estas suposiciones en orden llegar al significado de nuestros resultados, lo cual determina el nivel de confianza en nuestros resultados. Esto varía dependiendo en la cantidad de datos y precision de medidas. Donde los datos son abundantes y las medidas son precisas, nosotros tenemos un major nivel de confianza; por otra parte, datos limitados y medidas imprecisas implican un nivel de confianza menor en los datos generados por las pruebas. es dificil determinar exactamente el nivel de confianza suficiente para validar una hipótesis. Entonces, es mejor que nuestro estudio solamente determine el nivel de confianza y la discusión sobre su validéz se la dejamos a los inspectores.
Análisis qualitativo usa datos imposibles. Sin embargo, las fuentes de dichos datos, generalments son las personas involucradas, incluyendo sus opiniones e impresiones acerca del estudio. Estas observaciones pueden probar vital para la ejecución del concepto en la industria. Perry, Porter y Votta [8] se refieren a una técnica para análisis qualitativo llamada grounded theory propuesta por Glasser y Strauss [4]. Glasser y Strauss indican, "Muchas veces, ambas formas de datos son necesarias -- no quantitativo usado para probar qualitativo, pero ambas usados como supplementos, como mutua verification y, mas importante para nosotros, como diferente formas de datos en el mismo sujeto." La sección siguiente explica como el análisis de datos es llevado a cado en nuestro ejemplo.
Como en definiciones anteriores, las variables independientes en nuestro estudio son:
Alterando las variable independientes, observamos los cambios en las variables dependientes. Estos son:
En otras palabras, tenemos dos medidas básicas - una, el número de fallas encontradas en la ejecución de la suite de prueba, antes y después de la instrumentation de el código original; dos, el número de casos prueba que son seleccionados por la suite de prueba después de correr nuestras herramientas de diferenciando en la version instrumentada de el código original. Ejecutamos estas medidas para uno de lo siguiente:
Nuestras medidas son el resultado de todas las combinaciones posibles de los factores investigados. Estas medidas son assimiladas para generar informacion sobre extension de funciones. Asimilación de tal información a partir de los experimentos nos permite observar las variables dependientes - el porcentaje de redución en el tamaño de la suite de prueba y el porcentaje de cambios en las fallas detectadas. A partir de estos datos, podemos validar nuestras suposiciones acerca de la importacia estadística. Usamos paquetes de estadisticas como SYSTAT y SAS para ayudarnos con las operaciones matemáticas.
La magnitud de la importancia de estas estadisticas ayudan al inspector a validar nuestra hipótesis - esto es, si la técnica de diferenciado textual nos permite una reducción en el tamaño de la suite de prueba mientras retiene la fortaleza de la misma. Los valores de estas variables dependientes a traves varias sujetos determinan si el método es efectivo en general, sin importatr el dominio desde el cual el programa origina.
La validez de nuestras conclusiones son influenciadas por factores que originan ambas desde adentro y afuera de nuestro estudio. Una vez que hemos ejecutado los experimentos y derivado los sets de datos, llegar a conclusiones a partir de estos sets es independiente de si podemos validar nuestras suposiciones al mismo tiempo que analizamos la variante (ANOVA)de los resultados. Perry, Porter, y Votta [8] categorizan estas amenazas en estudios experimentales como validez construida, interna y externa.
Amenazas a la validez de nuestro estudio
En nuestro estudio, determinamos si la relación entre las variables independientes y dependientes son condiciones sufientes y necesarias para validar nuestra hipótesis. En otras palabras, queremos establecer que experimentando con distintos sujetos, numerosas versiones, y las bastantes-seleccionas suites de prueba, afectan directamente el tamaño de la suite de prueba mientras le permiten retener fortaleza. Vemos que los último es en verdad nuestra hipótesis y que podemos asumir que nuestras hipótesis son en realidad validadas por el comportamiente de acción-reacción de nuestras variables independientes y dependientes.
Dentro de la validez construida de nuestro estudio, se encuentra otra amenaza. Tenemos que determinar la confianza con que podemos decir que la reducción en tamaño y retención de la fortaleza de la suite de prueba son consecuencia directa de la aplicación controlada de las variables independientes. Esta es la validez interna de nuestro estudio. Las medidas de distribución normal y variantes a traves de los sets de datos, nos deberan ayudar a determinar cuanto estas amenazas prevalecerán.
El diseño factorial de nuestro estudio deberá eliminar cualquier pregunta acerca de la validez externa de nuestro estudio. Primero, conducimos este estudio con múltiples sujetos, por lo tanto reducimos la influencia de cualquier factor ambiente externo que pertenezca al dominio de donde procede nuestro sujeto. Segundo, porque usamos versiones multiples de cada sujeto, debemos tomar en consideración el factor de la edad del código original. La diferencia en tamaño y contenido de cada suite de prueba completa y su subconjunto seleccionado, tambien aporta una buena medida de heterogenidad.
La idea de un análisis experimental es que nuestras conclusiones son validadas por el análisis de la observaciones que hacemos. El significado de nuestros resultados nos proporciona una evaluación cuantitativa de nuestro concepto en práctica. Ofrece una medida definitiva de la eficacia de nuestro método opuesto al análisis abstracto y extrapolaciónes usadas en la majoría de otros estudios, los cuales no poseen una base empírica. Un buen análisis lógico es también uno que hace razón de todos los datos que poseemos al final del estudio. Sin embargo, la fortaleza de nuestras conclusiones son determinadas en gran parte a partir de los resultados de nuestro experimentos.
Es verdad que muchos investigadores caen cortos de proveer conclusiones significativas a sus experimentos [1]. En donde sea posible, debemos señalar conclusiones a los problemas reales enfrentados por los que usan el codigo para que el estudio no se quede nada mas como un concepto en papel, pero que evolucione a ser usado en la práctica. Otra razón para enfatizar conclusiones claras es que estas debieran comportarse como agregados a estudios subsiguientes en el mismo tema. Investigadores siguientes debieran poder continuar donde nuestro estudio termina, y para que esto sea posible, nuestras conclusiones deben presentar claramente las preguntas que ya han sido contestadas y cuales son las preguntas todavía por constestar.
A pesar de que nuestro ejemplo del estudio en diferenciación textual falta bastante por completar, compartiremos brevemente conclusiones posibles.
Conclusiones a nuestro estudio
No hemos llegado a la fase donde es posible señalar las conclusiones de este estudio. Sin embargo, esperamos que algunas de las siguientes conclusiones sean sustanciadas por el estudio.
La necesidad de desarrollar sistemas seguros y de buen costo a pesar del crecimiento en complexidad forzó a los investigadores a aconsejar el uso de estudios empíricos en la ingienería de programas. El ángulo empírico ofreció la posibilidad de una ciencia de construcción debajo de los paradigmas existentes de la ingienería de programas, lo cual le permitiría a los practicantes determinar qué es posible y qué no es posible, dado el estado corriente de la tecnología. Entre las estrategia para análisis empírico, experimentación es la mas compleja y costosa, pero un acercamiento poderoso. En este trabajo, hemos revisado la estructura de estudios experimentales en el contexto de pruebas de regresión. Hemos ilustrado nuestra discusión con el ejemplo de un estudio de una técnica regresiva en diferenciado textual, la cual se lleva a cabo presentemente en el MAPSTEXT [6].
La investigación en el MAPSTEXT formó la majoría del contenido de este trabajo. Le agradecemos a David Gable por su contribución al marco experimental.
Praveen Kallakuri (http://cse.unl.edu/~pkallaku) es estudiante MS delprimer añoen el Department de Ciencias Computacionalesy Ingienería de la Universidad de Nebraska-Lincoln. Elha trabajado por más de 2 años en la industria para Satyam - Centro de Desarrollo Global de la General Electric, India http://www.satyam.com/
Sebastian Elbaum (http://cse.unl.edu/~elbaum) esprofessor assistenteen el Department de Ciencias Computacionalesy Ingienería de la Universidad de Nebraska-Lincoln. Poseeun PhD en Ciencias Computacionales de la Universidadde Idaho, Moscow, ID.