This thesis describes a method for building testing tools using unified view of a program based on the attribute grammar. An attribute grammar allows to define the syntax and display the semantic relationships among the elements of a program. Advantages of this methods are that testing tools can be tightly integrated with such facilities as a syntax-directed editor and a compiler, and tools can be generated directly from grammatical specifications of a given programming language. With these concepts, testing tools such as static analysis, symbolic execution and dynamic analysis are systematically constructed.