Look in www.opencores.org, some of them such as I2C have such testbenches. But as far as I've seen most of them are very poorly coded. We showed a better version in our recent VMM adoption book, see: www.noveldv.com or www.systemverilog.us My company specializes in various verification techniques and has several recommendations (running to many pages, so hard to explain here in few lines), some of them you can read in our web page www.noveldv.com. But if you are really serious about a good overview, merits and demerits of various testbench styles etc. take a look at our CFV course - Comprehensive Functional Verification course (see: www.noveldv.com). It is a 1-day, lab assisted training for professionals.