Testing web transactions
Old tool gets new lease of life
Generating comprehensive test data sets is always a pain - especially with transaction-based applications. Today's web-based applications are subject to widely-varied live transaction volumes where server traffic can go from one transaction an hour to 1,000 a second in the blink of an eye. So if you want to test them properly you really need to throw shed loads of data at them.
Ross Systems International (RSI), a UK-based software services company, says it has the answer with Pira, its script-based testing tool. Pira, from the Greek "to test", is an intelligent generator tool which can create flexible test-sets for complex applications. It comes as a simple scripting language and Piralib, a set of C libraries.
"The language goes through a two part process during executions, very similar to Java. It is first converted to a meta-language, which is held in a tree structure in the interpreter and then this is executed to produce the test records and actions," explains Rupert Stanley, RSI founder and director.
RSI has a lengthy background in resilient computing in the finance and telecommunications industries and developed Pira originally to test applications in the HP (formerly Tandem) "NonStop" computing environment.
Though the first version of Pira was built for the NonStop platform RSI recognised the growth of high-resilience applications on the back of the web and is now working to make the tool available to a wider community.
"One of the problems with testing communications programs is there is a lot of variability and it is difficult to build comprehensive test sets. With Pira you can set up tests for every possible combination of data," he goes on.
Users can tailor Pira to their own specifications through a set of user hooks which come as a part of Piralib. The result is an economical method of creating variable test data with only a few lines of script.
Here is an example of simple Pira script to generate a small test data set:
["Hi 200 = " <COUNT> " PLUS 1 = " <COUNT> ];
["Hi 400 = " <COUNT> " PLUS 1 = " <COUNT> ];
["Finish, total count = " <COUNT> ];
Pira can generate both sequential and random test sets and vary the speed of test runs according to pre-defined conditions. If, for example, you are running a destruction test on a transaction processing engine, you can slow the test down as errors start to appear to make it easier to detect points of failure.
"Most test generators are mechanistic so they can only generate relatively simple test scenarios. What we have done with Pira is to introduce a probabilistic element to test set generation, which is more realistic," explains Stanley.
Pira produces results and statistics in standard formats so they can be fed into a test analysis program for further examination.
Pira is currently available as part of RSI's suite of test programs. It is licensed on a monthly basis at £160 per CPU although there are discounts for multiple CPUs and for resellers. RSI will make Pira available for other platforms later this year. ®