A. A business analyst who wrote the original requirements for the system.
B. A permanent programmer who reviewed some of the new code, but has not written any of it.
C. A permanent tester who found most defects in the original system.
D. A contract tester who has never worked for the organization before.
Explanation in favor of the correct answer
In this scenario, the contract tester who has never worked for the organization before has the highest level of test independence. The three others are less independent as they are likely to make assumptions based on their previous knowledge of the requirements, code and general functionality of the original system.
Note that independence does not necessarily equate to most useful. In practice most test or project managers would recruit a permanent tester who has worked on the original system in preference to a contract tester with no knowledge of the system. However, when assembling a team it would be useful to have staff with varying levels of test independence and system knowledge.