A couple of questions from Woon Kiat to my previous post on the different types of testing we do on our C++ compiler:

>>Is understanding the inner working of a compiler vital to compiler testing?

I would say so, at least at some level.  In a general sense, I would say it's hard to be really successful at testing anything without understanding the domain area of what you are testing.

That said, I don't think many folks came to our compiler test teams with a lot of understanding of the inner workings of a compiler, especially the back end.  This is something that we pick up from doing the work.

>>How would you verify the binary generated from the compiler is correct? Is it fall under Correctness Tests?

In general, we write programs to expose the behavior that demonstrate the particular compiler behavior we expect to see from the feature we are testing.  This does fall into the category of correctness tests.  I'll try to include some examples of how we do this in my next post on C++ compiler testing.

Thanks for the questions, Woon!