In software development, the rise of automation tools has largely eliminated human involvement. ON one hand, it's easy to say that automation has further eliminated the need for QA but that's not the case. As experts have noted, QA is still essential, as is human intervention in some cases, to ensure a quality product is deployed.
"Test automation may largely eliminate the need for manual testing in some scenarios, but it will never eliminate the need for QA," said Chris Marsh, director of technology for AKQA. Test automation will be a part of QA engineers' toolboxes and will help focus testing efforts, he added, noting that unit tests are cheap to produce and run and therefore the most likely to be automated. Integration and UI tests, however, may be subject to more manual intervention.
The problem with traditional approaches like this is in trying to eliminate all defects before launching new software, which can prevent feedback from actual users as well as reducing ROI. No piece of software is truly defect-free, according to Marsh. QA engineers need to be involved in the build pipeline and consult on quality across the entire project lifecycle, he added.
Testing is as only as good as the test
Automation does make some aspects of QA easier, but if the test itself isn't up to snuff, it won't provide the desired result, according to Greg Hoffer, VP of engineering at Globalscape. "Because technology development is a complex, dynamic process, automated QA...is doomed to fail unless someone is able to make sure that the tests are current, or new bugs and vulnerabilities will not be detected," he said, citing the case of a serious security bug in the CryptKeeper app that wasn't found during the QA process.
Additionally, fully automated QA may result in perfectly accurate yet completely unusable software that doesn't meet any business needs, Hoffer said. Any automation in DevOps needs to be validated for usability to meet the needs of humans.
"Automated QA, continuous integration (CI), and continuous deployment (CD) are all great advances in the efficiency of DevOps. But we should not expect them to be perfect. It is still incumbent on the developer community to be vigilant," he said.
QA may actually become more important
As a result of automation, more QA work will move to the front end of the software development lifecycle, and CI tools will become more important for testing, according to Rupinder Singh, senior vice president, expert services at Software AG. "As confidence in CI and automation increases, there is a very likely scenario of customers using Continuous Delivery for selective parts of their applications, although it still is not something that is completely reliable," he said. However, the QA role may become more important in technical communities as automation takes over manual test cycles, Singh noted.
QA automated tests can prove whether known paths still work or identify new features or code that might have introduced issues, said Mark Doyle, software architect at Collabroscape. "However, it still takes ... human creativity and ingenuity to explore those paths, and then write automated tests against expected outputs," he said. "Companies must - and should - continue to employee QA teams, and they need to invest in training and software licenses for the automation platforms, but the benefit is still there."
More stable software systems is one such benefit, according to Doyle. First, running an automated test can validate the build to save time and energy on the QA personnel side before testing. Secondly, if the failed tests automatically entered issues into a defect tracking system, QA is able to come up with more comprehensive test plans, he said.
Ultimately, automation isn't a bad thing - it saves time and helps focus efforts on more human-intensive processes while removing the low-hanging fruit. It makes QA testing easier for routine tests. But it does need to be taken with a grain of salt to ensure that accurate, useless software isn't being deployed.
80% of IoT apps not tested for vulnerabilities, report says
3 ways to prevent your app developers from blowing off QA testing
How to use scrum for app development QA testing
How to build a solid workflow for updating mobile apps