Adapting Structural Testing to Functional Programming

Structural testing is heavily used in the software development process in the context of imperative programming. In order to become applicable to functional programming languages it needs, however, some adaption. We investigate the definition and generation of interprocedural flow graphs for functional programs and identify data flow oriented testing as best choice for the application to functional programming. Special data flow oriented coverage criteria are defined for the use with functional programs.

[1]  Manfred Widera Data Flow Coverage for Testing Erlang Programs , 2005 .

[2]  Gregg Rothermel,et al.  WYSIWYT testing in the spreadsheet paradigm: an empirical evaluation , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[3]  Claes Wikström,et al.  Concurrent programming in ERLANG (2nd ed.) , 1996 .

[4]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[5]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[6]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[7]  Peter Liggesmeyer,et al.  Software-Qualität - testen, analysieren und verifizieren von Software , 2002 .

[8]  Simeon C. Ntafos,et al.  On Required Element Testing , 1984, IEEE Transactions on Software Engineering.

[9]  Saurabh Sinha,et al.  Analysis of programs with exception-handling constructs , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[10]  Fiffi Hellstrand,et al.  AXD 301: A new generation ATM switching system , 1999, Comput. Networks.

[11]  Janusz W. Laski,et al.  A Data Flow Oriented Program Testing Strategy , 1983, IEEE Transactions on Software Engineering.

[12]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[13]  Gregg Rothermel,et al.  What you see is what you test: a methodology for testing form-based visual programs , 1998, Proceedings of the 20th International Conference on Software Engineering.

[14]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2000, ICFP.

[15]  Hong Zhu,et al.  Software unit test coverage and adequacy , 1997, ACM Comput. Surv..

[16]  Barbara G. Ryder,et al.  Pointer-induced aliasing: a problem classification , 1991, POPL '91.

[17]  Olin Shivers,et al.  Control flow analysis in scheme , 1988, PLDI '88.

[19]  Manfred Widera Flow graphs for testing sequential erlang programs , 2004, ERLANG '04.

[20]  Gregg Rothermel,et al.  A methodology for testing spreadsheets , 2001, TSEM.

[21]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[22]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.