Optimal Test Execution Scheduling on Multiple Machines with Resource Constraints