Learning How to Search: Generating Effective Test Cases Through Adaptive Fitness Function Selection