Formal Structured Specification for Web Application Test School of Computer Science, Telecommunication and Information System DePaul University Xiaoping Jia Hongming Liu
Rigorous and Automatic Testing of Web Applications Introduction Our Approach Test Specification A Prototype Tool Conclusion and Future Work
Introduction increasing popularity of web applications new challenges to quality assurance of web applications conventional software testing methodologies and tools are not adequate focus of our approach
Our Approach WEBTEST: an approach for rigorous and automatic testing of web application. Test Web application functionality, security and performance. Uses formal specification based on Z notation A test engine takes the input and perform test automatically
Our Approach WEBTEST Approach Overview
Scope of testing Functionality Page structure Security Performance
Test Specification A Z based specification language for formally specifying the testing process and the functionality of the web applications. A BNF grammar of the abstract syntax of the specification language is giving in the paper. The concrete syntax of the specification language is in XML.
Test Specification Specification Structure a test specification is a hierarchy of test suite, test case and test step; a test case is defined as a tree of test steps, each path from the root of the tree to a leaf of the tree represents a test sequence.
Specification Structure Test Case 1 ______|______________ | | _______| TC 1.1 __ ___| TC 1.2 | | | | | | TC1.1.1 | TC1.1.2 | TC1.1.3 | TC1.2.1 | TC1.2.2
Test Specification Request and Response Specification request specification specifies a pattern of HTTP requests. response specification specifies the assertions on the HTTP response. Predicate HTTP protocol specific predicate : Match, Contain, Comparison logical connective predicate: not, and, or, implies
Example Logon page check <match op=”contains” regexp=false select=”/html/body” value=”Logon Failed”/> <match op=”contains” regexp=”false” select=”/html/body” value=”Logon Successfully”/>
Example Logon page check in Z
A Prototype Tool
WebTest interface
Future work Improving the ability and flexibility of test specifications Enrich our specification language Enhance the capability of the prototype tool WebTest
Conclusion The main contributions of our research are: using formal specifications versatility and flexibility suited for incremental and iterative development processes A prototype tool, WebTest has been developed
More information Project site: Paper, presentation, download Contact:
Thank you! Questions?