skip to main content
10.1145/2642937.2642996acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Validating ajax applications using a delay-based mutation technique

Published: 15 September 2014 Publication History

Abstract

The challenge of validating Asynchronous JavaScript and XML (Ajax) applications lies in actual errors exposed in a user environment. Several studies have proposed effective and efficient testing techniques to identify executable faults. However, the applications might have faults that are not executed during testing, but might cause actual errors in a user environment. Although we have investigated static methods for finding ``potential faults'' that seem to cause actual errors if executed, developers need to confirm whether or not the potential faults are actually executable. Herein, we propose a mutation-based testing method implemented in a tool called JSPreventer. Even if the potential faults are not easily executable in a given environment, our method mutates the applications until they are executable using two delay-based mutation operators to manipulate the timing of the applications handling interactions. Thus, JSPreventer provides executable evidences of the not-easily-executable faults for developers, if it reveals actual errors by testing the mutated applications. We applied our method to real-world applications and found actual errors that developers could debug to improve their reliability. Therefore, JSPreventer can help developers validate reliable real-world Ajax applications.

References

[1]
Jesse James Garrett. Ajax: A New Approach to Web Applications. www.adaptivepath.com/ideas/ajax-new-approach-web-applications.
[2]
Brent Stearn. XULRunner: A New Approach for Developing Rich Internet Applications. IEEE Internet Computing, 11(3):67--73, 2007.
[3]
Jakob Nielsen and Hoa Loranger. Prioritizing Web Usability. New Riders Press, Berkeley, CA, 2006.
[4]
Internet World Stats. World Internet Usage Statistics News and World Population Stats. www.internetworldstats.com/stats.htm.
[5]
Alessandro Marchetto, Filippo Ricca, and Paolo Tonella. A case study-based comparison of web testing techniques applied to AJAX web applications. Int'l Journal on Software Tools for Technology Transfer (STTT), 10(6):477--492, 2008.
[6]
Ali Mesbah and Arie van Deursen. Invariant-based Automatic Testing of AJAX User Interfaces. In Proc. Int'l Conf. on Software Engineering (ICSE), pages 210--220, May 2009.
[7]
Shay Artzi, Julian Dolby, Simon Holm Jensen, Anders Moller, and Frank Tip. A Framework for Automated Testing of JavaScript Web Applications. In Proc. Int'l Conf. on Software Engineering (ICSE), pages 571--580, May 2011.
[8]
Ali Mesbah and Mukul R. Prasad. Automated Cross-Browser Compatibility Testing. In Proc. Int'l Conf. on Software Engineering (ICSE), pages 561--570, May 2011.
[9]
Shauvik Roy Choudhary, Mukul R. Prasad, and Alessandro Orso. X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications. In Proc. Int'l Conf. on Software Engineering (ICSE), pages 702--711, May 2013.
[10]
Yuta Maezawa, Hironori Washizaki, and Shinichi Honiden. Extracting Interaction-based Stateful Behavior in Rich Internet Applications. In Proc. European Conf. on Software Maintenance and Reengineering (CSMR), pages 423--428, March 2012.
[11]
Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe, and Shinichi Honiden. Automated Verification of Pattern-based Interaction Invariants in Ajax Applications. In Proc. Int'l Conf. on Automated Software Engineering (ASE), pages 158--168, November 2013.
[12]
Michael Mahemoff. Ajax Design Patterns. O'Reilly Media, Inc., 2006.
[13]
Yunhui Zheng, Tao Bao, and Xiangyu Zhang. Statically Locating Web Application Bugs Caused by Asynchronous Calls. In Proc. Int'l World Wide Web Conf. (WWW), pages 805--814, April 2011.
[14]
R.A. DeMillo, R.J. Lipton, and F.G. Sayward. Hints on Test Data Selection: Help for the Practicing Programmer. Computer, 11(4):34--41, April 1978.
[15]
Cong Tian and Zhenhua Duan. Detecting Spurious Counterexamples Efficiently in Abstract Model Checking. In Proc. Int'l Conf. on Software Engineering (ICSE), pages 202--211, May 2013.
[16]
Michael Grottke and Kishor S. Trivedi. Fighting Bugs: Remove, Retry, Replicate, and Rejuvenate. Computer, 40(2):107--109, 2007.
[17]
Steve Souders. High Performance Web Sites. O'Reilly Media, Inc., 2007.
[18]
C. Larman and V.R. Basili. Iterative and Incremental Developments: A Brief History. Computer, 36(6):47--56, 2003.
[19]
Anthony T. Holdener, III. Ajax: The Definitive Guide. O'Reilly Media, Inc., 2008.
[20]
Ali Mesbah and Shabnam Mirshokraie. Automated Analysis of CSS Rules to Support Style Maintenance. In Proc. Int'l Conf. on Software Engineering (ICSE), pages 408--418, May 2012.
[21]
Nadia Alshahwan and Mark Harman. Automated Web Application Testing Using Search Based Software Engineering. In Proc. Int'l Conf. on Automated Software Engineering (ASE), pages 3--12, November 2011.
[22]
Alessandro Marchetto, Paolo Tonella, and Filippo Ricca. State-based Testing of Ajax Web Applications. In Proc. Int'l Conf. on Software Testing, Verification and Validation (ICST), pages 121--130, April 2008.
[23]
Alessandro Marchetto, Paolo Tonella, and Filippo Ricca. ReAjax: a reverse engineering tool for Ajax Web applications. IET Software, 6(1):33--49, 2012.
[24]
Ali Mesbah, Engin Bozdag, and Arie van Deursen. Crawling AJAX by Inferring User Interface State Changes. In Proc. Int'l Conf. on Web Engineering (ICWE), pages 122--134, July 2008.
[25]
Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, and Thomas Ball. Feedback-Directed Random Test Generation. In Proc. Int'l Conf. on Software Engineering (ICSE), pages 75--84, May 2007.
[26]
Shin Hong, Yongbae Park, and Moonzoo Kim. Detecting Concurrency Errors in Client-side JavaScript Web Applications. In Proc. Int'l Conf. on Software Software Testing, Verification and Validation (ICST), pages 61--70, March 2014.
[27]
Arjun Guha, Shriram Krishnamurthi, and Trevor Jim. Using Static Analysis for Ajax Intrusion Detection. In Proc. Int'l World Wide Web Conf. (WWW), pages 561--570, April 2009.
[28]
Salvatore Guarnieri, Macro Pistoia, Omer Tripp, Julian Dolby, Stephen Teilhet, and Ryan Berg. Saving the World Wide Web from Vulnerable JavaScript. In Proc. Int'l Symp. on Software Testing and Analysis (ISSTA), pages 177--187, July 2011.
[29]
Shiyi Wei and Barbara Ryder. Practical Blended Taint Analysis for JavaScript. In Proc. Int'l Symp. on Software Testing and Analysis (ISSTA), pages 336--346, July 2013.
[30]
Yue Jia and Mark Harman. An Analysis and Survey of the Development of Mutation Testing. IEEE Trans. on Software Engineering (TSE), 37(5):649--678, September 2011.
[31]
S. Mirshokraie, A. Mesbah, and K. Pattabiraman. Efficient JavaScript Mutation Testing. In Proc. Int'l Conf. on Software Testing, Verification and Validation (ICST), pages 74--83, March 2013.
[32]
Kazuki Nishiura, Yuta Maezawa, Hironori Washizaki, and Shinichi Honiden. Mutation Analysis for JavaScript Web Applications Testing. In Proc. Int'l Conf. on Software Engineering and Knowledge Engineering (SEKE), pages 159--165, June 2013.

Cited By

View all
  • (2021)Mutation Analysis for Assessing End-to-End Web Tests2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME52107.2021.00023(183-194)Online publication date: Sep-2021
  • (2020)Enabling Ordinary Users Mobile Development With Web ComponentsIEEE Access10.1109/ACCESS.2019.29623938(1767-1776)Online publication date: 2020

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '14: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering
September 2014
934 pages
ISBN:9781450330138
DOI:10.1145/2642937
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: 15 September 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. ajax
  2. javascript
  3. software validation
  4. web application testing

Qualifiers

  • Research-article

Conference

ASE '14
Sponsor:

Acceptance Rates

ASE '14 Paper Acceptance Rate 82 of 337 submissions, 24%;
Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Mutation Analysis for Assessing End-to-End Web Tests2021 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME52107.2021.00023(183-194)Online publication date: Sep-2021
  • (2020)Enabling Ordinary Users Mobile Development With Web ComponentsIEEE Access10.1109/ACCESS.2019.29623938(1767-1776)Online publication date: 2020

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media