Boolean programs with recursion are convenient abstractions of sequential imperative programs, and can be represented as recursive
state machines (RSMs) or pushdown automata. Motivated by the special structure of RSMs, we define a notion of modular visibly
pushdown automata (modular VPA) and show that for the class of languages accepted by such automata, unique minimal modular
VPA exist. This yields an efficient approximate minimization theorem that minimizes RSMs to within a factor of k of the minimal RSM, where k is the maximum number of parameters in any module. Using the congruence defined for minimization, we show an active learning
algorithm (with a minimally adequate teacher) for context free languages in terms of modular VPAs. We also present an algorithm
that constructs complete test suites for Boolean program specifications. Finally, we apply our results on learning and test
generation to perform model checking of black-box Boolean programs.