Automated testing framework