No public transport exists from Victoria Falls directly to Botswana - a taxi to the border will cost around 40$, or some hotels in Vic Falls can arrange transfers.
FROM JOHANNESBURG: Intercape operates a line direct from Johannesburg (Park Station) to Harare that stops in Masvingo (also stops in Pretoria on the way and can be caught there as well). Bus tickets can be purchased online or at the respective station. Entering from SA you will pass through the Beitbridge border crossing, which is reputed to be the busiest and most congested border crossing in all of Southern Africa. Buy all food and drink needed at the last rest stop the bus makes before the border and try to use the bathroom on the bus before exiting the bus at the border. Upon arrival on the SA side everyone will be asked to get off, you may or may not need to also bring all of your bags. Check and remember your bus number. Try to stay with the bus group through the process to not get lost; the bus may leave without you. You will wait in line standing either outside or inside or both for anywhere from 1 to 4+ hours depending on any number of factors, or no factors at all. It may be very cold outside. Once through processing on the SA side you will reboard the bus (showing an immigration official at the bus door your stamped passport) and drive over the Limpopo River to the Zimbabwe side. Everyone will get off the bus again, wait in line, get processed, and reboard the bus afterwards. This part may also take hours, but generally will be shorter and easier than on the SA side.
See the Visa section above for visa details concerning this crossing.