Optimizing Unit Testing Efficiency for Asynchronous Java Code