You have to break very complex software product, in question shared it would be front-end and back-end verification at minimum. Your usual automation tools in use for front-end and back-end would still work. Automation framework design would stitch together both (and multiple for very complex) to complete e2e automation (for e2e workflow).
Can software be too complex for end to end test automation?
We have a very complex software product that is installed and runs on a Computer or Server. The Software is managed by a Management Console in the Cloud.
For years all of our End to End testing was manual. But this was very resource intensive and time comsuming. So a couple of years ago we moved to a more agule development approach and built a test automation system to run these End to End tests. However, we quickly found limitations for example we couldn't have automated tests check what is being displayed in the UI running on the Computer, or check what is being displayed in the Management Console in the Cloud. So we can never fully replicate in automation what the manual tests were doing.
The result is that we still run, some if not all, of the automated tests manually so check the parts that the automation can't. So it hasn't really saved us any time or effort. Also the reliability of the automated tests is an issue due to trhe complexity of the software and it having so many moving parts. We often run into timing related issues.
Is it possible that some software does not make a suitable candidate for End to End test automation? If so, what sort of approach should be taken in that situation? I've been ready about test automation a lot and looked at a number of different tools and systems, but both the tools and the theory all seem to be based around website testing, rather than testing Desktop software.
Many thanks in advance for any thoughts and suggestions.
If you are working on software that has highly dynamic functionalities and complex architecture, then it is very likely for testers to experience issues testing the application or product from end to end. Therefore, I would strongly suggest you to break your software into parts to keep things simplified. Even if it is an already developed software or application, you may consider dividing different functionalities and objectives of the product to enhance the speed of the test project and ensure a reliable end report could be generated.