Automated test mapping and coverage for network topologies

Communication devices such as routers and switches play a critical role in the reliable functioning of embedded system networks. Dozens of such devices may be part of an embedded system network, and they need to be tested in conjunction with various computational elements on actual hardware, in many different configurations that are representative of actual operating networks. An individual physical network topology can be used as the basis for a test system that can execute many test cases, by identifying the part of the physical network topology that corresponds to the configuration required by each individual test case. Given a set of available test systems and a large number of test cases, the problem is to determine for each test case, which of the test systems are suitable for executing the test case, and to provide the mapping that associates the test case elements (the logical network topology) with the appropriate elements of the test system (the physical network topology). We studied a real industrial environment where this problem was originally handled by a simple software procedure that was very slow in many cases, and also failed to provide thorough coverage of each network's elements. In this paper, we represent both the test systems and the test cases as graphs, and develop a new prototype algorithm that a) determines whether or not a test case can be mapped to a subgraph of the test system, b) rapidly finds mappings that do exist, and c) exercises diverse sets of network nodes when multiple mappings exist for the test case. The prototype has been implemented and applied to over 10,000 combinations of test cases and test systems, and reduced the computation time by a factor of more than 80 from the original procedure. In addition, relative to a meaningful measure of network topology coverage, the mappings achieved an increased level of thoroughness in exercising the elements of each test system.

[1]  Sunit Kumar Nandi Topology generators for Software Defined Network testing , 2016, 2016 International Conference on Electrical, Electronics, and Optimization Techniques (ICEEOT).

[2]  Raphael Yuster,et al.  Finding Even Cycles Even Faster , 1994, SIAM J. Discret. Math..

[3]  Kathryn Fraughnaugh,et al.  Introduction to graph theory , 1973, Mathematical Gazette.

[4]  Julian R. Ullmann,et al.  An Algorithm for Subgraph Isomorphism , 1976, J. ACM.

[5]  Leonardo Mariani,et al.  Localizing Faults in Cloud Systems , 2018, 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST).

[6]  Elaine J. Weyuker,et al.  Experience Report: Automated System Level Regression Test Prioritization Using Multiple Factors , 2016, 2016 IEEE 27th International Symposium on Software Reliability Engineering (ISSRE).

[7]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[8]  Wayne Wolf,et al.  Hardware-software co-design of embedded systems , 1994, Proc. IEEE.

[9]  Elaine J. Weyuker,et al.  Automated System-Level Regression Test Prioritization in a Nutshell , 2017, IEEE Software.

[10]  Abhik Roychoudhury,et al.  On Testing Embedded Software , 2016, Adv. Comput..

[11]  Dennis Shasha,et al.  A subgraph isomorphism algorithm and its application to biochemical data , 2013, BMC Bioinformatics.

[12]  M. E. Stickney An application of graph theory to software test data selection , 1978, SIGMETRICS Perform. Evaluation Rev..