As software development grows more complex — microservices, containers, APIs, — and demand for faster releases increases, testing as usual can be seen as a clumsy, out-of-place step in the delivery process.
Organizations that have adopted Agile development and DevOps methodologies know that testing has to keep pace, and are finding that tools that don’t enable things like test automation and continuous testing are hindering their efforts.
But like Agile and DevOps practices, in testing there is no one right answer for doing things. Mark Lambert, vice president of product at Parasoft, said doing some level of test automation from a functional perspective is foundational for continuous testing. “Service virtualization is a key enabling technology for continuous testing. Typically, for you to even be able to take advantage of service virtualization, and really become a true continuous testing practitioner, you have to have some level of test automation in place to start with,” he said. Organizations will usually start with UI testing, he said, but “the sweet spot for test automation … is actually at the API level.”
Lambert said a continuous testing practice should follow the testing pyramid as defined by Mike Cohn in his book, “Succeeding with Agile,” and Agile thought leader Martin Fowler. The base is built on unit tests, which are isolated and faster to test. As you move up the pyramid, the assets you’re testing are more integrated, and take longer to perform. The middle of the pyramid is where you do service integration, or API, tests, and UI testing is the smallest top of the pyramid.
“If you’re going to do continuous testing, a foundation of unit tests is a must-have, API testing is the next must-have and you want to optimize your use of end-to-end UI tests” at the top of the pyramid, Lambert explained. “It’s not to say to eliminate [UI tests]; you want to make them as efficient as possible, because you’ve got to worry about maintainability of those tests.”
Having done this, organizations have derived what Lambert described as the first phase of value from continuous testing — earlier-stage identification of regressions, and he said the best way to find those regressions is at the API level, because they’re easier to diagnose and reproduce.
The second phase is to identify any potential integration issues as early as possible. Lambert said, “A key element of that is ensuring your application’s performance characteristics aren’t going outside of your defined service level of agreement. As it’s very easy for development teams to be adding new functionality and introducing performance issues in their application without them realizing it.”
“You’ve got your unit tests running, you’ve got your functional tests running, you’re using service virtualization to run your regression tests more continuously,” he continued, “now you’ve got the ability to say, let me take a look at my non-functional business requirements — performance and security – take performance tests that you’d normally take at the later stages, apply service virtualize to the bottlenecks in the infrastructure, and then start taking your API tests and execute them continuously under load on your part of the overall system. This is when you really start getting your second phase of value from continuous testing.”
Parasoft, recognized as Gartner Peer Insight Customers’ Choice for Software Test Automation has earned its place on the 2019 SD Times 100 by providing a breadth of cutting-edge tools that span unit, functional, UI and regression tests that help its customers deliver high-quality software that also meets end-user wants and needs. Its solutions span everything from uniting and functional testing of the API and the UI, test data management, safety and security compliance, change management, and more.
Following the test pyramid, Parasoft offers C/C++test, dotTEST and Jtest development testing tools, covering such things as static analysis for uncovering deep reliability and security (with support for the OWASP, CWE and CERT standards), unit testing, coverage and traceability.
SOAtest is Parasoft’s functional testing solution that focuses on validating applications at the API level. To help organizations move from manual testing to automated API testing, Parasoft offers Smart API Test Generator as part of SOAtest, leveraging AI and machine learning to build test scenarios from data relationships extracted from recorded application traffic.
Further, the company’s service virtualization technology, Parasoft Virtualize, lets organizations decouple tests from external dependencies for true continuous testing and enables automated tests to be continuously executed within CI pipelines.
To learn more about Parasoft’s tools and solutions, visit www.parasoft.com
Content provided by SD Times and Parasoft