Figure 8: Screen of error message observed after playing
back an input sequence to exercise the counter example.
[ERROR] DispatcherUtils - Could not execute action
<java.lang.NullPointerException>java.lang....
at com.apress.ajaxprojects.theorganizer.actions.
DayAtAGlanceAction.execute ...
at sun.reflect.GeneratedMethodAccessor80.invoke ...
...
Figure 9: A part of server log observed after playing back
an input sequence to reach the counter example.
machines (FSMs) that correspond to the behavior
of the AJAX based web applications.
• Model checking the generated FSM based on the
user-given properties
Once the models are generated, various properties can
be checked very quickly. Also, for the model gener-
ations, the proposed technique can accept “guidance
directive” to target user-specific features and behav-
iors of the AJAX based web applications. These have
been confirmed through experiments. Industrial sized
applications can be processed within reasonable time.
Future works include more verification trials with
larger applications for more robust evaluations of the
proposed techniques as well as their extensions. On
verification trials with larger-scale applications, the
performance of model generation stage in our tech-
nique which is taking relatively long time, can be im-
proved with several strategies.
While we have introduced model reduction tech-
niques in Section 3.1.3 to reduce run time, use of the
state abstraction technique which removes DHTML
substructure unrelated to verification requirements,
was limited in the experiments. Although more ag-
gressive model reduction configuration based on ver-
ification requirements is expected to reduce time re-
quired for model generation stage, the prospect has to
be confirmed through case studies.
Most of time required for crawling-based model
generation stage is from communication latency be-
tween the crawler and the target application. As com-
putation burden of the process is relatively small, it
is desirable to introduce parallel crawling technique
used in conventional web crawler. There is an ongo-
ing work of parallelizing the process in CRAWLJAX
project, and the outcome is expected to be effective
for reducing run time of our verification flow.
REFERENCES
Alfaro, L. D. (2001). Model Checking the World Wide
Web. In Computer Aided Verification, pages 337–349.
Springer-Verlag.
Andrews, A. A., Offutt, J., and Alexander, R. T. (2005).
Testing Web Applications by Modeling with FSMs.
Software and Systems Modeling, 4:326–345.
Benedikt, M., Freire, J., and Godefroid, P.(2002). VeriWeb:
Automatically Testing Dynamic Web Sites. In Pro-
ceedings of 11th International World Wide Web Con-
ference.
Clarke, E. M., Grumberg, O., and Peled, D. A. (1999).
Model Checking. The MIT Press.
Dwyer, M. B., Avrunin, G. S., and Corbett, J. C. (1999).
Patterns in Property Specifications for Finite-State
Verification. In ICSE ’99: Proceedings of the 21st
international conference on Software engineering,
pages 411–420, New York, NY, USA. ACM.
Kitchenham, B., Pickard, L., and Pfleeger, S. L. (1995).
Case Studies for Method and Tool Evaluation. IEEE
Softw., 12(4):52–62.
Marchetto, A., Ricca, F., and Tonella, P. (2008a). A Case-
Study Based Comparison of Web Testing Techniques
Applied to AJAX Web Applications. International
Journal on Software Tools for Technology Transfer
(STTT), 10(6):477–492.
Marchetto, A., Tonella, P., and Ricca, F. (2008b). State-
Based Testing of Ajax Web Applications. In ICST ’08:
Proceedings of the 2008 International Conference on
Software Testing, Verification, and Validation, pages
121–130, Washington, DC, USA. IEEE Computer So-
ciety.
Mesbah, A., Bozdag, E., and Deursen, A. V. (2008). Crawl-
ing AJAX by Inferring User Interface State Changes.
In ICWE ’08: Proceedings of the 2008 Eighth Inter-
national Conference on Web Engineering, pages 122–
134, Washington, DC, USA. IEEE Computer Society.
Mesbah, A. and Deursen, A. V. (2009). Invariant-Based Au-
tomatic Testing of AJAX User Interfaces. In Proceed-
ings of the 31
st
International Conference on Software
Engineering (ICSE 2009).
Ricca, F. and Tonella, P. (2001). Analysis and Testing
of Web Applications. In Proceedings of the 23rd
International Conference on Software Engineering
(ICSE’01), pages 25–34. IEEE Computer Society.
Strecker, J. and Memon, A. M. (2009). Testing Graphical
User Interfaces. In Encyclopedia of Information Sci-
ence and Technology, Second ed. IGI Global.
Zammetti, F. (2006). Practical Ajax Projects with Java
Technology. Apress.
CLIENT-TIER VALIDATION OF DYNAMIC WEB APPLICATIONS
95