Is a ‘Zero Testing’ environment the holy grail of software engineering or a viable reality? Anbu Muppidathi, president & CEO (Designate) at Qualitest Group elaborates.
The pinnacle of Quality Engineering (QE) is not finding bugs but eliminating any possibility for a bug. Quality issues kill customer experience instantly and can eventually destroy a brand’s hard-earned equity – resurrecting a business’s brand is significantly costlier than fixing underlying technical issues.
Hence, every company should adopt matured quality engineering processes early in the software engineering lifecycle, so that the guaranteed business outcomes are delivered consistently throughout the customer journey.
The quality of software engineering processes can very easily be judged from the quality of the issues unearthed in the end-of-the-lifecycle testing. If anything is found during testing, then there are opportunities for improvement. Predicting and avoiding issues should be the ultimate objective rather than finding and fixing issues.
The field of Quality Engineering has advanced a lot more than most people imagine. When cutting edge Artificial Intelligence (AI), Machine Learning (ML), and analytics technologies are applied to test technology, there is a world of possibility.
Today, ML and AI have paved ways for all kinds of prediction techniques, so that engineers can avoid potential quality issues as they develop software.
Emerging methodologies have increased the release velocity of customer applications. Businesses worry about cost, quality, speed, and customer experience in every one of these releases.
Matured automation is key for continuous deployment – when the power of technology and deep domain knowledge come together in testing, effectiveness of quality goes up. Consistently measuring test effectiveness will ensure confidence in certifying the product is 100% error free, so that there is no necessity for end of the lifecycle testing.
Such a ‘Zero Testing’ environment is the ultimate nirvana that the future of software engineering can achieve. But zero-testing is the result of early and more frequent testing in the software development lifecycle. It is also a status that is achieved over a period of time after multiple iterations of release cycles.
Foundation for Zero Testing is built on the following principles:
Agile maturity of the organisation
As every company is modernising their IT, unlocking the value of these emerging technologies requires a fundamental shift in mindset and the adoption of an agile approach across the organisation.
The model should enforce early inclusion of customers in the process so that the consumer persona can be assessed early in the lifecycle to avoid potential usability issues in the future. Studies prove that more than 85% of the issues can be avoided by conducting group tests before the product rollout.
Effectiveness of enterprise architecture
How applications are designed seriously effect QE efficiency. A microservices architecture will help design a more sophisticated Quality Engineering model than a monolithic design. When automation goes more modular, coverage and leverage can be better administered.
Advanced QE discipline
Automation and simulation are the quality-twins that help guarantee product quality. Automation preserves application knowledge reusability.
Simulating potential users, data, devices, servers, and usability scenarios using virtualisation technologies helps testing the application in possible scenarios. That’s the only way to check out the possibilities of all kinds of quality issues that could arise now during the development and later during the usage.
Quality of ‘feedback’ to the system
It is important to learn early on issues that (potentially will) go wrong. Each of the learnings should be fed back through the system so that testing becomes more and more efficient.
Application of current knowledge and the ones that continue to be learned should be automatic. Manual dependencies aren’t going to help. Aligning the learning and automation leverage so that every iteration of development and testing gets better and better is crucial.
Self-testing & self-healing
Continuous quality can only be achieved through continuous testing. Embedding robotic components with the applications to digitize the quality gates to monitor, learn, self-test and self-heal, will help certify the quality for the life of the product. This requires investment in Machine Learning /Artificial Intelligence in test.
As a QE enthusiast, I would never advise not to test. But testing more and testing early, can help guarantee quality for the life of the product, so no one need test it again.