Leveraging user-session data to support Web application testing

Web applications are vital components of the global information infrastructure, and it is important to ensure their dependability. Many techniques and tools for validating Web applications have been created, but few of these have addressed the need to test Web application functionality and none have attempted to leverage data gathered in the operation of Web applications to assist with testing. In this paper, we present several techniques for using user session data gathered as users operate Web applications to help test those applications from a functional standpoint. We report results of an experiment comparing these new techniques to existing white-box techniques for creating test cases for Web applications, assessing both the adequacy of the generated test cases and their ability to detect faults on a point-of-sale Web application. Our results show that user session data can be used to produce test suites more effective overall than those produced by the white-box techniques considered; however, the faults detected by the two classes of techniques differ, suggesting that the techniques are complementary.

[1]  R.-D. Yang,et al.  Path analysis testing of concurrent programs , 1992, Inf. Softw. Technol..

[2]  A. Jefferson Offutt,et al.  Generating test cases for XML-based Web component interactions using mutation analysis , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[3]  Michael Benedikt,et al.  VeriWeb: Automatically Testing Dynamic Web Sites , 2002 .

[4]  Robert Mee,et al.  Going Faster: Testing The Web Application , 2002, IEEE Softw..

[5]  Thomas J. Ostrand,et al.  Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria , 1994, Proceedings of 16th International Conference on Software Engineering.

[6]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.

[7]  C. V. Ramamoorthy,et al.  Object-oriented systems , 1988, IEEE Expert.

[8]  Sigrid Eldh Software Testing Techniques , 2007 .

[9]  Phyllis G. Frankl,et al.  A framework for testing database applications , 2000, ISSTA '00.

[10]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

[11]  Giuseppe A. Di Lucca,et al.  Testing Web applications , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[12]  Paolo Tonella,et al.  Analysis and testing of Web applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[13]  Richard N. Taylor,et al.  Structural Testing of Concurrent Programs , 1992, IEEE Trans. Software Eng..

[14]  Shihong Huang,et al.  Evaluating the reverse engineering capabilities of Web tools for understanding site content and structure: a case study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[15]  Gregg Rothermel,et al.  Test Case Prioritization: A Family of Empirical Studies , 2002, IEEE Trans. Software Eng..

[16]  Joseph Robert Horgan,et al.  Effect of Test Set Minimization on Fault Detection Effectiveness , 1995, 1995 17th International Conference on Software Engineering.

[17]  David Leon,et al.  Finding failures by cluster analysis of execution profiles , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[18]  William C. Chu,et al.  Constructing and Object-Oriented Architecture for Web Application Testing , 2002, J. Inf. Sci. Eng..

[19]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[20]  Jim Conallen,et al.  Building Web applications with UML , 1999 .

[21]  Claude Caci,et al.  Testing object-oriented systems , 2000, SOEN.

[22]  Kuo-Chung Tai,et al.  An incremental approach to structural testing of concurrent software , 1996, ISSTA '96.

[23]  Stewart N. Weiss A formal framework for the study of concurrent program testing , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[24]  Elaine J. Weyuker,et al.  Analyzing Partition Testing Strategies , 1991, IEEE Trans. Software Eng..

[25]  Gregg Rothermel,et al.  Improving web application testing with user session data , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[26]  R. Carver,et al.  Deterministic execution testing of concurrent Ada programs , 1989, TRI-Ada '89.

[27]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[28]  K. Tai,et al.  A Specification-Based Methology for Testing Concurrent Programs , 1995, ESEC.

[29]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach (McGraw-Hill Series in Computer Science) , 2004 .

[30]  John C. Munson,et al.  Software Evolution and the Fault Process , 1999 .

[31]  Margo I. Seltzer,et al.  Web Facts and Fantasy , 1997, USENIX Symposium on Internet Technologies and Systems.

[32]  Mehdi Jazayeri,et al.  Experiences in Engineering Flexible Web Services , 2001, IEEE Multim..

[33]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[34]  David Chenho Kung,et al.  Structural testing of Web applications , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.