As apps and software matures, it can become extremely expensive in terms of time and money to continue to manually test its functionality. By employing an effective automated testing solution, you can greatly reduce a lot of cost and error in your development.
(If you’d like an overview of exactly what automated testing entails, check out the Crash course on automated testing article.)
The cost of a computer executing some code that tests your app in minutes rather than days or weeks is obvious. Long term the time and money cost of having things automatically run repetitive test scripts every time you want to release a new version versus a human having to do it are worlds apart.
It’s easy for a human who’s been running repetitive tests all day to get tired and make mistakes. I’ve certainly been guilty of this in the past and that’s had a knock on effect of thinking there’s issues that aren’t actually because you’ve thought you’re still on the previous test or something like that.
When there’s human error it generally means missing bugs that could make it into the live version or the app, or spending hours or days of process and developer investigations to something that is totally fine.
Automation when completed and tested the first time, entirely removes this issue. It simple runs and validates things do or don’t work as intended.
Because automated tests can run so much faster and more regularly, developers can be made aware of issues much sooner. This results in the developer being more in a mindset of the area that has broken and what they’re doing.
Getting notified soon also has a financial benefit, because it means less process and person hours in tracking and verifying issues that may have been found later. Or in the worst case scenario, an issue gets through to the app store version and there’s the financial cost of negative feedback and lost revenue.
It’s far more efficient for a pre-written script to run across multiple devices than for multiple people to spend time testing multiple devices.
These days, there’s also the huge advantage of using device farms that services like Xamarin TestCloud or Amazon Web Services Device Farm provide. This means you can run your tests across 100’s or 1000’s or different devices and operating systems and find issues with more configurations, that in the past may have only serviced in the released app.
Having your human capacity freed from the burden of manual testing means they can spend time on exploratory testing looking for odd scenarios no one has thought of yet. Exploratory testing can often be forgotten or limited with traditional manual testing which means users who do things differently than you expected will find issues when using the app.
Once again, it’s a lot cheaper finding issues internally before releasing an app than it is to have them found by users whose initial reactions may well be to leave a scathing 1 star review.
Whilst initially your MVP app may not require an automated testing framework, as it matures and grows it’s well worth considering spending some resources on ensuring you’re delivering a quality product going forward.
Discovering issues early and ensuring that as the code in the app changes and features are added they’re tested from the outset and aren’t breaking existing functionality. It’s much cheaper in the long run.