DSSI has developed and regularly uses a Regression Test Tool to speed delivery and improve the quality of custom developed web-based applications. The W3eb Enterprise Regression Test (WERT) allows DSSI to rapidly build, test, deploy and maintain complex web-based applications for our customers. This same tool, used in conjunction with our testing department, enables us to provide independent testing to any customer across a wide range of web-based applications.

The ability to document test steps, expected responses, and actual execution of a sequence of test procedures within one integrated environment facilitates rapid development, ensures quality, and reduces overall cost. Once operational test procedures are created within the tool, it creates and can replay test scenarios which automate the generation of Unit, Integration, Regression and ATP documentation. Use of this tool ensures that as a web-based application is developed, modified or enhanced, it still correctly performs all previously tested functions.

Beyond testing for proper function, the W3eb Enterprise Regression Test also has the capability to stress test an application. By replaying test scenarios from several hosts at once, the tester simulates multiple online users while measuring request-to-response times.

     
 

Functional High-Level Overview

The mission of the Virtual Tester is to perform product testing on web-based (browser/http/ejb) applications. The system captures (records) a sequence of requests and responses via a built-in proxy when a system is first tested. Later, these recorded requests can be replayed to the web-based application and its responses can be compared against the originally recorded responses. The W3eb Enterprise Regression Test is separated into two major functional components: the Client and a distributable Server. The Server and Client components communicate via standard TCP utilizing XML as the transfer data format. The Server is implemented using Java and is cross platform compatible. The Client is implemented as a Windows native application.

 
       
 

Client

The Client implements a proxy that is used to intercept the requests from a browser to a web-based application and the responses coming back. It records this information as testing personnel exercise the target web-based application. The Client then sends this recorded scenario to one or more hosts running the Server.

Later, when the host(s) replay the recorded scenario, the Client receives the new results returned from the host(s) (where the responses have been compared), and presents this as a report. The Client has a multitude of other responsibilities. These include, but are not limited to:

  • Ability to view and edit all project, test, procedure or request/response data.
  • Tracking project, test, procedure, step, and request/response hierarchies.
  • Repository for keeping notes, overviews, requirements and other text for each test, procedure, or step.
  • Facilities for user specification of hosts (computers running the server piece).
  • Facilities for specifying commands to run on hosts.
  • Ability to specify variables for variable substitution and variable forwarding. This is in support of dynamic fields that change from one web session to the next.
  • Print or generate a test procedure document based on defined test steps. Output to MSWord.
 
     
  Server

The Server is responsible for replaying a recorded session and executing specified system commands. It does this by receiving session XML from the Client, which specifies all operations to be performed. A set of system commands can be defined for execution within each procedure. The Server runs the specified system commands for the test procedure (which can be specified to be run on another host), sends out the recorded http requests and then evaluates the responses against the originally recorded responses. The Server then generates a report and sends it back to the Client. System commands are typically used to setup a database in preparation for a test run of a web-application that utilizes the database and also to provide a mechanism for running or simulating server side processes.
The Server is also responsible for proper variable substitution and variable forwarding as defined by the XML provided to it by the Client. Variable substitution allows different values to be used in subsequent tests than were used originally. An example of the need for substitution might be login names. When playing back a scenario for repeatability testing, it is often desirable to specify a different login name than what was recorded during the original test.

Variable forwarding is the ability handle portions of a web response that are different each time you make the request. If a request results in a web page response that contains a generated value that must be used in subsequent requests, this can be specified as a variable and the Server will dynamically set this variable from each response and use it in subsequent requests. Additionally, if a test exercises a web page that generates a unique number, such as a page hit counter, changes of that field can be set to be ignored.