For most of the use cases, there is no need to 'prepare' the application under test.
You can use your application as is, and even test applications that are downloaded from the App Store.
In other cases (that are listed below) instrumentation is required. Instrumentation refers to a process where the testing code is running in the application process.
Anyway, the instrumentation process doesn't require the code of the application but just the compiled artifact (IPA / APK files).
Cases which require instrumentation:
- An application that contains WebView (Hybrid application).
- Applications with non-standard UI elements.
- Give you more option to identify elements.
- Enables you to execute your tests faster.
- Uses some advance coverage feature like camera image injection, telematics, integration with Siri...