Nikolai Tillmann, Judith Bishop, R. Nigel Horspool, Daniel Perelman, and Tao Xie
1 June 2014
Learning to code can be made more effective and sustainable if it is perceived as fun by the learner. Code Hunt uses puzzles that play- ers have to explore by means of clues presented as test cases. Play- ers iteratively modify their code to match the functional behaviour of secret solutions. This way of learning to code is very different to learning from a specification. It is essentially re-engineering from test cases. Code Hunt is based on the test/clue generation of Pex, a white-box test generation tool that uses dynamic symbolic execu- tion. Pex performs a guided search to determine feasible execution paths. Conceptually, solving a puzzle is the manual process of con- ducting search-based test generation: the “test data” to be generated by the player is the player’s code, and the “fitness values” that re- flect the closeness of the player’s code to the secret code are the clues (i.e., Pex-generated test cases). This paper is the first one to describe Code Hunt and its extensions over its precursor Pex4Fun. Code Hunt represents a high-impact educational gaming platform that not only internally leverages fitness values to guide test/clue generation but also externally offers fun user experiences where search-based test generation is manually emulated. Because the amount of data is growing all the time, the entire system runs in the cloud on Windows Azure.
|Published in||Proceedings of the International Conference on Software Engineering (Workshops)|
|Publisher||ACM ICSE Workshop on Seach Based Software Testing 2014|
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.