When Will Apps Test Themselves?
What’s that…? Your apps don’t test themselves?! Come in from the cold; step into the light. Here we just sit back and let the apps build and test themselves.
Just kidding. But seriously, when we talk about the promise of self-testing applications, we need to be quite specific. Because in truth, testing has been undergoing a gradual process of more and more automation until many manual tasks are now all but eliminated. I therefore tend to think of degrees of automation, with total manual testing at one end of the spectrum, and machine-learning Artificial Intelligence (AI) at the other. It’s also a more useful way of analyzing where your mobility initiative stands currently, understanding what is possible and how to get to the next stage. Let’s take a look at the four main stages of the automation journey.
We’re pedaling hard: the only way is up!
I’m going to assume that there aren’t many testers out there testing mobile applications 100% manually on any scale. However, we do come across individuals and teams who are still stuck with varying degrees of “waterfall” in the dev cycle. If you’re experiencing long planning sessions, which are then followed by development, and only then testing, you are not harnessing the power of automation efficiently. It’s likely that you’re spending way too much time fixing bugs in order to achieve a basic functionality rather than an intuitive user experience.
What next? The answer here is to plan automation earlier in the process to really transition from manual testing to QA. Incidentally, if you’re not sure how you’re managing the shift from waterfall to agile, take a look at Talking Agile, But Living Agile-Fall.
Fully motorized now: QA
One of the differences between QA and testing is that while old-fashioned testing achieved better software by fixing bugs in the code, QA improves the overall development process, and as a consequence improves the software. When a team is testing “close to the code”, it is already improving the app’s ability to self-test in one sense, since problem resolution occurs as you go along. In this phase of testing maturity, teams use automation framework(s) for many different aspects of testing. You might, for instance, expect unit testing and integration testing to be automated, but to experience regular hiccups, which can only be resolved with manual exploration.
What next? Teams who find themselves in this section are definitely on the right path to automated testing. They may benefit from some guidance on how to decide what and when to automate, and they would do well to invest additional time looking at the latest automation tools that are coming to market. By way of example, GUI testing has always been tricky in the world of test automation. Teams who are happy to automate so many other aspects, insist that manual is still best for beating the UI bugs that can crop up between versions of the app, the OS and different handsets out there. Recently, some exciting advances have been made in this field, with automated visual testing becoming an extremely useful tool when deployed wisely. (For more on this, check out our recent webinar with Applitools).
Cruise control: continuous testing and delivery
If you’re implementing CI/CD, by definition you’re automating close to the code. In this scenario, teams are typically spending less than 10% of their time on manual-based testing sessions. That is to say, automated GUI, API, integration, component and unit testing are taking place, continuously.
What next? When we talk about the maturity of testing, currently it does not get much better than this. In the CI/CD scenario, teams are able to accelerate development and delivery, which opens up a world of other possibilities. For instance, teams can improve market coverage in terms of geography or OS or device. Customer experience will be much improved. Application development and delivery teams can therefore focus on strategic initiatives, such as increasing adoption or bringing new products to market, safe in the knowledge that a process is in place that results in a better end product and faster problem resolution.
CI/CD is not without its drawbacks. Teams can experience spiraling levels of complexity. This is a key issue to watch for if you see the IoT as affecting your business any time soon. A rise in connected devices is going to mean more complex testing! If you think your CI/CD processes could do with a spring-clean, feel free to contact us here for some expert guidance on aligning tools and processes for maximum efficiency.
Self-driving: the future of app testing?
AI is going to be a major disruptive force. Mastering what it has to offer will herald a future in which app delivery and testing is not just automated, it can self-diagnose and self-heal. We’re not fully there yet, although you’ll want to watch this space. Self-healing, self-diagnosing capabilities are being hotly pursued by researchers and developers alike. In a world where critical infrastructure and mobility increasingly interlock, the ability to deliver services anytime, anywhere, no matter what, is going to become even more of a differentiator.
What next? You may be asking – what does all this mean for the role of the tester/QA? You may be reading about AI everywhere you turn and increasingly worrying about your job!
Look instead at what automation has meant for testing up til now. The role of a QA professional is much more about delivering improved user experience rather than just functional, bug-free code. The transition from testing to QA requires an expanded skillset that fits an environment made up of smaller teams and more fluid role boundaries. Even as we push the boundaries of test automation, the art is in understanding where to deploy the tools and where to get involved yourself.
In terms of business outputs, automation’s benefits are huge. Rather than automating testers/QAs out of a job, it’s opened up possibilities by enabling more apps, shorter time to market, and apps that go further in terms of localization and functionality. And believe me, as the era of the IoT matures, we are going to rely on self-testing and automation like never before.
If you have a query about improving the intelligence of your automation process, why not contact us? If our 12+ years of mobility expertise has taught us anything at Apexon, it’s to be prepared for what’s ahead.