Если вы имеете в виду пример по этой ссылке с вариантами Who wrote it? и Who has written it? то сказать правильно можно и так, и так. Если вы утром вышли к своей машине, а на лобовом стекле надпись несмываемой краской, то вам будет не до грамматики, и вы заорёте Who wrote this!!! Потому что выбор того или иного способа передачи времени зависит, прежде всего, от контекста.
Когда же вы имеете дело с тестами, тем более, похоже, придуманные нашими отечественными знатоками, то обращать внимание нужно в данном случае как раз на отсутствие контекста. Если бы в предложении было какое-нибудь слово, отсылающее к прошлому, типа yesterday, ясное дело, надо писать Who wrote it yesterday? А поскольку ничего такого в данном примере нет, авторы считают, что вы должны понять, что речь идёт о результате, а не о факте в прошлом, и потому считают, что правильный вариант перфектный: Who has written it?
Удачи.