Testing Black-Box SDN Applications with Formal Behavior Models

The programmability of Software-Defined Networking (SDN) challenges the correctness and reliability of networks. There may be design flaws as well as implementation bugs in SDN applications. White-box testing methods with formal models rely on source codes, which limits the applicability of these methods. Black-box methods without behavior models cannot systematically cover an application's functions. Most previous work has mainly focused on design flaws and has ignored implementation bugs. In this paper, we propose a new black-box test framework to detect both design flaws and implementation bugs. Following this test framework, we propose a new model, Information Table Extended State Machine (IT-EFSM), combining a group of parallel state machines and an abstract topology to specify the SDN applications. We employ a model checking tool to generate tests against design flaws and propose a test generation based on partial composition, symmetry simplification on the topology and topology simulated execution to expose implementation bugs. The experimental results of the testing process demonstrate the effectiveness and applicability of our method.

[1]  Robert M. Hierons,et al.  Generating Feasible Transition Paths for Testing from an Extended Finite State Machine (EFSM) , 2009, ICST.

[2]  David Lee,et al.  Online minimization of transition systems (extended abstract) , 1992, STOC '92.

[3]  Brighten Godfrey,et al.  Debugging the data plane with anteater , 2011, SIGCOMM.

[4]  Xingang Shi,et al.  A TTCN-3-based protocol testing system and its extension , 2008, Science in China Series F: Information Sciences.

[5]  J. Rexford,et al.  Logic Programming for Software-Defined Networks , 2012 .

[6]  Tianlong Yu,et al.  BUZZ: Testing Context-Dependent Policies in Stateful Networks , 2016, NSDI.

[7]  Svetlana Prokopenko,et al.  Extended Finite State Machine Based Test Derivation Driven by User Defined Faults , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[8]  Chen Chen,et al.  Proof-based Verification of Software Defined Networks , 2014, ONS.

[9]  Azer Bestavros,et al.  Verifiably-safe software-defined networks for CPS , 2013, HiCoNS '13.

[10]  Katerina J. Argyraki,et al.  Verifying Reachability in Networks with Mutable Datapaths , 2016, NSDI.

[11]  Da Yu,et al.  Simon: scriptable interactive monitoring for SDNs , 2015, SOSR.

[12]  Marco Canini,et al.  Automating the Testing of OpenFlow Applications , 2011 .

[13]  Olivier Bonaventure,et al.  Towards test-driven software defined networking , 2014, 2014 IEEE Network Operations and Management Symposium (NOMS).

[14]  Azer Bestavros,et al.  A Verification Platform for SDN-Enabled Applications , 2014, 2014 IEEE International Conference on Cloud Engineering.

[15]  Marco Canini,et al.  A NICE Way to Test OpenFlow Applications , 2012, NSDI.

[16]  George Varghese,et al.  Usenix Association 10th Usenix Symposium on Networked Systems Design and Implementation (nsdi '13) 99 Real Time Network Policy Checking Using Header Space Analysis , 2022 .

[17]  Nobuyuki Tomizawa,et al.  Efficient model checking of OpenFlow networks using SDPOR-DS , 2014, The 16th Asia-Pacific Network Operations and Management Symposium.

[18]  George Varghese,et al.  Header Space Analysis: Static Checking for Networks , 2012, NSDI.

[19]  Brighten Godfrey,et al.  VeriFlow: verifying network-wide invariants in real time , 2012, HotSDN '12.

[20]  Laurent Vanbever,et al.  SDNRacer: concurrency analysis for software-defined networks , 2016, PLDI.

[21]  Michael Schapira,et al.  VeriCon: towards verifying controller programs in software-defined networks , 2014, PLDI.

[22]  Zhi Liu,et al.  Troubleshooting blackbox SDN control software with minimal causal sequences , 2014 .

[23]  George Varghese,et al.  Checking Beliefs in Dynamic Networks , 2015, NSDI.

[24]  Shriram Krishnamurthi,et al.  Tierless Programming and Reasoning for Software-Defined Networks , 2014, NSDI.

[25]  Costin Raiciu,et al.  SymNet: Scalable symbolic execution for modern networks , 2016, SIGCOMM.

[26]  Robert M. Hierons,et al.  Generating Feasible Transition Paths for Testing from an Extended Finite State Machine (EFSM) , 2009, 2009 International Conference on Software Testing Verification and Validation.

[27]  Sharad Malik,et al.  Abstractions for model checking SDN controllers , 2013, 2013 Formal Methods in Computer-Aided Design.