i-nth logo

Authors

Margaret Burnett, Bing Ren, Andrew Ko, Curtis Cook, & Gregg Rothermel

Abstract

Although there has been recent research into ways to design visual programming languages and environments, little attention has been given to systematic testing in these languages, and what work has been done does not address "power" features such as recursion.

In this paper, we discuss two possible ways the "What You See Is What You Test" methodology could be extended to accommodate recursion. The approaches are presented in terms of their testing theoretic aspects and then implementation strategies and algorithms.

Since the goal is to help the people using these languages, we also present an empirical study and use its results to inform our choice as to which of the two approaches to adopt.

Sample

Spreadsheet design patterns
Spreadsheet design patterns

This figure shows linked spreadsheet design patterns. The dataflow arrows in the graphs represent cell references, and the nodes represent the spreadsheets:

  • (a) shows the equivalent of a traditional call-return relationship of one procedure calling another; in a recursive situation, the procedure/spreadsheet on the left is a copy of the procedure/spreadsheet on the right.
  • (b) shows linked spreadsheets, some of which can be copies of the others, can exist without a complete call-return relationship, such as in a pipeline-like arrangement.
  • (c) shows what might be classified as "co-routines" in traditional programming literature, in which some cell on the left spreadsheet references a cell on the right, which in turn references another cell on the left, and so on.
  • (d) is a combination of (a) and (b).

Publication

2001, IEEE Symposia on Human-Centric Computing Languages and Environments, September, pages 288-295

Full article

Visually testing recursive programs in spreadsheet languages