Continuous testing (CT) is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. CT is an integral part of continuous delivery (CD) and DevOps practices.
Successful continuous testing is a competitive advantage, enabling businesses to deliver value to their customers with higher quality faster. However, making the jump to CT isn’t easy, and if you’re not aware of the barriers to Continuous Testing, you may find yourself headed for disaster.
Here are the top 6 barriers to continuous testing:
The initial effort required to pick, setup and configure the tools and frameworks to get to a running automation process can be daunting. The heavy investment for research time and substantial financial investment coupled with the added possibly of interrupting your day-to-day operations have been a big deterrent for many organizations.
Test Automation Coverage Is Low
In Agile development, you should not write more code than you can test with automation. An inability to automate enough tests at speed results in fewer features being developed.
Tests Maintenance Is Unmanageable
Creating a few dozen automated test cases is easy. Maintaining them over time and scaling your test suite to hundreds or even thousands of tests is sometimes, excessive and expensive. Maintenance remains the most challenging issue in test automation, especially when app changes happen frequently.
Lack of Coordinated End-to-End Testing Strategy
Tests can be automated at many layers: unit, service/API integration or GUI. Unit and service/API integration tests are closer to the code while the GUI-based tests validate the system from the user's perspective. Not knowing how many tests should be done at what level prevents teams from going fast while minimizing risks.
Lack of Unified Platform for Quality Reporting and Collaboration
Not having a unified platform like an ALM system makes it very hard to collaborate within a cross-functional team. In QA, a lack of consolidated reports that provide actionable insights means there’s no control over the product quality. Ultimately this holds teams up because Continuous Delivery requires real-time quality assessments to objectively decide go/no-go for a production push.
The Myth “You Can’t Do Continuous Testing with Legacy Systems”
Many legacy systems weren’t designed with the testability in mind. Many features with complex business logics have evolved over the years. Another added issue is that different system’s layers chain with each other. All these reasons make automated testing at the code level for legacy systems almost impossible. While unit testing and integration testing can be added incrementally, aggressively building up the full regression test suite from UI level would help the legacy system retain its quality from user’s perspective, but an added level of expertise is needed to implement this.