|
|
Project: A Scheme Unit Testing Framework
Student Researchers: Sara von Mosch, Yer Yang
Advisors: Scott W. Lewandowski, Janet Kinney
Institution: University of Minnesota - Morris
The purpose of this project was the design and development
of a Scheme
unit testing framework. The framework facilitates the development of
better, more correct code by alerting the user to errors revealed during
testing.
Our project began by researching testing frameworks and unit testing,
with
special emphasis on testing in functional programming languages. Based
on
feedback from people familiar with using Scheme at the introductory level,
we created a framework that is concise and easy to use. We also developed
a user manual that acts as a tutorial and provides an introduction to
unit
testing, a guide to using the framework, and several examples.
This project integrates many of the ideas found in Kent Beck's original
paper on testing frameworks - "Simple Smalltalk Testing: With Patterns".
We felt it was important to model our framework after those already in
existence. Doing so not only provided a guide for our research, but should
also ease the transition for users to testing frameworks in other
languages such as JUnit for Java. The framework consists in part of a
collection of assertions, similar to those found in object-oriented
programming language testing frameworks. These assertions, along with
Scheme's ability to pass functions as arguments, provide the foundation
for the rest of the framework.
To make the framework accessible to anyone already familiar with Scheme,
regardless of their knowledge of software testing, we created a user
manual to guide those users who are unfamiliar with testing. The manual
contains an introduction to unit testing and instructions that guide the
user through sample exercises. It is set up in a tutorial style format,
with each instruction explained in detail, sample code provided, and
exercises for the user to try on his/her own. An appendix contains the
sample code used throughout the tutorial, which is available to the user
for their own testing.
It is our intention to use the framework and user manual in the
introductory computer science course at UMM which uses Scheme. The user
manual contians several exercises which could be used as homework or
in-class lab exercises, and can easily be extended to accomodate new
material.
We presented our work via a technical paper and presentation at the 35th
Annual Midwest Instructional Computing Symposium (MICS) and a poster at
the 2nd Annual UMM Undergraduate Research Symposium.
Project Webpage: http://tyvex.mrs.umn.edu/UMMCSciWIki/bin/view/Crew2001/
|