Hydro4GE provides custom software, web and interactive
marketing solutions. We also sell and maintain Pario, a tool for developing and maintaining web-based applications.

Pario Performance and Regression Testing

Most large software systems go through performance testing; Pario is no exception. We need to understand how our Online Development Environment responds to different system load conditions and identify performance bottlenecks and system components (hardware and software) that are critical to performance.

The first question for our performance testing was what data we should collect. Pario is a JSON-based web application in which the clients communicate with the web server using JSON requests and responses. We mapped user actions such as user login and their corresponding system responses into a set of JSON requests and JSON responses. We thus collect data on how and when those JSON requests are processed through the system and how and when the JSON responses are returned.

Next we needed to identify how to collect the data. Pario was designed in such a way that we could easily identify, along the execution paths from a JSON request to its response, the points where we can insert code to collect the data. After all data is collected, we analyze the data and present the result so we can better understand the performance and identify critical components. We calculate the maximum, minimum and average processing times for each JSON request/response and each stage of processing.

The most critical piece of all was to identify how to automate this testing process. It is not realistic to hire a large number of people, e.g., 100, to realize a load condition with 100 concurrent users and it is almost impossible to repeat that load condition, potentially many times, for regression testing. To automate the process, we designed a performance testing system which consists of a JSON request recorder, multiuser simulator, data collector, and data analyzer and presenter. The JSON request recorder can intercept and record user actions as JSON requests. The simulator reads recorded or scripted JSON requests and sends them to the web servers, simulating any given number of concurrent users interacting with the system at the same time. The data collector collects data of interest and passes the data to the data analyzer and presenter to process them and display the test result.

For future releases of Pario, we plan to adapt our performance testing system to Pario-generated applications and make it available to Pario users (software developers using Pario). They can use the system to do performance testing on their generated applications when those applications are hosted by their own customers.

Yaodong Bi:
Yaodong Bi, Ph. D. has been a professor in the Department of Computing Sciences at the University of Scranton since 1991. In addition to his teaching activities he coordinates the Master of Science in Software Engineering graduate program. Bi's research interests include database systems, software engineering, operating systems, and real-time systems.

No Comments »

Leave a comment