Im curious to know how blizzard prevents botting.....
There are many methods of detection in place that work to find those using "botting" programs, as well as the activities that indicate possible automation of play. Those accounts are actions accordingly when found. Sometimes individually and sometimes in a wave.
Please understand that it takes time to figure these exploitative programs out, to develop methods of detection and essentially "break" the program so that it doesn't work with the game or can be found when it is used.
The trick is there are many programs out there that do their best to remain undetected. Those who design these programs are very good at what they do. Such programs also rarely remain the same once found. As soon as we figure one out, they try to figure out how we found it and develop a workaround. It is a constant struggle.
Unfortunately, from an outside perspective it can look like nothing is done, especially given the limited exposure one may have to the ebb and flow of the "botting" cycle. This cycle will often be marked by an increasing numbers of "bots" in Battlegrounds that ramps up over several months. As time goes on, hastened now when properly reported, the ability to detect or break specific programs will be found and many of those accounts will be actioned. After that, matches will once more consist primarily of players who are controlling their own character, for a time. Once the next generation of "botting" methods are developed, it will start over again.
The most effective tool that we have for helping to combat this type of behavior is the non-participation /afk report feature. http://us.battle.net/support/en/article/battleground-non-participation-account-action
While immediate results may not be seen using this feature, since the methods used to "bot" in a battleground can include a way to remove the non-participation debuff, the data on those reports is gathered by the system and is considered with respect to any future reports.