A Framework for Proactive Self-adaptation of Service-Based Applications Based on Online Testing