Continuous Testing and the Mind-Boggling Magnitude of Its Importance
Shifting to DevOps and Agile practices for testing can be daunting for teams facing accelerating deployments. That's what makes continuous testing essential.
Join the DZone community and get the full member experience.Join For Free
Ready for your mind to be blown? Take a look at these stats below (which come from David McCandless of Information is Beautiful).
A million lines of code seems like a lot. If printed, a million lines of code would take up 18,000 pages of text. That’s 14 times the length of War and Peace. But in fact, a million lines of code is what is required to operate an F-22 Raptor Fighter Jet. Amazing.
Knowing that, I want you to take a little quiz. Which item below has more lines of code?
- Microsoft Office 2013
- Software in a car
- Boeing 787
- Mars Curiosity Rover
The answer, to me at least, is surprising. Your average modern, high-end car tops them all with 100 Million lines of code. In fact, the Ford F-150 has 150 Million lines of code! That is 30 times more code than the Boing 787 or Mars Rover (both with roughly 5 Million lines of code). Facebook comes in at 62 Million.
This is why some dev and testing teams often have a “deer in the headlights” look when Agile and DevOps initiatives start being discussed. With more and more pressure to deliver new code and software updates faster than ever before, the magnitude of testing is scary indeed. How in the world can they create all the test cases they need to ensure proper code coverage? Throw in all the complexities of APIs and 3rd Party app connections, Microservices, a plethora of mobile devices, IoT, much more, and it all becomes a Herculean task.
It’s been said that “the consumer appetite to engage via digital channels is matched only by intolerance for any defects that might have an impact on their user experience and business outcomes.” If organizations are going to speed up their delivery pipeline, they need to remember that the success of continuous delivery hinges on the effective employment of continuous testing.
A new study from Freeform Dynamics discusses the benefits of continuous testing (which they define as “the embedding of testing as a fundamental and ongoing aspect of every activity through the software delivery lifecycle),” and how organizations that are adopting continuous testing practices are flourishing. Their study gathered feedback from 923 IT and testing professionals worldwide.
In their research Continuous Testing as Digital Business Enabler, they identified some interesting statistics:
- 75% highlight continuous testing as critical or important.
- 76% felt it critical or highly desirable to "shift-left" testing activity from downstream back into development, and even the requirements definition stage. This is critical to be able to start doing in-sprint testing to drive faster iterations.
- Only 1 in 5 respondents said they had a good level (80% plus) of test automation coverage, with a similar number at the other extreme still relying heavily on manual processes.
- 63% indicate that traditional testing tools are too complex and/or expensive.
But among this group, 20% of the respondents were identified as “leaders.” They had made exceptional progress in driving the right kinds of testing transformation and provided tangible evidence of results. This value of continuous testing includes:
- 2.3x more likely to have succeeded in left-shifting testing activity.
- 2.4x more confident in quality of output.
- 1.9x more confident in speed of delivery.
- And one that was really impressive, 3.9x more likely to be working in an organization exhibiting rapid revenue growth.
I really enjoyed hearing the success of what was implemented at Capitol One by Adam Auerbach, who is now VP of QA and DevOps engineering at Lincoln Financial Group. In his interview with StickyMinds, he stated that “the role of the manual tester, having dedicated manual testers, is going away. It’s an automate-first culture, movement…” He continues by saying, “When you’re embracing DevOps, and you got a continuous testing pipeline set up… your tests are running early and often, and you’re getting that fast feedback back to the developers, and you’re working closer with them.”
Adam also stated the important role of key technologies like open source, test automation, and “test data management…to procure our data in an automated fashion that can be hooked into our pipeline. Service virtualization because I have downstream constraints. All of these things go into the new skills that we have to learn for continuous testing.”
In addition, and back to the Freeform Dynamics research, they also state that 1) modeling business requirements, ensuring test data available when needed, and 3) avoiding personally identifiable information in test data” were listed as the top three test automation needs, and also “continuous testing imperatives.” Yet, while these were listed as the most important, the majority of felt they weren’t efficient in these areas.
In Alex Martin's DZone article, “3 Ways to Get in Shape for Continuous Testing,” he points to organizations like GM Financial and United Airlines that have started their Continuous Delivery journey with Continuous Testing practices. He concludes, “So don’t sweat it, jump on that Continuous Testing treadmill, start slowly and keep on cranking up the speed with the little wins that will happen week after week.”
So, where can you start, and where do you think your organization stacks up compared to others? Or are you a testing leader? Luckily, Freeform Dynamics also put together a Continuous Testing Scorecard Assessment to see where you are in your testing practices, which offers recommendations to start based upon your score. To find out where you are, take the quiz and see where you score.
Published at DZone with permission of Scott Edwards, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.