Supporting the testing of scientific frameworks with software product line engineering: a proposed approach

Testing scientific software involves dealing with special challenges like missing test oracle and different possible sources of a problem. When testing scientific frameworks, additionally a large variety of mathematical algorithms and possible applications for the framework has to be handled. We propose to use concepts of software product line engineering to handle this variability. The contribution of this paper is a two-step process for reengineering a variability model out of a framework for scientific software. This process is explained with a real case study. Furthermore, we sketch how the variability model can be used to systematically derive system test applications for the framework.

[1]  Steve M. Easterbrook,et al.  Engineering the Software for Understanding Climate Change , 2009, Computing in Science & Engineering.

[2]  Klaus Pohl,et al.  Principles of Variability , 2005, Software Product Line Engineering.

[3]  Dirk Muthig,et al.  Defining a strategy to introduce a software product line using existing embedded systems , 2006, EMSOFT '06.

[4]  Klaus Pohl,et al.  A Framework for Software Product Line Engineering , 2005, Software Product Line Engineering.

[5]  T. Trucano,et al.  Verification, Validation, and Predictive Capability in Computational Engineering and Physics , 2004 .

[6]  Andreas Dedner,et al.  A generic grid interface for parallel and adaptive scientific computing. Part II: implementation and tests in DUNE , 2008, Computing.

[7]  Geoff R. Mant,et al.  Scientific Software Development at a Research Facility , 2008, IEEE Software.

[8]  Roger Schultz,et al.  Verification & validation , 1988 .

[9]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[10]  Jaejoon Lee,et al.  Feature-Oriented Re-engineering of Legacy Systems into Product Line Assets - a Case Study , 2005, SPLC.

[11]  Robert S. Arnold Software Reengineering , 1993 .

[12]  Klaus Pohl,et al.  Domain Testing , 2005, Software Product Line Engineering.

[13]  Jeffrey C. Carver,et al.  observations about Software development for High End Computing , 2006 .

[14]  Wen Yu,et al.  Reusability of FEA software: A program family approach , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[15]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[16]  Jeffrey C. Carver Report: The Second International Workshop on Software Engineering for CSE , 2009, Computing in Science & Engineering.

[17]  Andreas Dedner,et al.  A generic grid interface for parallel and adaptive scientific computing. Part I: abstract framework , 2008, Computing.

[18]  S. Thorsteinson,et al.  Scientific Software Testing: Analysis with Four Dimensions , 2011, IEEE Software.

[19]  Claes Johnson,et al.  Computational Differential Equations , 1996 .

[20]  Diane Kelly,et al.  Testing for trustworthiness in scientific software , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[21]  Klaus Pohl,et al.  Product Management , 2005, Software Product Line Engineering.

[22]  Alessandro Pasetti Software Frameworks and Embedded Control Systems , 2002, Lecture Notes in Computer Science.

[23]  Peter Bastian,et al.  The Iterative Solver Template Library , 2006, PARA.