Yann-Gaël Guéhéneuc, 2013/01/08
Following their previous work on extracting state-machines from AJAX applications, the authors proposed a Spin-based tool to verify invariants in AJAX state machines. The paper is very interesting and its treatment thorough. The paper starts by saying that AJAX is “credited with the 500% increase in Web users compared to a decade ago.”, the main factor being the improved user experience with rich Web application, i.e., their usability. However, “unpredictable contexts while running application might conceal faults that will break the design patterns” used by developers to ensure usability. “By leveraging an AJAX engine on the client side, the applications can asynchronously receive necessary data from servers and partially update a Web page without page transitions”, thus improving user experience. To improve user experience, developers are concerned with the interactions that the applications can handle (from users, servers, and themselves) and the behaviour of the applications when handling these interactions but also the behaviour when enabling and disabling interactions. However, due to unpredictable contexts (such as network speed or other AJAX scripts), “developers may miss certain paths to be executed, which can result in unexpected behaviour”.
The paper raises interesting questions, in particular with respect to the manual tagging of the call graph and the translation of the usability design patterns into interactions invariants: could the manual tagging be made automatic and can any design pattern be translated into an interaction invariant?