Professional Documents
Culture Documents
FACULTAD DE INGENIERA
DIVISIN DE ESTUDIOS PROFESIONALES PARA EJECUTIVOS
CARRERA DE INGENIERA DE SISTEMAS
TRABAJO FINAL
INTEGRANTE:
ZEGARRA PREZ, CARLOS
PROFESOR:
BRUNO VARGAS TAMANI
NDICE
1
INTRODUCCIN.......................................................................................................................................3
OBJETIVOS................................................................................................................................................3
JUSTIFICACIN........................................................................................................................................4
DESCRIPCIN GENERAL.......................................................................................................................8
10
11
GLOSARIO DE TRMINOS...................................................................................................................20
12
SIGLARIO..................................................................................................................................................21
13
BIBLIOGRAFA.........................................................................................................................................21
Pgina 2
INTRODUCCIN
OBJETIVOS
Investigar la aplicacin de las tcnicas y conceptos de la Inteligencia Artificial en
un problema concreto del mbito de mi desempeo profesional: el desarrollo de
software y las pruebas de regresin.
Pgina 3
JUSTIFICACIN
uso
de
software
con
interfaz
grfica
de
usuario
puede
aumentar
Pgina 4
Expertos en el problema
Atif M. Memon
Departamento de Ciencias de la Computacin y Centro de Ingeniera de Software
Experimental - Fraunhofer, Universidad de Maryland, EE.UU.
E-mail: atif@cs.umd.edu
Caractersticas importantes del problema: tipo y alcance
Aunque las pruebas de regresin de software convencional han recibido mucha
atencin [6, 32, 34, 35], casi no ha habido investigacin reportada sobre las pruebas
de regresin a GUI. La excepcin es White [40] que propone un mtodo Latin
square para reducir el tamao del conjunto de pruebas de regresin.
Varias estrategias para las pruebas de regresin de software convencional se han
propuesto [2, 9, 30, 17]. Una estrategia de pruebas de regresin propone volver a
ejecutar todos los casos de prueba que no han quedado obsoletos. Dado que esta
estrategia de probar todo es intensiva en recursos, se han hecho numerosos
esfuerzos para reducir su costo.
de volver a probar todo, los enfoques seguros siguen haciendo grandes demandas
de recursos. En el otro extremo del espectro de estrategias de reprueba selectivas,
estn enfoques que tratan de seleccionar el conjunto ms pequeo de casos de
prueba necesarios para probar los elementos del programa afectados al menos una
vez [36]. Estas tcnicas intentan asegurar que al menos un criterio de cobertura
estructural se cumpla en los casos de prueba que se han seleccionado. Las
estrategias prcticas caen entre las estrategias seguras y las de minimizacin. El
diseador de pruebas podra estar satisfecho con el uso de conjuntos casi mnimos
de casos de prueba [31].
Las tcnicas de reprueba selectivas para el software tradicional tratan de reducir el
costo de las pruebas de regresin mediante la identificacin de las partes del
software modificado que deben ser probadas nuevamente. El conjunto de pruebas
original se divide en (1) los casos de prueba que no hay que volver a ejecutar en el
software modificado, porque la modificacin no fue transversal, (2) los casos de
prueba que tienen que volver a ejecutarse porque la modificacin fue transversal, y
(3) los casos de prueba obsoletos que ya no son necesarios para probar el software
[34, 33]. Nuevos casos de prueba tambin pueden ser generados para probar las
partes del software modificado no probado en (2). La divisin descrita de los casos
de prueba originales no se puede aplicar a interfaces grficas de usuario debido a
que la estructura de un caso de prueba de GUI, mostrada a continuacin, slo
permite los casos (1) y (3) de arriba, es decir, ningn caso de prueba del conjunto de
pruebas original podra o debera volver a ejecutarse.
Un caso de prueba de GUI consta de 3 partes: (a) un estado inicial de la GUI S 0 en
el que se ejecuta el caso de prueba, (b) una secuencia de eventos e 1; e2; ...; en que
son las entradas de la prueba para la GUI, y (c) una secuencia de estados S 1, S2, ...,
Sn, donde Si; es el estado esperado de la GUI despus de que el evento e i; es
ejecutado [21].
puede hacer que algunos de los casos de prueba sean intiles, ya sea porque
especifican un estado inicial inalcanzable, una secuencia incorrecta de eventos o
estados esperados incorrectos para la GUI modificada. Tales casos de prueba se
denominan afectados y no se pueden ejecutar en la GUI modificada. Los casos de
pruebas restantes (no afectados) ejecutan exactamente la misma secuencia de
eventos, sin cambios, en la GUI modificada como lo hicieron en la GUI original y
especifican el estado esperado correctamente. Es improbable que estos casos de
prueba revelen fallos en la GUI modificada debido a que ya han sido probados para
esas secuencias.
Dado que los casos de prueba afectados no se pueden ejecutar en la GUI y los
casos de prueba no afectados no necesitan volver a ejecutarse, ninguno de los
casos de pruebas originales puede ser reutilizado durante las pruebas de regresin.
En consecuencia, nuevos casos de prueba tienen que ser generados desde cero
para volver a probar la GUI. Dado que el propsito de las pruebas de regresin es
volver a probar las partes pre-probadas del software, el diseador de pruebas debe
llevar un registro de todas ellas y volver a generar casos de prueba cuando sea
necesario. Dado que el anlisis necesario para la regeneracin selectiva es caro, en
la prctica no se realiza ninguna prueba de regresin de interfaces grficas de
usuario.
5
En este trabajo se presenta una nueva tcnica para realizar pruebas de regresin a
GUI. Se representan casos de prueba de GUI con un alto nivel de abstraccin
utilizando tareas (pares de estados iniciales y finales). Y, aunque los cambios en la
GUI produzcan casos de prueba inservibles, dichas tareas continan siendo vlidas
a travs de las sucesivas versiones de la GUI. Se emplea la planificacin para
regenerar los casos de pruebas afectados a partir de estas tareas y, luego, se
utilizan para volver a probar. El uso de tareas est en lnea con la filosofa de las
pruebas de regresin, ya que su propsito es asegurar que cualquier funcionalidad
de un software no se haya estropeado, sin querer, a lo largo de su ciclo de vida. Las
tareas proporcionan una manera simple e intuitiva de representar la funcionalidad de
una GUI.
DESCRIPCIN GENERAL
Antes de presentar los detalles del modelo de interfaz grfica de usuario y los
algoritmos de pruebas de regresin, en esta seccin presentamos en primer lugar
una descripcin general e intuitiva del proceso de pruebas de regresin mediante un
ejemplo.
regresin. Las entradas son el conjunto de pruebas original, generado para probar
la interfaz grfica original, y las representaciones de la GUI original y la modificada.
Las salidas son los casos de prueba que necesitan volver a ejecutarse, los casos de
prueba no afectados que no necesitan ser ejecutados nuevamente, y los casos de
prueba desechados.
Pgina 8
Pgina 9
Pgina 10
Pgina 11
Pgina 12
Pgina 13
Pgina 14
En principio, el enfoque descrito anteriormente puede ser utilizado para las pruebas
de regresin de interfaces grficas de usuario si las tareas se mantienen con cada
caso de prueba. Sin embargo, la regeneracin de los casos de prueba desde cero
es innecesaria, ya que algunas partes del caso de prueba original siguen siendo
vlidas y pueden ser reutilizadas. Para lograr este fin, se representa a la GUI como
una jerarqua de componentes y se emplea una forma de planificacin jerrquica
con almacenamiento en cach.
Pgina 15
Fase
Pas
o
Diseador de
Pruebas
1
Configuraci
n
2
Generacin
de Casos de
Prueba
Pruebas de
Regresin
Definir las
Precondiciones y
Efectos de los
Operadores
Identificar Tareas
4
5
Sistema basado en
planificacin
Derivar los Operadores
Jerrquicos de GUI,
Grficos de Flujo de
Eventos, Arboles de
Integracin
Detectar cambios al
modelo de la GUI
Generar el conjunto de
pruebas de regresin
Tabla 1. Funciones del diseador de pruebas y el sistema automtico durante las pruebas
8
de regresin.
Pgina 16
Pgina 17
Una GUI se modela como un conjunto de objetos O = {o1, o2,..., om} (por
ejemplo, label, form, button, text) y un conjunto de las propiedades P
= {p1, p2,..., Pl} de esos objetos (por ejemplo, background-color,
font, caption). Cada GUI usar ciertos tipos de objetos con sus propiedades
asociadas; en cualquier punto especfico en el tiempo, el estado de la GUI puede
ser descrito en trminos de todos los objetos que contiene, y los valores de todas
sus propiedades. Formalmente se define el estado de una GUI como sigue:
Definicin: El estado de una GUI en el momento t es el conjunto P de todas las
propiedades de todos los objetos O que la GUI contiene en el tiempo t.
Con cada GUI se asocia un conjunto diferenciado de estados llamado su
conjunto inicial de estados vlidos:
Definicin: Un conjunto de estados SI se denomina conjunto inicial de estados
vlidos para una determinada GUI s y slo s la GUI puede estar en cualquier
estado Si SI cuando se invoca por primera vez.
El estado de una GUI no es esttico; los eventos realizados en la GUI cambian su
estado. Estos estados son llamados estados alcanzables de la GUI. Los eventos se
modelan como transductores de estados. La notacin de la funcin Sj = e(Si) se
utiliza para denotar que Sj es el estado resultante de la ejecucin del evento e en el
estado Si. Los eventos pueden ser agrupados en secuencias. De importancia para
los probadores son secuencias que se permiten por la estructura de la GUI. Se
restringen las pruebas a las secuencias de eventos vlidas, definidas de la siguiente
manera:
Definicin: Una secuencia de eventos legal de una GUI es e1; e2; e3;;en
donde ei+1 puede ser realizado despus de ei.
Pgina 18
Pgina 19
Pruebas de regresin:
Regresin de software:
IPP
13 BIBLIOGRAFA
Last, Mark (Editor); Kandel, A. (Editor). Artificial Intelligence Methods in Software
Testing.
River Edge, NJ, USA: World Scientific, 2004
http://site.ebrary.com/lib/upc/Doc?id=10256002
[1] Agrawal, H., Horgan, J. R., Krauser, E. W., and London, S. A. "Incremental regression
testing". In Proceedings of the Conference on Software Maintenance (Washington, Sep.
1993), pp. 348 - 357.
[2] Ball, T. "On the limit of control flow analysis for regression test selection". In Proceedings
of the ACM SIGSOFTInternational Symposium on Software Testing and Analysis (ISSTA-98)
(New York, Mar.2 - 5 1998), vol. 23, 2 of ACM Software Engineering Notes, pp. 134 - 142.
[3] Beizer, B. Software Testing Techniques, 2nd ed. Van Nostrand Reinhold, New York, 1990.
[4] Benedusi, P., Cimitile, A., and DeCarlini, U. "Post-maintenance testing based on path
change analysis". In Proceedings of the IEEE Conference on Software Maintenance (1988),
pp. 352 - 368.
[5] Binkley, D. "Reducing the cost of regression testing by semantics guided test case
selection". In Proceedings of the International Conference on Software Maintenance
(Washington, Oct. 17-2 0 1995), G.Caldiera and K.Bennett, Eds., IEEE Computer Society
Press, pp. 251 - 263.
[6] Binkley, D. "Semantics guided regression test cost reduction". IEEE Transactions on
Software Engineering, 23, 8 (Aug. 1997), 498 - 516.
[7] Frank, M., de, J. J. G., Gieskens, D., and Foley, J. D. "Building user interfaces
interactively using re-and postconditions". In Proceedings of CHI '92 (1992).
Pgina 21
[8] Green, M. The Design of Graphical User Interfaces. Ph.d. thesis, Department of
Computer Science, University of Toronto, 1985.
[9] Harrold, M. J., Gupta, R., and Soffa, M. L. "A methodology for controlling the size of a test
suite". ACM Transactions of Software Engineering and Methodology 2, 3 (July 1993), 270285 .
[10] Harrold, M. J., McGregor, J. D., and Fitzpatrick, K. J. "Incremental testing of objectoriented class structures". In Proceedings: 14th International Conference on Software
Engineering (1992), pp. 68 - 80.
[11] Harrold, M. J., and Soffa, M. L. "Interprocedual data flow testing". In Proceedings
oftheACMSIGSOFT '89 Third Symposium on Testing, Analysis, and Verification (TAV3)
(1989),pp. 158-167 .
[12] Jonsson, A. K., and Ginsberg, M. L. "Procedural reasoning in constraint satisfaction". In
Proceedings of the Fifth International Conference on Principles of Knowledge
Representation and Reasoning (San Francisco, Nov. 58 1996), L. C. Aiello, J. Doyle, and S.
Shapiro, Eds., Morgan Kaufmann, pp. 160 - 173.
[13] Kambhampati, S. "Can we bridge refinement-based and SAT-based planning
techniques?" In Proceedings of the 15th International Joint Conference on Artificial
Intelligence (IJCAI-97) (1997), M. Pollack, Ed., Morgan Kaufmann, pp. 44 -49.
[14] Kasik, D. J., and George, H. G. "Toward automatic generation of novice user test
scripts". In Proceedings of the Conference on Human Factors in Computing Systems:
Common Ground (New York, 13-18 Apr. 1996), ACM Press, pp. 244 - 251.
[15] Koehler, J., Nebel, B., Hoffman, J., and Dimopoulos, Y. Extending planning to an ADL
subset. Lecture Notes in Computer Science 1348 (1997), 273.
[16] Koehler, J., Nebel, B., Hoffman, J., and Dimopoulos, Y. "Extending planning graphs to
an ADL subset". In Proceedings of the 4th European Conference on Planning (ECP-97):
Recent Advances in AI Planning (Berlin, Sept. 24 -26 1997), S. Steel and R. Alami, Eds., vol.
1348 of LNAI, Springer, pp. 273-285.
[17] Kung, D. C, Gao, J., Hsia, P., Toyoshima, Y., and Chen, C. "On regression testing of
object-oriented programs". The Journal of Systems and Software 32, 1 (Jan. 1996), 21-31.
[18] Lifschitz, V. "On the semantics of STRIPS. "In Reasoning about Actions and Plans:"
Proceedings of the 1986 Workshop (Timberline, Oregon, June-July 1986), M. P. George and
A. L. Lansky, Eds., Morgan Kaufmann, pp.1 - 9.
[19] Mahajan, R., and Shneiderman, B. "Visual & textual consistency checking tools for
graphical user interfaces". Technical Report CS-TR-3639, University of Maryland, College
Park, May 1996.
[20] McCarthy, J. Situations, actions, and causal laws. Memo 2, Stanford University Artificial
Intelligence Project, Stanford, California, 1963.
[21] Memon, A. M. A Comprehensive Framework for Testing Graphical User Interfaces.
Ph.D. thesis, Department of Computer Science, University of Pittsburgh, July 2001.
Pgina 22
[22] Memon, A. M., Pollack, M. E., and Soffa, M. L. "Using a goal-driven approach to
generate test cases for GUIs". In Proceedings of the 21st International Conference on
Software Engineering (May 1999), ACM Press, pp. 257 - 266.
[23] Memon, A. M., Pollack, M. E., and Soffa, M. L. "Automated test oracles for GUIs". In
Proceedings of the ACM SIGSOFT 8th International Symposium on the Foundations of
Software Engineering (FSE-8) (NY, Nov. 8-1 0 2000), pp. 30 - 39.
[24] Memon, A. M., Pollack, M. E., and Soffa, M. L. "Hierarchical GUI test case generation
using automated planning ". IEEE Transactions on Software Engineering 27, 2(Feb. 2001),
144-155.
[25] Memon, A. M., Soffa, M. L., and Pollack, M. E. "Coverage criteria for GUI testing". In
Proceedings of the 8th European Software Engineering Conference (ESEC) and 9th ACM
SIGSOFT International Symposium on the Foundations of Software Engineering (FSE-9)
(Sept. 2001), pp. 256 - 267.
[26] Myers, B. A. "User interface software tools". ACM Transactions on ComputerHuman
Interaction 2, 1 (1995), 64-103.
[27] Pednault, E.P.D. "ADL: Exploring the middle ground between STRIPS and the situation
calculus". In Proceedings ofKR '89 (Toronto, Canada, pp. 324 - 331, May 1989).
[28] Pollock, L., and Soffa, M. L. "Incremental global reoptimization of programs". ACM
Transactions on Programming Languages and Systems 14, 2 (Apr. 1992), 173 -200.
[29] Pressman, R. S. Software Engineering: A Practitioner's Approach. 1994.
[30] Rosenblum, D., and Rothermel, G. "A comparative study of regression test selection
techniques". In Proceedings of the IEEE Computer Society 2nd International Workshop on
Empirical Studies of Software maintenance (Oct. 1997), pp.89 - 94.
[31] Rosenblum, D. S., and Weyuker, E. J. "Predicting the cost-effectiveness of regression
testing strategies". In Proceedings of the Fourth ACM SIGSOFT Symposium on the
Foundations of Software Engineering (New York, Oct. 16 -18 1996), vol.21 ofACM Software
Engineering Notes, ACM Press, pp. 118 -126.
[32] Rosenblum, D. S., and Weyuker, E. J. "Using coverage information to predict the costeffectiveness of regression testing strategies". IEEE Transactions on Software Engineering
23, 3 (Mar. 1997), 146 - 156.
[33] Rothermel, G., and Harrold, M. J. "A safe, efficient algorithm for regression test
selection". In Proceedings of the Conference on Software Maintenance (1993), pp. 358 369.
[34] Rothermel, G., and Harrold, M. J. "A safe, efficient regression test selection technique".
ACM Transactions on Software Engineering and Methodology, 2 (Apr. 1997), 173-210.
[35] Rothermel, G., and Harrold, M. J. "Empirical studies of a safe regression test selection
technique". IEEE Transactions on Software Engineering 24, 6 (June 1998), 401-419.
[36] Rothermel, G., Harrold, M. J., Ostrin, J., and Hong, C. "An empirical study of the effects
of minimization on the fault detection capabilities of test suites". In Proceedings; International
Conference on Software Maintenance (1998), pp. 34 - 43.
Pgina 23
Pgina 24