Testing is complete when the required level of confidence has been achieved (B is correct). Running out of time (A) is a constraint, not a completion criterion. Finding no more faults (C) is unrealistic - you can never prove absence of faults. The assumption that users won't find serious faults (D) is also not a valid completion criterion. Testing is complete when stakeholder requirements are met and risk is acceptable.