Overview

In this Case Study the client had developed a server-side system used by online Rail Journey Planners for returning journey information and ticket prices in response to journey search requests.

The client had developed a basic testing framework written in C# and ASP.net for server stress testing but there were limitations which needed to be addressed:

  • The testing framework had no support for testing server concurrency
  • There were memory issues which severely limited the total number of tests that could be performed

There were also functional requirements to be implemented:

  • There needed to be more control over the test parameters (number of tests, concurrency etc)
  • The framework needed to collect and display server query response times for each query
  • In the displayed results, hyperlinks were wanted to allow the user to replicate the journey query on a reference online journey planner system
  • In a “reference” test mode, the framework needs to send the same query simultaneously to a “test” server and to a “reference” server. Where the server results differ there was to be an option in the user interface to examine these differences

The approach taken by Software Primitives was initially to tidy up the existing framework by eliminating what turned out to be quite a significant amount of duplicated source code and to produce a leaner code base as a baseline to move forward with. The concurrency requirement was then tackled by using C# async programming techniques to run queries asynchronously and concurrently. The other requirements were then addressed and the framework then became a much more valuable and robust tool for the client to work with.