Model-Driven In-the-Loop Validation: Simulation-Based Testing of UAV Software Using Virtual Environments