How Testing Prevents Costly Mobile App Failures