Visualizing Path Exploration to Assist Problem Diagnosis for

Visualizing Path Exploration to Assist Problem Diagnosis for Structural Test Generation Jiayi Cao 1, Angello Astorga 1, Siwakorn Srisakaokul 1, Zhengkai Wu 1, Xueqing (Susan) Liu 1, Xusheng Xiao 2, Tao Xie 1 Email: {jcao 7, aastorg 2, srisaka 2, zw 3, xliu 93, taoxie}@illinois. edu, xusheng. xiao@case. edu

Test Generation with Dynamic Symbolic Execution (DSE) Input: x; while (x > 0) x - -; x>0 flip the branch x– 1>0 …. x – n >0 Symbol execution tree x – 1 <=0 Constraint solver: x > 0 & x – 1 <= 0 => x = 1
![Boundary Problem public void Bubble. Sort(int[] array, int n){ for (int i = 0; Boundary Problem public void Bubble. Sort(int[] array, int n){ for (int i = 0;](http://slidetodoc.com/presentation_image/0639b69b6106e28d2a2db0cbc169d94e/image-3.jpg)
Boundary Problem public void Bubble. Sort(int[] array, int n){ for (int i = 0; i < array. length; i++) { Cannot reach the bug! for (j = 0; j < n; j++){ //… 1. Incremental test generation on number. Length } } 2. Inner loop: constraint solver if (array. Length > 200){ cost increases with n throw new Exception(“bug”); 3. Time cost for reaching the }} bug exceeds the limit ! bug

Pex. Viz • Objective: Assist developers in diagnosing problems encountered during test generation using visualization

Bubble. Sort Example Flip count = 0 Variant Control Flow Graph
![Comparison with Baseline • SEViz [1] outputs the symbolic execution tree bad for visualization Comparison with Baseline • SEViz [1] outputs the symbolic execution tree bad for visualization](http://slidetodoc.com/presentation_image/0639b69b6106e28d2a2db0cbc169d94e/image-6.jpg)
Comparison with Baseline • SEViz [1] outputs the symbolic execution tree bad for visualization • 6 nodes (Pex. Viz) vs. 276 nodes (SEViz) [1] SEViz: A Tool for Visualizing Symbolic Execution, Honfi et. al. ICST’ 15

Thank you! Acknowledgment: NSF CNS-1513939, NSF CNS-1564274
- Slides: 7