Integration testing, in its simplest form, is the point in the software development pipeline where the team runs checks against a larger system comprised of smaller components. If each component is a brick in a house, then the integration level might test the entire house, or maybe just a single wall. In any case, this phase of the continuous testing pipeline is becoming more crucial for teams who want to increase release velocity with CI/CD practices. If issues can be found at this level before it proliferates throughout the product lifecycle, it is much easier to roll things back and fix individual components, rather than later in the pipeline when there are more components and external systems involved.
When scaling your integration testing volume in your own pipeline, there are a few things to consider:
Ensure your components are well tested: Before you test the house, be sure you check each brick! Developers should be running at minimum a small subset of unit tests to ensure that their code works as expected in isolation. This makes debugging even easier as it moves to the integration stage and keeps developers working on new features instead of living in fear of QA bug reports days or even weeks later.
Optimize for test parallelization: As you increase the amount of testing in your pipeline, you never want teams waiting around for results. Too much waiting creates a mistrust around testing and disincentivizes teams to perform them early and often. Avoid the bottleneck and ensure that your tests can run in parallel. This means that each test should be atomic (testing only one feature or functionality) and autonomous (not reliant on other features or external systems). This way, you can run all of your tests at once, as long as you have the right infrastructure to support them.
Consider your infrastructure options: There are a number of factors to keep in mind when deciding on a test platform (coverage, scale, cost, etc.). But the good news is that there are a number of options available today that meet your specific requirements. Whether it’s complete browser coverage on virtual machines, or a few versions of headless browsers on containers, there are plenty of options to either build internally, or that are offered as a service. Be sure to clearly outline your requirements and budgetary constraints, and make a decision that can scale with you.
Sauce Labs provides the world’s most comprehensive Continuous Testing Cloud for web and mobile applications. With options for full cross-browser coverage, headless Chrome and Firefox, and a robust suite of debugging and analytics tools to match, our award-winning platform provides a testing platform that can meet not just your integration testing needs, but throughout your continuous testing pipeline.