Articles

How to test your RDK-B products using CDRouter

The move towards open-source reference designs for broadband customer-premises equipment (CPE) and Wi-Fi routers is quickly becoming the standard for many operators looking for interoperable, heterogeneous end-user connectivity devices.  The Reference Design Kit for Broadband, commonly referred to as RDK-B, is an open-source software platform that provides a standardized approach and framework for powering various devices such as routers, modems, and gateways.

Repeatable, standardized testing is critical to the creation of a platform as powerful as RDK-B, and it is critical to anyone who is building solutions based on them. The RDK-B team employs CDRouter to validate the open-source implementation of RDK-B, underscoring the importance of rigorous and thorough testing in ensuring reliable broadband services. Here is a little bit about how RDK-B implementations can be tested with CDRouter and what to look at when building your automated test strategy for RDK-B based products.

What is RDK-B?

RDK-B was initiated to address some of the inherent challenges in the rapidly evolving broadband ecosystem. With the multitude of broadband devices coming from different manufacturers, there was an acute need for standardization to ensure interoperability, quick deployment, and consistent user experiences. It’s currently maintained by a consortium of participating companies through the RDK Management, LLC.

RDK-B’s key features for developers

  • Modular Design: Like some other open-source router stacks, RDK-B is modular. This means that it’s comprised of various components that can be updated individually without affecting the entire system. This is invaluable in today's fast-paced tech landscape, where small updates are frequent and necessary. RDK-B is continually evolving, with contributions from a vast community. It’s designed to support the integration of next-gen technologies, ensuring that devices remain relevant and compatible with emerging broadband standards and features.
  • Standardization: RDK-B offers a standardized software stack for broadband devices. This means that devices from different manufacturers can have a common software foundation, promoting interoperability and seamless integration in diverse environments.
  • Rapid Deployment: By offering a standardized platform, RDK-B considerably reduces the development time for broadband device manufacturers. They don't have to start from scratch; they can leverage the open-source foundation of RDK-B and focus on creating unique features or optimizations for their specific devices.

How RDK-B automates testing

These benefits don’t come lightly, and the RDK-B team’s automated test strategy for validating the solution during their agile development process is what makes the solution robust and trustworthy for operators to safely deploy.

RDK-B uses a test framework dubbed “Automatics” that incorporates a number of test processes and tools. QA Cafe’s CDRouter solution is integrated via the CDRouter API into the RDK-B team’s Automatics test framework. This integration streamlines the testing process, ensuring consistent and repeatable tests. The Automatics framework can start CDRouter test packages and read back the pass/fail results as part of the development pipeline.

The official CDRouter test cases used by the RDK-B team are built into CDRouter via an easy-to-use “test list” that lets users select the same tests used by RDK-B and incorporate them into their CDRouter test packages. This test list is a comprehensive set of feature and performance tests that exercise the most important functionality of your RDK-based products.

What’s included in the RDK-B test lists?

The RDK-B test lists we developed for CDRouter in partnership with the RDK-B development team to create a comprehensive set of test cases that can be used to replicate the same testing the RDK-B team uses to validate the open-source implementation. These tests cover:

  • IPv4 and IPv6 behavior and address management
  • DNS queries, responses, and relaying
  • Application and security handling (HTTP/HTTPS, TLS, etc.)
  • Firewall and security behavior
  • Throughput performance over TCP and UDP
  • SIP protocol functionality

In addition, RDK-B has an extensive custom data model for TR-069 and its successor, USP (TR-369) that is defined with vendor extensions. The RDK-B team runs CDRouter’s data model validation tests to exercise these features as well.

Essential expansions for testing RDK-B products with CDRouter

To optimally test RDK-B implementations, certain CDRouter expansions are essential:

  1. IPv6 Expansion: With the growing adoption of IPv6, ensuring your RDK-B device is IPv6 compatible and compliant is crucial.
  2. Performance Expansion: This is vital for assessing the real-world performance of your RDK-B device, ensuring it meets or exceeds expected benchmarks.
  3. DOCSIS Expansion: Given that many RDK-B devices work in DOCSIS environments, the DOCSIS expansion simplifies your test setup and includes additional test cases required by RDK-B..

For those looking to delve deeper into data model testing, the TR-069 or USP expansions are optional but recommended. These expansions, especially with the integration of the custom RDK-B TR-181 data model, provide an in-depth analysis ensuring robustness in real-world deployments.

Making the RDK-B test lists part of your overall strategy

If you are building RDK-B based products, whether or not you are using the Automatics framework for testing, CDRouter is built to validate your entire solution. Running the same tests used by the RDK-B team will help you validate your own implementation to ensure it will perform well in the field. Here’s some things you can do as part of your strategy:

  • Compare your results to the RDK-B’s official release results: The RDK-B team publishes their most recent CDRouter results on the RDK Central Wiki that is available to RDK-B members. You can use this as a baseline to make sure your own implementation gets the same expected results.
  • Add testing specific to your implementation: CDRouter has thousands of test cases and there may be features of your own products that you want to exercise with tests that may be outside of the core RDK-B test list coverage. Add them to your packages to get more coverage!
  • Test for long-term stability: Stressing your product for device stability over long periods of time is one of the most important things you can do to ensure the reliability of your product when deployed. You can read more about this kind of testing in our series on stability testing.
  • Consider testing in parallel: Testing your RDK-B solution is greatly enhanced when you can run multiple tests at the same time to target different builds or different levels of coverage (e.g., running stability or data model testing while running the RDK-B test lists). Adding parallel testing instances to your CDRouter system makes this possible and lets you get significantly more done in less time.

For more information on testing your RDK-B based solution, check out our complete guide to building an automated test strategy!