Evolving From Automated to Continuous Testing for DevOps
July 11, 2020
3 min read
The evolution of agile or lean development practices such as DevOps has come from businesses demanding more differentiable software. With this need for speed, we cannot assume that yesterday’s practices can meet today’s demands. Moreover, there needs to be a cultural shift from testing an application to mitigating business risks. That remains a gap in most organizations today. DevOps is integral to the Software Development Lifecycle (SDLC) due to the following factors:
- Business demand for differentiation with better and more competitive software is driving iterative and Agile development
- DevOps is enabling enterprises to release innovative software faster and more frequently.
- Previous methods, tools and processes are no longer sufficient to meet modern demands.
- Automating testing isn’t enough and systematic improvements are needed.
Speeding up any process or system exposes constraints within the workflow. This will certainly be the case for software quality. If testing was traditionally a time-boxed event, accelerating the software release cycle merely compresses the time originally allotted for testing. If increasing the release cadence is the desired outcome, the software quality process needs to be re-engineered.
Traditionally, organizations have taken a bottom-up approach to testing, adding incremental tests for new functionality. While this will always be required, the mindset needs to shift to embrace both a bottom-up and top-down approach to mitigating business risks.
Continuous testing mitigates business risk by provided a safety net for developers since change is managed in incremental pieces. Centralized, data-driven decision making helps managers and testers make better decisions and focus their efforts on testing the right parts of the application. Over time, continuous testing evolves from just measuring quality to measuring effectiveness.
What is needed today is not only more automation, but also a method in which the tests constructed indicate the probability of business failure associated with business risk, not simply a test pass/fail report. This is a fundamental shift in the quality management culture. But it is also critical to consider measuring the quality of the process itself. This is where organizations who are investing in lean or DevOps initiatives will truly see the greatest return on their investment.
Continuous Testing emphasizes continuous process improvement. While test automation provides the critical “sensors” for detecting software defects, Continuous Testing highlights process improvements that can prevent future defects from occurring. The constant monitoring of results and feeding this back into the process if key to improving test effectiveness. The focus of the team moves from defect finding and fixing to getting ahead by evolving with defect prevention. The tight loop created with continuous testing lets managers move from fire-fighting to looking at process improvement and eventually, optimization.
Continuous testing brings real-time assessments, objective go/no go quality gates, and continuous measurements to refine the development process so that business expectations are continuously met. This containment strategy prevents the leakage of defects to downstream, expensive remediation efforts.
Ultimately, Continuous Testing resets the question from “are you done testing?” to “is the level of risk understood and accepted?”
So, why consider Parasoft’s continuous testing solution? Let’s consider some of the following factors:
- Build meaningful API tests automatically: Parasoft SOAtest enables users to rapidly build test cases by monitoring application traffic and leveraging AI and machine learning to make those tests meaningful, maintainable, and scalable. Without this, it is extremely difficult to rapidly build the right amount of test cases within tight deadline
- Integrate test execution into continuous integration so even the most complex unit, API, UI, or end-to-end test case can be run with a simplified command-line execution or programmatically via an open API call. Using Parasoft SOAtest’s seamless integration with service virtualization, automated tests can be decoupled from their dependencies and executed continuously, making it easier to integrate test execution into CI platforms and eliminating the need to build scripts to execute test cases dynamically and continuously
- Reduce time spent dealing with application changes by pointing to when and where the application is changing, and how to update the necessary test cases to have them available as soon as possible for continuous feedback. Parasoft SOAtest’s Change Advisor dramatically reduces the amount of effort required for test rework when applications change. Parasoft Selenic’s AI-powered locator recommendations and self-healing reduce the cost of maintaining your UI tests when the application changes.
- Integrate continuous testing into the DevOps pipeline which is imperative for any continuous testing initiative; the integration of functional testing into the software delivery pipeline and DevOps toolchain. Parasoft’s award-winning DevOps solution provides an open and interoperable platform for API test creation and execution, so users can connect to many tools in the toolchain and take meaningful actions, from creation to execution to results retrieval.