Web Application Slicing in Presence of Dynamic Code Generation

The computation of program slices on Web applications may be useful during debugging, when the amount of code to be inspected can be reduced, and during understanding, since the search for a given functionality can be better focused. The system dependence graph is an appropriate data structure for slice computation, in that it explicitly represents all dependences that have to be taken into account in slice determination.Construction of the system dependence graph for Web applications is complicated by the presence of dynamically generated code. In fact, a Web application builds the HTML code to be transmitted to the browser at run time. Knowledge of such code is essential for slicing. In this paper an algorithm for the static approximation of the dynamically generated HTML code is proposed. The concatenations of constant strings and variables are propagated according to special purpose flow equations, allowing the estimation of the generated code and the refinement of the system dependence graph.

[1]  David W. Binkley,et al.  A large-scale empirical study of forward and backward static slice size and context sensitivity , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[2]  David Chenho Kung,et al.  An Object-based Data Flow Testing Approach for Web Applications , 2001, Int. J. Softw. Eng. Knowl. Eng..

[3]  Paolo Tonella,et al.  Construction of the system dependence graph for Web application slicing , 2002, Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation.

[4]  Aniello Cimitile,et al.  Identifying reusable functions using specification driven program slicing: a case study , 1995, Proceedings of International Conference on Software Maintenance.

[5]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[6]  Nahid Shahmehri,et al.  Interprocedural dynamic slicing applied to interprocedural data flow testing , 1993, 1993 Conference on Software Maintenance.

[7]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[8]  Mary Lou Soffa,et al.  Program Slicing‐Based Regression Testing Techniques , 1996 .

[9]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[10]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[11]  Keith Brian Gallagher,et al.  Visual impact analysis , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[12]  Kevin A. Schneider,et al.  Source transformation in software engineering using the TXL transformation system , 2002, Inf. Softw. Technol..

[13]  Seth D. Bergmann,et al.  Compilers , 1973, CSC '73.

[14]  Paolo Tonella,et al.  Web application slicing , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[15]  Paolo Tonella,et al.  Dynamic model extraction and statistical analysis of Web applications , 2002, Proceedings. Fourth International Workshop on Web Site Evolution.

[16]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[17]  Mark Harman,et al.  Using program slicing to simplify testing , 1995, Softw. Test. Verification Reliab..

[18]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..