Behavior-Based Test Automation and the Future of Software Engineering