Certain statistics says 500% increase in Web users compared to a decade ago. Accordingly, Web applications have become essential platforms for daily life and highly efficient development of high quality applications is important. Here, asynchronous technologies such as Ajax make modern Web applications responsive. Despite their greatest efforts, their asynchronous nature also causes difficulties relevant to an event-driven GUI, asynchronous communications, dynamic manipulations of Web page elements. We are addressing such difficulties and implementing supporting tools.
Analyzing stateful behavior in Ajax applications
Although an Ajax technology makes Web applications responsive, developers have a difficulty in figuring out complex behavior of the applications due to nondeterministic elements such as user events and asynchronous communications. Therefore, we propose a support tool called JSModeler, which distinguishes the nondeterministic elements in the source code and automatically extracts state machines based on the distinguished code fragments.
We assume that developers can dertermine whether Ajax applications expectedly behave by referring to not only the source code but also extracted state machines.
Verifying pattern-based invariants in Ajax applications
We leverage the Spin model checker for automated verifivation of extracted state machines containing nondeterministic elements in Ajax applications. This is because Spin verifies nondeterministic automata. Hence, we present an algorithm for translating the extracted state machines to Process Meta Language(Promela) models.
However, there is no general definition of correct and wrong behavior of Ajax applications. Therefore, we define properties to be satisfied in Ajax applications using Ajax design patterns. Considering usability, our proposal tool automatically verifies the correctness of the bahavior and suggests faulty execution paths.
We assume that developers can debug Ajax applications using the suggestions.
Mutation analysis for Ajax applications testing
Mutation analysis is a fault-based approach to assess the adequacy of test cases. The technique modifies the software under test to create a set of faulty programs, and then test cases are executed on these faulty programs. Developers can assess how effective their test cases in finding faults and use the result to improve their test cases.
The usefulness of applying the mutation analysis technique on Ajax applications had been suggested, however, there was no comprehensive approach that consider all unique characteristics of Ajax applications. We identify features of Ajax applications and propose some mutation operators that corresponding to these features. We implement the tool for conducting mutation analysis on Ajax applications. The results of case study showed our approach could support developers improve test cases.
Supporing view transition design on smartphone applications using Web page transitions
When implementing functionalities of web applications (WAs) as smartphone applications (SAs), developers have to consider the characteristics of smartphones such as compact displays. To redesign web pages as views of SAs, developers extract important elements and divide elements into multiple smaller views. These operations might omit unextracted links and increase the number of necessary steps to reach a view. Thus, they change the original view transitions of the WA in the SA. Developers tend to neglect the global navigability while looking at each single view. However, this global navigability is important to develop user-friendly SAs.
We propose a framework that calculates the global navigability of SAs and suggests design modifications that improve the global navigability.
First, our framework extracts a page transition model from the WA to provide candidate view transitions in the SA. We provide a graphical interface for developers to design views of the SA on the basis of web pages. Our framework then calculates the global navigability of the SA by using our transition cost formulas. Our framework suggests design modifications, e.g., deleting a redundant link, in order to increase the global navigability. Developers can utilize both, their heuristics and our suggestions, to implement an easy-to-navigate SA.
- Yuta Maezawa (Specially Appointed Assistant Professor)
- Junto Nakaoka (M2)
- Tomoya Katagi (M2)
- Yasuhiro Sezaki (M1)
- Kazuyuki Honda (M1)
- Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe, Shinichi Honiden, "Automated Verification of Pattern-based Interaction Invariants in Ajax Applications", The 28th IEEE/ACM International Conference on Automated Software Engineering (ASE'13), November 2013 (to appear).
- Kazuki Nishiura, Yuta Maezawa, Fuyuki Ishikawa, Shinichi Honiden, "Supporting View Transition Design of Smartphone Applications Using Web Templates", 12th International Conference on Web Engineering (ICWE'12), pp.323-331(short), July 2012.
- Yuta Maezawa, Hironori Washizaki, Shinichi Honiden, "Extracting Interaction-Based Stateful Behavior in Rich Internet Applications", In Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR'12), pp.423-428, March 2012.