The objective of the research is twofold. A comprehensive data-flow model of procedural programs will be de eloped that will permit one to formulate structural testing strategies, debugging procedures and static analysis in a unified framework. The model should reflect the mutual dependencies of those activities and exhibit a hierarchical structure. The development of the model will be related to the study of the origin and propagation of errors in the program. The second objective of the research is partial automation of some verification activities. This involves the identification of the paths that meet the requirements of a structural testing strategy, using the technique of regular expressions; interactive procedures for the synthesis of test data that cause the traversal of those paths; and the derivation of efficient error-locating algorithms. Ultimately, the results of the research will be used in Computer Aided Software Engineering.