Dynamic program viewing is a form of visual verification in which a student executes one or more statements in a program and interactively observes the behavior in basic viewers (e.g., an object with its fields) and/or conceptual viewers (e.g., the structural display of binary search tree). This activity can be extremely useful from a program understanding perspective as well as a debugging perspective. In contrast, testing (e.g., with JUnit) provides a way to create persistent test cases and then run and re-run them in an efficient way. We have observed that dynamic program viewing and testing are quite complementary. When test cases are written and executed, dynamic program viewing becomes a valuable aid in traditional debugging as well. Since most test cases are written at the functional level (e.g., did a method return the expected value?), dynamically viewing test methods as they execute can provide students with a deeper level of understanding. The jGRASP IDE has been extended to allow students to combine dynamic program viewing with JUnit testing. In this paper, we discuss both the technical success of this effort and several examples that demonstrate the potential for student use in early computing courses.