Parallelizing Functional Tests for Computer Systems Using Distributed Graph Exploration Alexey Demakov, Alexander Kamkin, and Alexander Sortov Institute for System Programming of the Russian Academy of Sciences
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Model-Based Testing Requirements System Under Test Model Are conformant? Reactions Stimuli Test System Test generation Correctness checking Test quality estimation
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Graph Exploration for Testing Test Scenario Model Model State Stimuli Exploration Model Graph System Under Test ReactionsStimuli
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Model Graph Size The problem: size of a model graph 10 5 nodes and 10 6 arcs Possible solution: factorization But a model graph is still huge!
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Distributed Graph Exploration
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Test System Architecture
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Model Graph Storage Model Graph Storage manages information about a known part of a model graph
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Traverser Traverser fills up the storage when exploring a model graph
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Main Test Loop Main Test Loop applies test actions and analyses SUT’s reactions
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Synchronizer Synchronizer is responsible for information exchange
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Communication Topologies Ring Torus
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 User Interface
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Case Study 3 industrial projects on hardware verification >10 tests with model graphs of nodes Experimental results: model graph: nodes and arcs Number of computers TopologyExecution time, min Parallelization efficiency 1─803,31 81Ring Torus 9x Ring Torus 10x
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Conclusion Distributed graph exploration significantly speeds up testing (communication overhead < 20%) The described approach has been implemented in the UniTESK testing tools Current implementation is able to handle model graphs with 10 6 nodes and 10 7 arcs
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Future Work Dynamic reconfiguration of communication topology (adding and removing computers and links) Support of multi-core/processors computers with shared memory (sharing model graph storage) Memory optimization of a model graph representation Splitting a model graph into several weakly connected sub-graphs (in the current implementation computer should have enough memory to store a whole model graph)
5 th Open Cirrus Summit, Moscow, June 01-03, of 16 Thank You!
5 th Open Cirrus Summit, Moscow, June 01-03, The synchronization protocol Synchronizer receives all incoming network messages and asks Traverser for local update R (received) - a set of arcs in the received messages S (sent) - a set of arcs that have been already sent via the outgoing connections of the process N (new) - a local update A set of new arcs received from other processes R \ (S N) is added to Model Graph Storage. A message containing a set of arcs (R N) \ S is sent via all outgoing connections. A set of sent arcs is updated: S := S R N.