Both require having an understanding of what you are trying to emulate. There are systems which don't have an accurate specification so they are not implemented bug free.