Expected results should be specified in advance (D) for all testing levels to enable pass/fail determination and prevent bias. They are not limited to system testing (A) or component testing (B), should not be ad-hoc (C), and come from requirements not code (E). Option D is the universally correct practice.