1. A computer-readable memory medium storing program instructions executable to: store a graphical program in a memory, wherein the graphical program includes a first plurality of interconnected nodes that visually indicate functionality performed by the graphical program, wherein the first plurality of interconnected nodes is configured to be compiled into machine language code executable to perform the indicated functionality; wherein the first plurality of interconnected nodes includes one or more sub-program nodes, wherein each respective sub-program node represents a respective graphical sub-program of the graphical program, wherein each respective graphical sub-program includes a respective plurality of interconnected nodes that visually indicate functionality performed by the respective graphical sub-program; wherein the program instructions are further executable to: receive first user input selecting one or more tests to perform on the plurality of interconnected nodes of the graphical program; in response to receiving second user input requesting to analyze the graphical program: perform the one or more selected tests on the first plurality of interconnected nodes of the graphical program, wherein the one or more selected tests operate to programmatically analyze the first plurality of interconnected nodes to discover a first one or more problems in the first plurality of interconnected nodes; and for each respective graphical sub-program of the one or more graphical sub-programs, perform the one or more selected tests on the respective plurality of interconnected nodes of the respective graphical sub-program, wherein the one or more selected tests operate to programmatically analyze the respective plurality of interconnected nodes to discover a respective one or more problems in the respective plurality of interconnected nodes; wherein the program instructions are further executable to: display information indicating the first one or more problems discovered in the first plurality of interconnected nodes; for each respective graphical sub-program of the one or more graphical sub-programs, display information indicating the respective one or more problems discovered in the respective plurality of interconnected nodes of the respective graphical sub-program; receive third user input selecting a first problem of the first one or more problems from the displayed information; visually indicate the first problem in the first plurality of interconnected nodes in response to the user input selecting the first problem; and automatically modify the plurality of interconnected nodes to correct the first problem, wherein automatically modifying the plurality of interconnected nodes includes one or more of: automatically re-positioning one or more nodes of the plurality of interconnected nodes; automatically re-drawing one or more wires connecting one or more nodes of the plurality of interconnected nodes.