1. A method for testing a compiler comprising: generating, using at least one processor, decision data by compiling at least one test program using an instrumented compiler, the decision data corresponding to at least one internal decision made by the instrumented compiler during compilation; wherein the decision data comprises information articulating the at least one internal decision and information describing why the at least one internal decision was made by the instrumented compiler; and executing, using the at least one processor, at test framework to validate the at least one internal decision.