Form-based visual programming languages, which include electronic spreadsheets and a variety of research systems, have had a substantial impact on end-user computing. Research shows that form-based visual programs often contain faults, and that their creators often have unwarranted confidence in the reliability of their programs. Despite this evidence, we find no discussion in the research literature of techniques for testing or assessing the reliability of form-based visual programs. This paper discusses our efforts to address this lack. We describe differences between the form-based and imperative programming paradigms that affect testing strategies for form-based programs, and discuss the effect these differences have on testing methodologies. Based on this discussion, and focusing on code-based testing, we present several test coverage criteria for form-based programs, and illustrate their application. We show that an analog to the traditional "all-uses" data-flow testing criteria is well suited for code-based testing of form-based visual programs: it provides important error-detection ability, and can be applied more easily to these programs than to imperative programs.