Extraction of Finite State Machines
Although asynchronous technologies such as Ajax make Rich Internet Applications (RIAs) responsive, they can result in unexpected behavior due to nondeterministic client-side processing and asynchronous communication. One difficulty in understanding such erroneous behavior lies in the unpredictable contexts of the running system. Dynamic behavior analysis techniques do not help to verify the correctness of certain “blind spots” in the execution path. In this work, we present a static approach for extracting all possible state transitions described in source code from the RIAs. Our approach is based on the assumption that user, server and self interactions with the RIAs can change the states of the application. Our method consists of four steps: 1) using given specifications of Ajax relevant to interactions as rules, 2) creating a call graph, annotating interactions on it and extracting interaction controls, 3) abstracting the call graph to extract relationships among the interactions, and 4) refining the relationships with the interaction controls. By extracting the state machines of test scenarios of the correct and wrong behavior, it can help developers to pinpoint the statements in the source code that lead to the erroneous behavior. Our approach has been evaluated against a few experimental cases and we conclude that it can extract comprehensible state machines in a reasonable time.
Testing with Subtle Delays
- Yuta Maezawa, “Interaction-Based Preventive Maintenance of Ajax Web Applications”, PhD thesis, The University of Tokyo, March 2015.
- Yuta Maezawa, Kazuki Nishiura, Hironori Washizaki, Shinichi Honiden, “Validating Ajax Applications Using a Delay-Based Mutation Technique”, In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering (ASE’14), pp.491-502, September 2014. Acceptance rate: 50/276=18.1%
- Yuta Maezawa, Hironori Washizaki, Yoshinori Tanabe, Shinichi Honiden, “Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications”, In Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering (ASE’13), pp.158-168, November 2013. Acceptance rate: 43/254=16.9%
- 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. Acceptance rate: 18/45=39.1% (Early Research Achievement Track)