When users find faults, it indicates both quality issues in the software (faults exist) and gaps in the testing process (they weren't caught before release). Insufficient time (D) can contribute to poor testing, but poor quality software (A) alone doesn't explain why users found them: testing should have caught them. Bad luck (C) is not a systematic cause.