Skip to main content
Log in

Web Application Slicing in Presence of Dynamic Code Generation

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Aho, A.V., Sethi, R., and Ullman, J.D. 1985. Compilers. Principles, Techniques, and Tools, Reading, MA: Addison-Wesley Publishing Company.

    Google Scholar 

  • Binkley, D. and Gallagher, K.B. 1996. Program slicing. Advances in Computers, 43:1–50.

    Article  Google Scholar 

  • Binkley, D. and Harman, M. 2003. A large-scale empirical study of forward and backward static slice size and context sensitivity. In Proc. of the International Conference on Software Maintenance (ICSM), Los Alamitos, CA, USA: IEEE Computer Society, pp. 44–53.

    Google Scholar 

  • Cimitile, A., Lucia, A.D., and Munro, M. 1995. Identifying reusable functions using specification driven program slicing: a case study. In Proceedings of the International Conference on Software Maintenance. Opio(Nice), pp. 124–133.

  • Cordy, J., Dean, T., Malton, A., and Schneider, K. 2002. Source transformation in software engineering using the txl transformation system. Information and Software Technology, 44(13):827–837.

    Google Scholar 

  • Cordy, J. and De Lucia, A. (editors) 2002. In Proceedings of SCAM, 2nd International Workshop on Source Code Analysis and Manipulation. Montreal: IEEE Computer Society.

    Google Scholar 

  • Gallagher, K. and Lyle, J. 1991. Using Program slicing in software maintenance, IEEE Transactions on Software Engineering, 17(8):751–761.

    Google Scholar 

  • Gallagher, K.B. 1996. Visual impact analysis. In Proceedings of the International Conference on Software Maintenance, Monterey, pp. 52–58.

  • Gupta, R., Harrold, M., and Soffa, M. 1996. Program slicing-based regression testing techniques. Journal of Software Testing, Verification, and Reliability, 6(2):83–112.

    Google Scholar 

  • Harman, M. and Danicic, S. 1995. Using program slicing to simplify testing. Software Testing, Verification and Reliability, 5:143–162.

    Google Scholar 

  • Horwitz, S., Reps, T., and Binkley, D. 1990. Interprocedural slicing using dependence graphs. ACM Transaction on Programming Languages and Systems, 26–61.

  • Kamkar, M., Fritzson, P., and Shahmehri, N. 1993. Interprocedural dynamic slicing applied to interprocedural data flow testing. In Proceedings of the International Conference on Software Maintenance, Montreal, Quebec, Canada, pp. 386–395.

  • Liu, C.-H., Kung, D.C., Hsia, P., and Hsu, C.-T. 2001. An object-based data flow testing approach for web applications. International Journal of Software Engineering and Knowledge Engineering, 11(2):157–179.

    Google Scholar 

  • Ricca, F. and Tonella, P. 2001. Web application slicing. In Proceedings of the International Conference on Software Maintenance, Firenze, Italy, pp. 148–157.

  • Ricca, F. and Tonella, P. 2002. Construction of the system dependence graph for web application slicing. In Proc. of the 2nd IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), Montreal, Canada: IEEE Computer Society, pp. 123–132.

    Google Scholar 

  • Tip, F. 1995. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121–189.

    Google Scholar 

  • Tonella, P. and Ricca, F. 2002. Dynamic model extraction and statistical analysis of web applications. In Proc. of the International Workshop on Web Site Evolution (WSE), Montreal, Canada: IEEE Computer Society, pp. 43–52

    Google Scholar 

  • Weiser, M. 1982. Programmers use slices when debugging. Communications of the Association for Computing Machinery, 25:446–452.

    Google Scholar 

  • Weiser, M. 1984. Program slicing. IEEE Transactions on Software Engineering, 10(4):352–357.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Paolo Tonella.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Tonella, P., Ricca, F. Web Application Slicing in Presence of Dynamic Code Generation. Autom Software Eng 12, 259–288 (2005). https://doi.org/10.1007/s10515-005-6208-8

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-005-6208-8

Keywords

Navigation