I can tell you my current way for checking Bots, but will not reveal all details.
When i suspect someone is running a script, when i am near him, i do the following things:
I watch the player for some time, to see if i can find a sequence of repeating actions.
Besides that i look if a player is dropping loot around him.
I start talking to the player in charge with Tells, to explain that i am checking him and want him to respond back to me.
When i don't get a response from the player, i send him a warning to read his Tells.
A warning is a red message onscreen and in all chattabs, so no one can miss it, when the person is behind the PC.
If the person is still not responding to me, i appear visible in front of the person and i start talking with him publically in main chat.
I tell to the person, that he/she has got about a minut to repsond back to me, or i will deal with him/her as a cheater, who is running a script.
From that point i strip the inventory from a player and ban him/her for 30 days, at the first time only, when i catch a player.
My whole way of checking, looting and banning a person takes about 5-15 minuts, because i have to remove everything manually.
All this time the player can respond back to me.
So if i completed all steps, i am sure, that i have dealt with someone who was cheating.