An industrial study of applying input space partitioning to test financial calculation engines

This paper presents results from an industrial study that applied input space partitioning and semi-automated requirements modeling to large-scale industrial software, specifically financial calculation engines. Calculation engines are used in financial service applications such as banking, mortgage, insurance, and trading to compute complex, multi-conditional formulas to make high risk financial decisions. They form the heart of financial applications, and can cause severe economic harm if incorrect. Controllability and observability of these calculation engines are low, so robust and sophisticated test methods are needed to ensure the results are valid. However, the industry norm is to use pure human-based, requirements-driven test design, usually with very little automation. The Federal Home Loan Mortgage Corporation (FHLMC), commonly known as Freddie Mac, concerned that these test design techniques may lead to ineffective and inefficient testing, partnered with a university to use high quality, sophisticated test design on several ongoing projects. The goal was to determine if such test design can be cost-effective on this type of critical software. In this study, input space partitioning, along with automation, were applied with the help of several special-purpose tools to validate the effectiveness of input space partitioning. Results showed that these techniques were far more effective (finding more software faults) and more efficient (requiring fewer tests and less labor), and the managers reported that the testing cycle was reduced from five human days to 0.5. This study convinced upper management to begin infusing this approach into other software development projects.

[1]  A. Jefferson Offutt,et al.  Combination testing strategies: a survey , 2005, Softw. Test. Verification Reliab..

[2]  Jeffrey M. Voas,et al.  PIE: A Dynamic Failure-Based Technique , 1992, IEEE Trans. Software Eng..

[3]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[4]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[5]  H. Baker Earnings Forecasts and the Predictability of Stock Returns: Evidence from Trading the S&P , 1998 .

[6]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[7]  A. Jefferson Offutt,et al.  Coverage criteria for logical expressions , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[8]  Marc J. Balcer,et al.  The category-partition method for specifying and generating fuctional tests , 1988, CACM.

[9]  Jonas Mellin,et al.  Managing Conflicts When Using Combination Strategies to Test Software , 2007, 2007 Australian Software Engineering Conference (ASWEC'07).

[10]  Chandra M. Alluri,et al.  Testing Calculation Engines Using Input Space Partitioning and Automation , 2008 .

[11]  F. Sortino,et al.  Performance Measurement in a Downside Risk Framework , 1994 .

[12]  Roy S. Freedman,et al.  Testability of Software Components , 1991, IEEE Trans. Software Eng..

[13]  Yu Lei,et al.  Automated Combinatorial Test Methods - Beyond Pairwise Testing , 2008 .

[14]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[15]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[16]  J. Czerwonka Pairwise Testing in Real World Practical Extensions to Test Case Generators , 2006 .