Continuous Testing is the process of applying several different testing practices to the software development lifecycle. Continuous Testing can affect every single stage of development, from before code is ever written during the initial ideation process, to the requirements phase and customer journeys, to DevOps and production tasks.
What are the pieces that make up continuous testing?
There are several different practices that can be applied as part of a continuous testing transformation:
- Test ideas! (Whiteboard prototypes, customer interviews)
- TDD (Test-Driven Development)
- BDD (Behavior-Driven Development)
- Unit tests
- Performance testing
- Functional testing
- API monitoring
- UI testing
- Security testing
- Service virtualization
In this post, we’re going to focus on API Monitoring, and how it fits into the continuous testing puzzle.
Why is API Monitoring an Important Piece of Continuous Testing?
There are multiple analogies people use when talking about APIs: APIs are eating the world, APIs are the building blocks of the internet, APIs are the future, etc.
No matter which analogy we choose to go with, APIs are more popular than ever, and can be used as building blocks in the development process to help teams build specific features with incredible ease and speed (think emails, SMS, payment, among many other features).
In big companies, it’s common to have internal APIs as well that are used and shared by multiple internal applications or provided to a limited number of partners.
No matter the case, APIs are part of many applications built today. A big challenge with using APIs is that you might not always have access to the backend information of the API itself. So when issues arise, it can be really hard to figure out what went wrong. Visibility into API issues is critical for developers and applications to operate at their best. That’s where API monitoring comes in.
API Monitoring and the Development Lifecycle
API Monitoring can be used to catch API and applications issues before customers do. The way teams can accomplish that is by creating API tests (or monitors) that run continuously and check if an API is:
- Returning the correct data
- Performing well
By shifting your API testing right, and running API tests continuously, you and your team can be the first ones to be notified if there’s something wrong with an API, so you can proactively work on fixing the issue and communicating with your users. Not only that, but since your API tests are run continuously, you can also compare responses from when the API was behaving correctly, so that when the API stopped working it can help you to track down the root cause of the issue.
API monitoring is usually left to production environments, but it can also prove invaluable during other phases of the development process. The nature of API monitoring being a continuous running process means it can surface issues that might be really hard to replicate, whether that is in a testing, staging, or production environment. For example, monitoring APIs in a staging environment might surface issues caused by network traffic conditions that are hard to replicate, and that could happen in production as well. It can also surface simpler issues that unit tests might not catch, like an application that is not cleaning up its cache correctly.
The transformation that teams and companies go through when applying a Continuous Testing philosophy to their processes can have a deep impact on every aspect of an application.
Test-driven development can change the culture of an engineering team, and alter how developers work day-to-day, and help surface application issues earlier in the development process. Load testing can help teams gain more confidence that their applications can handle a certain number of users and traffic, and prepare teams for big events where they expect an increase in those numbers or how to handle unexpected events.
API monitoring is another piece to this continuous testing puzzle, and can complement these and other continuous testing best practices by helping teams catch API issues that can cause serious disruptions to an application or business as fast as possible, and give visibility into those issues so teams can respond and fix them quickly.