Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2393596.2393614acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Automating presentation changes in dynamic web applications via collaborative hybrid analysis

Published: 11 November 2012 Publication History

Abstract

Web applications are becoming increasingly popular nowadays. During the development and evolution of a web application, a typical type of tasks is to change the presentation of the web application, such as correcting display errors, adding user-interface controls, or changing appearance styles. To change the presentation of a static web page, developers are able to modify the HTML text of the web page using a graphical web-page editor. However, to change the presentation of a dynamic web application, instead of using a graphical web-page editor to directly modify generated web pages, developers need to modify the code that generates the web pages. As manually performing presentation changes in dynamic web applications is tedious and error-prone, we propose a novel approach based on collaborative hybrid analysis that combines static analysis and dynamic analysis to facilitate developers to perform presentation changes in dynamic web applications. Our approach includes two parts. The first part takes as input the presentation change to be performed on a generated web page (with proper runtime information), and uses dynamic string-origin analysis to locate the source-code segment that generates the changed part of the web page. The second part checks unexpected impact of directly performing the change on the source-code segment, and asks for human intervention when unexpected impact exists. We implemented our approach for the PHP language and carried out an empirical study on 39 presentation-change tasks identified from 600 bug reports of three real-world dynamic web applications (in total more than 148 KLOC). Among the 39 tasks, our approach is able to correctly locate the place to modify in each presentation-change task and correctly perform the presentation change on the source code in more than half of the tasks.

References

[1]
R. Arnold and S. Bohner. Software Change Impact Analysis. IEEE Computer Society Press, 1996.
[2]
S. Artzi, J. Dolby, F. Tip, and M. Pistoia, Practical fault localization for dynamic web applications In Proc. ICSE, pages 265--274, 2010.
[3]
S. Artzi, A. Kiezun, J. Dolby, F. Tip, D. Dig, A. Paradkar, and M. D. Ernst. Finding bugs in dynamic web applications. In Proc. ISSTA, pages 261--272, 2008.
[4]
C.-P. Bezemer, A. Mesbah, and A. van Deursen. Automated security testing of web widget interactions. In Proc. ESEC/FSE, pages 81--90, 2009.
[5]
A. Carzaniga, A. Gorla, N. Perino, and M. Pezzè. Automatic workarounds for web applications. In Proc. FSE, pages 237--246, 2010.
[6]
A. Christensen, A. M§ller, and M. Schwartzbach. Precise analysis of string expressions. In Proc. SAS, pages 1--18, 2003.
[7]
V. Dallmeier, A. Zeller, and B. Meyer. Generating fixes from object behavior anomalies. In Proc. ASE, pages 550--554, 2009.
[8]
B. Dufour, B. G. Ryder, and S. Gary. Blended analysis for performance understanding of framework-based applications. In Proc. ISSTA, pages 118--128, 2007.
[9]
J. N. Foster, M. B. Greenwald, J. T. Moore, B. C. Pierce, and A. Schmitt. Combinators for bi-directional tree transformations: A linguistic approach to the view update problem. In Proc. POPL, pages 233--246, 2005.
[10]
W. Halfond and A. Orso. Automated identification of parameter mismatches in web applications. In Proc. FSE, pages 181--191, 2008.
[11]
S. Hidaka, Z. Hu, K. Inaba, H. Kato, K. Matsuda, and K. Nakano. Bidirectionalizing graph transformations. In Proc. ICFP, pages 205--216, 2010.
[12]
W. Halfond, A. Orso, P. Manolios. Using positive tainting and syntax-aware evaluation to counter SQL injection attacks. In Proc. FSE, pages 175--185, 2006.
[13]
S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Trans. on Prog. Lang. and Sys., 12(1):26--60, 1990.
[14]
Z. Hu, S.-C. Mu, and M. Takeichi. A programmable editor for developing structured documents based on bidirectional transformations. Higher-Order and Symbolic Computation, 21(1-2):89--118, June 2008.
[15]
J. Kam and J. Ullman. Global data flow analysis and iterative algorithms. J. ACM, 23(1):158--171, January 1976.
[16]
A. Ko and B. Myers. Debugging reinvented: Asking and answering why and why not questions about program behavior. In Proc. ICSE, pages 301--310, 2008.
[17]
J. Law and G. Rothermel. Whole program path-based dynamic impact analysis. In Proc. ICSE, pages 308--318, 2003.
[18]
B. Livshits and E. Kiciman. Doloto: Code splitting for network-bound web 2.0 applications. In Proc. FSE, pages 350--360, 2008.
[19]
A. Mesbah and A. van Deursen. Invariant-based automatic testing of AJAX user interfaces. In Proc. ICSE, pages 210--220, 2009.
[20]
Y. Minamide. Static approximation of dynamically generated web pages. In Proc. WWW, pages 432--441, 2005.
[21]
H. Nguyen, H. Nguyen, T. Nguyen, and T. Nguyen Auto-locating and fix-propagating for HTML validation errors to PHP server-side code. In Proc. ASE, pages 13--22, 2011.
[22]
T. Nguyen, G. Guarnieri, E. Shirley, and D. Evans Automatically hardening web applications using precise tainting. In Proc. IFIP Security Conference, pages 295--308, 2005.
[23]
J. W. Nimmer and M. Ernst. Static verification of dynamically detected program invariants: Integrating Daikon and ESC/Java. In Proc. RV, pages 255--276, 2001.
[24]
T. Pietraszek and C. Berghe Defending against injection attacks through context-sensitive string evaluation. In Proc. RAID, pages 124--145, 2005.
[25]
X. Ren, B. G. Ryder, M. Stoerzer, and F. Tip. Chianti: A tool for change impact analysis of Java programs. In Proc. OOPSLA, pages 432--448, 2004.
[26]
H. Samirni, M. Schäfer, S. Artzi, T. D. Millstein, F. Tip, L. J. Hendren. Automated repair of HTML generation errors in PHP applications using string constraint solving. In Proc. ICSE, pages 277--287, 2012.
[27]
Z. Su and G. Wassermann. The essence of command injection attacks in web applications. In Proc. POPL, pages 372--382, 2006.
[28]
T. Tateishi, M. Pistoia, and O. Tripp: Path- and index-sensitive string analysis based on monadic second-order logic. In Proc. ISSTA, pages, 166--176, 2011.
[29]
X. Wang, L. Zhang, T. Xie, J. Anvik, and J. Sun. An approach to detecting duplicate bug reports using natural language and execution information In Proc. ICSE, pages 461--470, 2008.
[30]
X. Wang, L. Zhang, T. Xie, H. Mei, and J. Sun. Locating need-to-translate constant strings for software internationalization. In Proc. ICSE, pages 353--363, 2009.
[31]
X. Wang, L. Zhang, T. Xie, H. Mei, and J. Sun. Locating need-to-translate constant strings in web applications. In Proc. FSE, pages 87--96, 2010.
[32]
G. Wassermann and Z. Su. Sound and precise analysis of web applications for injection vulnerabilities. In Proc. PLDI, pages 32--41, 2007.
[33]
G. Wassermann and Z. Su. Static detection of cross-site scripting vulnerabilities. In Proc. ICSE, pages 171--180, 2008.
[34]
Y. Wei, Y. Pei, C. A. Furia, L. S. Silva, S. Buchholz, B. Meyer, and A. Zeller. Automated fixing of programs with contracts. In Proc. ISSTA, pages 61--72, 2010.
[35]
W. Weimer, T. Nguyen, C. Le Goues, and S. Forrest. Automatically finding patches using genetic programming. In Proc. ICSE, pages 364--374, 2009.
[36]
M. Weiser. Program slicing. In Proc. ICSE, pages 439--449, 1981.
[37]
Y. Xiong, D. Liu, Z. Hu, H. Zhao, M. Takeichi, and H. Mei. Towards automatic model synchronization from model transformations. In Proc. ASE, pages 164--173, 2007.
[38]
F. Yu, M. Alkhalaf, and T. Bultan. Stranger: An automata-based string analysis tool for PHP. In Proc. TACAS, pages 154--157, 2010.

Cited By

View all
  • (2022)Towards bidirectional live programming for incomplete programsProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510195(2154-2164)Online publication date: 21-May-2022
  • (2020)Tiny Structure Editors for Low, Low Prices! (Generating GUIs from toString Functions)2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC50065.2020.9127256(1-5)Online publication date: Aug-2020
  • (2020)Automatically identifying potential regressions in the layout of responsive web pagesSoftware Testing, Verification and Reliability10.1002/stvr.174830:6Online publication date: 3-Aug-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FSE '12: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
November 2012
494 pages
ISBN:9781450316149
DOI:10.1145/2393596
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 November 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic string-origin analysis
  2. presentation change
  3. web application

Qualifiers

  • Research-article

Funding Sources

Conference

SIGSOFT/FSE'12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)4
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Towards bidirectional live programming for incomplete programsProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510195(2154-2164)Online publication date: 21-May-2022
  • (2020)Tiny Structure Editors for Low, Low Prices! (Generating GUIs from toString Functions)2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC50065.2020.9127256(1-5)Online publication date: Aug-2020
  • (2020)Automatically identifying potential regressions in the layout of responsive web pagesSoftware Testing, Verification and Reliability10.1002/stvr.174830:6Online publication date: 3-Aug-2020
  • (2020)Effective automated repair of internationalization presentation failures in web applications using style similarity clustering and search‐based techniquesSoftware Testing, Verification and Reliability10.1002/stvr.174631:1-2Online publication date: 6-Sep-2020
  • (2019)Evaluating ProDirect manipulation in hour of codeProceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E10.1145/3358711.3361623(25-35)Online publication date: 25-Oct-2019
  • (2019)Sketch-n-SketchProceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology10.1145/3332165.3347925(281-292)Online publication date: 17-Oct-2019
  • (2019)Efficiently Repairing Internationalization Presentation Failures by Solving Layout Constraints2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST)10.1109/ICST.2019.00026(172-182)Online publication date: Apr-2019
  • (2019)Exploring output-based coverage for testing PHP web applicationsAutomated Software Engineering10.1007/s10515-018-0246-526:1(59-85)Online publication date: 1-Mar-2019
  • (2018)Bidirectional evaluation with direct manipulationProceedings of the ACM on Programming Languages10.1145/32764972:OOPSLA(1-28)Online publication date: 24-Oct-2018
  • (2018)RUDSEA: recommending updates of Dockerfiles via software environment analysisProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3240470(796-801)Online publication date: 3-Sep-2018
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media