Modern programs grow more complicated and consist of a large number of components. As programs become more integrated, the root cause of program bugs is hidden in tons of details. For metaprograms taking structural inputs, it could cost many human resources to dig into a sophisticated testcase, while a small portion of code is enough to reveal the internal cause. This thesis focuses on reducing structural inputs on metaprograms and showing some methods for fine-grained structural testcase reduction for better debugging metaprograms.