Creating and Visualizing Test Data from Programming Exercises

Automatic assessment of programming exercises is typically based on testing approach. Most automatic assessment frameworks execute tests and evaluate test results automatically, but the test data generation is not automated. No matter that automatic test data generation techniques and tools are available. We have researched how the Java PathFinder software model checker can be adopted to the specific needs of test data generation in automatic assessment. Practical problems considered are: how to derive test data directly from students' programs (i.e., without annotation) and how to visualize and how to abstract test data automatically for students? Interesting outcomes of our research are that with minor refinements generalized symbolic execution with lazy initialization (a test data generation algorithm implemented in PathFinder) can be used to construct test data directly from students' programs without annotation, and that intermediate results of the same algorithm can be used to provide novel visualizations of the test data.

[1]  Margus Veanes,et al.  Validating use-cases with the AsmL test tool , 2003, Third International Conference on Quality Software, 2003. Proceedings..

[2]  P. D. Coward,et al.  Symbolic execution and testing , 1990 .

[3]  Antonija Mitrovic,et al.  Evaluation of a Constraint-Based Tutor for a Database Language , 1999 .

[4]  John English Automated assessment of GUI programs using JEWL , 2004, ITiCSE '04.

[5]  Sarfraz Khurshid,et al.  TestEra: Specification-Based Testing of Java Programs Using SAT , 2004, Automated Software Engineering.

[6]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[7]  W. Visser,et al.  Second Generation of a Java Model Checker , 2000 .

[8]  Michael T. Goodrich,et al.  PILOT: an interactive tool for learning and grading , 2000, SIGCSE '00.

[9]  Sarfraz Khurshid,et al.  Generalized Symbolic Execution for Model Checking and Testing , 2003, TACAS.

[10]  David Jackson,et al.  Grading student programs using ASSYST , 1997, SIGCSE '97.

[11]  Jorma Tarhio,et al.  ACE: Automated Compiler Exercises , 2004 .

[12]  Corina S. Pasareanu,et al.  Verification of Java Programs Using Symbolic Execution and Invariant Generation , 2004, SPIN.

[13]  Sarfraz Khurshid,et al.  Test input generation with java PathFinder , 2004, ISSTA '04.

[14]  David Notkin,et al.  Symstra: A Framework for Generating Object-Oriented Unit Tests Using Symbolic Execution , 2005, TACAS.

[15]  Lori A. Clarke,et al.  A System to Generate Test Data and Symbolically Execute Programs , 1976, IEEE Transactions on Software Engineering.

[16]  Paul Roe,et al.  Static Analysis of Students' Java Programs , 2004, ACE.

[17]  Lauri Malmi,et al.  TRAKLA2: a Framework for Automatically Assessed Visual Algorithm Simulation Exercises , 2003 .

[18]  Petri Ihantola Test data generation for programming exercises with symbolic execution in Java PathFinder , 2006, Baltic Sea '06.

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

[20]  Lauri Malmi,et al.  Fully automatic assessment of programming exercises , 2001 .

[21]  C. V. Ramamoorthy,et al.  On the Automated Generation of Program Test Data , 1976, IEEE Transactions on Software Engineering.

[22]  Jon Edvardsson,et al.  A Survey on Automatic Test Data Generation , 2002 .

[23]  Michael R. Lowry,et al.  Experiments with Test Case Generation and Runtime Analysis , 2003, Abstract State Machines.

[24]  Klaus Havelund,et al.  Model Checking Programs , 2004, Automated Software Engineering.

[25]  J. Richard Kane,et al.  ATLAS-An Automated Software Testing System , 1976, ICSE '76.

[26]  Kirsti Ala-Mutka,et al.  Journal of Information Technology Education Supporting Students in C++ Programming Courses with Automatic Program Style Assessment Supporting Students on C++ Programming Courses , 2022 .