Systematic Unit Testing in a Read-eval-print Loop
نویسنده
چکیده
Lisp programmers constantly carry out experiments in a read-eval-print loop. The experimental activities convince the Lisp programmers that new or modified pieces of programs work as expected. But the experiments typically do not represent systematic and comprehensive unit testing efforts. Rather, the experiments are quick and dirty one shot validations which do not add lasting value to the software, which is being developed. In this paper we propose a tool that is able to collect, organize, and re-validate test cases, which are entered as expressions in a read-eval-print loop. The process of collecting the expressions and their results imposes only little extra work on the programmer. The use of the tool provides for creation of test repositories, and it is intended to catalyze a much more systematic approach to unit testing in a read-evalprint loop. In the paper we also discuss how to use a test repository for other purposes than testing. As a concrete contribution we show how to use test cases as examples in library interface documentation. It is hypothesized—but not yet validated—that the tool will motivate the Lisp programmer to take the transition from casual testing to systematic testing.
منابع مشابه
READ-EVAL-PRINT in Parallel and Asynchronous Proof-checking
The LCF tradition of interactive theorem proving, which was started by Milner in the 1970-ies, appears to be tied to the classic READ-EVAL-PRINT-LOOP of sequential and synchronous evaluation of prover commands. We break up this loop and retrofit the read-eval-print phases into a model of parallel and asynchronous proof processing. Thus we explain some key concepts of the Isabelle/Scala approach...
متن کاملfootils – Using the foo Sound Synthesis System as an Audio Scripting Language
foo is a versatile non-realtime sound synthesis and composition system based on the Scheme programming language (Eckel and González-Arroyo, 1994; Rumori et al., 2004; Rumori, 2005). It is mainly used for sound synthesis and algorithmic composition in an interactive type-render-listen-loop (the musician’s read–eval–print-loop) or in conjunction with an editor like the inferior mode of emacs. Unl...
متن کاملAsynchronous User Interaction and Tool Integration in Isabelle/PIDE
Historically, the LCF tradition of interactive theorem proving was tied to the read-eval-print loop, with sequential and synchronous evaluation of prover commands given on the command-line. This userinterface technology was adequate when R. Milner introduced his LCF proof assistant in the 1970-ies, but it severely limits the potential of current multicore hardware and advanced IDE front-ends. I...
متن کاملAn Incremental, Exploratory and Transformational Environment for the Lazy Functional Programming
Most programming environments for functional languages offer a single tool used to evaluate programs either a batch compiler or an interpreter with a read-eval-print loop. This paper presents a programming environment that supports not only evaluation, but also a range of other programming activities including transformation. The environment is designed to encourage working in an incremental an...
متن کاملTakt: A read-eval-play-loop interpreter for a structural/procedural score language
A new language for describing musical scores as well as its interpreter is developed. The language allows a concise description of note and chord sequences, and at the same time, it provides rich programming functionalities with Clike syntax, which are useful for algorithmic composition. Representing structures in music such as repetitive occurrences of a common phrase or its variation is suppo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- J. UCS
دوره 16 شماره
صفحات -
تاریخ انتشار 2010