ACM Home Page
Please provide us with feedback. Feedback
Dynamic test input generation for web applications
Full text PdfPdf (676 KB)
Source
International Symposium on Software Testing and Analysis archive
Proceedings of the 2008 international symposium on Software testing and analysis table of contents
Seattle, WA, USA
SESSION: Web and security table of contents
Pages 249-260  
Year of Publication: 2008
ISBN:978-1-60558-050-0
Authors
Gary Wassermann  University of California, Davis, Davis, CA, USA
Dachuan Yu  DoCoMo USA Labs, Palo Alto, CA, USA
Ajay Chander  DoCoMo USA Labs, Palo Alta, CA, USA
Dinakar Dhurjati  DoCoMo USA Labs, Palo Alto, CA, USA
Hiroshi Inamura  DoCoMo USA Labs, Palo Alto, CA, USA
Zhendong Su  University of California, Davis, Davis, CA, USA
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 55,   Downloads (12 Months): 372,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1390630.1390661
What is a DOI?

ABSTRACT

Web applications routinely handle sensitive data, and many people rely on them to support various daily activities, so errors can have severe and broad-reaching consequences. Unlike most desktop applications, many web applications are written in scripting languages, such as PHP. The dynamic features commonly supported by these languages significantly inhibit static analysis and existing static analysis of these languages can fail to produce meaningful results on realworld web applications.

Automated test input generation using the concolic testing framework has proven useful for finding bugs and improving test coverage on C and Java programs, which generally emphasize numeric values and pointer-based data structures. However, scripting languages, such as PHP, promote a style of programming for developing web applications that emphasizes string values, objects, and arrays.

In this paper, we propose an automated input test generation algorithm that uses runtime values to analyze dynamic code, models the semantics of string operations, and handles operations whose argument and return values may not share a common type. As in the standard concolic testing framework, our algorithm gathers constraints during symbolic execution. Our algorithm resolves constraints over multiple types by considering each variable instance individually, so that it only needs to invert each operation. By recording constraints selectively, our implementation successfully finds bugs in real-world web applications which state-of-the-art static analysis tools fail to analyze.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
M. Benedikt, J. Freire, and P. Godefroid. Veriweb: Automatically testing dynamic web sites. In Proceedings of the Eleventh International World Wide Web Conference (WWW 2002), 2002.
 
2
T. S. BV. Tiobe programming community index, September 2007. URL: http://www.tiobe.com/tpci.htm.
 
3
C. Cadar and D. R. Engler. Execution generated test cases: How to make system code crash itself. In Model Checking Software, 12th International SPIN Workshop, pages 2--23, 2005.
4
5
 
6
 
7
E. de Vries, J. Gilbert, and P. Biggar. phc: The open source php compiler.
8
 
9
A. Futoransky, E. Gutesman, and A. Waissbein. A dynamic technique for enhancing the security and privacy of web applications. In Proc. Black Hat USA, 2007.
10
11
 
12
 
13
X. Jia and H. Liu. Rigorous and automatic testing of web applications, 2002.
 
14
 
15
M. Kunc. What do we know about language equations? In Developments in Language Theory, 11th International Conference (DLT 2007), pages 23--27, 2007.
 
16
 
17
 
18
19
20
 
21
A. Nguyen-Tuong, S. Guarnieri, D. Greene, J. Shirley, and D. Evans. Automatically hardening web applications using precise tainting. In Twentieth IFIP International Information Security Conference (SEC'05), 2005.
 
22
C. Pacheco and M. D. Ernst. Eclat: Automatic generation and classification of test inputs. In Object-Oriented Programming, 19th European Conference (ECOOP 2005), pages 504--527, 2005.
 
23
24
 
25
 
26
K. Sen and G. Agha. Cute and jcute : Concolic unit testing and explicit path model-checking tools. In Computer Aided Verification, 18th International Conference (CAV 2006), pages 419--423, 2006. (Tool Paper).
27
28
29
 
30


Collaborative Colleagues:
Gary Wassermann: colleagues
Dachuan Yu: colleagues
Ajay Chander: colleagues
Dinakar Dhurjati: colleagues
Hiroshi Inamura: colleagues
Zhendong Su: colleagues