I’ve been updating my testing environment to automate as much testing as possible, to eliminate simple bugs that have slipped through in the past, and make sure new features don’t interfere with existing functionality.
However, this is turning out to be a bigger job than I imagined, not so much writing the tests, but getting XCodes development environment work in tandem with the iOS simulator to setup different scenarios.
I’ve recently discovered simctl, which allows setting up custom simulators and adding media to a simulator, this is very useful as the default iOS simulator contains no videos to test with, and it used to require adding one manually, which is useless for automated testing. Now at least we can create simulators through the command line with preconfigured media, allowing me to better test videos for example, so that’s progress…. But I still have to remember and resurrect my command line and scripting skills, which have long been neglected. It’s been slow progress.
I run into other problems too, starting with what data the app starts with, what user defaults have been set etc, basically to replicate the app in any state and test it properly, none of it is easy to setuup in xcode and requires some rather ingenious hacks.
All in all, writing the tests is supported well in xcode, setting up the test environment is less than ideal though. I’m plodding through it, the next release will contain some minor bug fixes, then we’ll get stuck into some big new features.