I strongly disagree with statement that the tests should be written by human. Human is responsible for ensuring the correctness of implementation and signing off the task.
And I'd add one more item - use compiled language like java, c#, typescript, etc. Compiler is an additional validation point and helps rule out api method hallucinations.