A Search-Based Framework for Failure Reproduction