We develop NetCov, the first tool to reveal which network configuration lines are being tested by a suite of network tests. It helps network engineers improve test suites and thus increase network reliability. A key challenge in its development is that many network tests test the data plane instead of testing the configurations (control plane) directly. We must be able to efficiently infer which configuration elements contribute to tested data plane elements, even when such contributions are non-local (on remote devices) or non-deterministic. NetCov uses an information flow graph based model that precisely captures various forms of contributions and a scalable method to lazily infer contributions. Using it, we show that an existing test suite for Internet2 (a nation-wide backbone network in the USA) covers only 26% of the configuration lines. The feedback from NetCov makes it easy to define new tests that improve coverage. For Internet2, adding just three such tests covers an additional 17% of the lines.
翻译:我们开发了NetCov, 这是第一个通过一系列网络测试来显示哪些网络配置线正在测试的工具。 它帮助网络工程师改进测试套件, 从而提高网络可靠性。 开发过程中的一个关键挑战是许多网络测试数据平面而不是直接测试配置( 控制平面 ) 。 我们必须能够有效地推算哪些配置元素有助于测试数据平面元素, 即使这些元素是非本地( 远程设备) 或非确定性的。 NetCov 使用基于信息流图的模型, 精确地捕捉各种形式的贡献, 并使用可缩放的方法推算贡献。 我们使用它, 我们显示现有的互联网2 测试套件( 美国的全国性主干线网络) 仅覆盖配置线的26% 。 NetCov 的反馈使得很容易定义新的测试来改进覆盖范围。 对于互联网2, 仅增加三个这样的测试就覆盖了另外的17% 。