I am a second year Ph.D. student in Computer Science Department at University of California, Los Angeles. I am designing testing and program synthesis method for big data analytic and FPGA. I am a member of SOLAR group and co-advised by Professor Miryung Kim and Professor Harry Xu.
QDiff: Differential Testing for Quantum Software Stacks
By Jiyuan Wang, Qian Zhang, Guoqing Harry Xu, Miryung Kim
The 36th IEEE/ACM International Conference on Automated Software Engineering, ASE 2021.
The past few years have witnessed the proliferation of quantum software stacks (QSS) developed in response to rapid hardware advances in quantum computing. A QSS includes a quantum programming language, an optimizing compiler that compiles a quantum algorithm expressed in a high-level language into quantum gate instructions, a quantum simulator that emu- lates these instructions on a classical device, the control software that turns circuits into analog signals sent to the quantum computer, and execution on very expensive quantum hardware. In comparison to traditional compilers and architecture simulators, QSSes are difficult to tests due to the probabilistic nature of results, the lack of clear hardware specifications, and quantum programming complexity. This work devises a novel differential testing approach for QSSes, named QDIFF with three major innovations: (1) We generate input programs to be tested via semantics-preserving, source to source transformation to explore program variants. (2) We speed up differential testing by filtering out quantum circuits that are not worthwhile to execute on quantum hardware by analyzing static characteristics such as circuit depth, 2-gate operations, gate error rates, and T1 relaxation time. (3) We design an extensible equivalence checking mechanism via distribution comparison functions such as Kolmogorov–Smirnov test and cross entropy.
HeteroFuzz: Fuzz Testing to Detect Platform Dependent Divergence for Heterogeneous Applications
By Qian Zhang, Jiyuan Wang, Miryung Kim
The 29th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2021
We propose a novel fuzz testing technique, called heterofuzz, designed to specifically target heterogeneous applications and to detect platform-dependent divergence. The key essence of heterofuzz is that it uses three-pronged approaches to reduce the long latency of repetitively invoking a hardware simulator on a heterogeneous application. First, in addition to monitoring code coverage as a fuzzing guidance mechanism, we analyze synthesis pragmas in kernel code and monitor accelerator-relevant value spectra. Second, we design dynamic probabilistic mutations to increase the chance of hitting divergent behavior under different platforms. Third, we memorize the boundaries of seen kernel inputs and skip HLS simulator invocation if it can expose only redundant divergent behavior. We evaluate heterofuzz on seven real-world heterogeneous applications with FPGA kernels. heterofuzz is 754X faster in exposing the same set of distinct divergence symptoms than naive fuzzing. Probabilistic mutations contribute to 17.5X speed up than the one without. Selective invocation of HLS simulation contributes to 8.8X speed up than the one without.
arXiv (Oct 2018)
Efficient Fuzz Testing for Apache Spark Using Framework Abstraction
By Qian Zhang, Jiyuan Wang, Muhammad Ali Gulzar, Rohan Padhye, Miryung Kim
The 43rd IEEE/ACM International Conference on Software Engineering, Demonstrations, ICSE 2021.
Tool paper for BigFuzz
BigFuzz: Efficient Fuzz Testing for Data Analytics using Framework Abstraction
By Qian Zhang, Jiyuan Wang, Muhammad Ali Gulzar, Rohan Padhye, and Miryung Kim
The 35th IEEE/ACM International Conference on Automated Software Engineering, ASE 2020.
We propose a novel coverage-guided fuzz testing tool for big data analytics, called BigFuzz. The key essence of our approach is that: (a) we focus on exercising application logic as opposed to increasing framework code coverage by abstracting the DISC framework using specifications. BigFuzz performs automated source to source transformations to construct an equivalent DISC application suitable for fast test generation, and (b) we design schema-aware data mutation operators based on our in-depth study of DISC application error types. BigFuzz speeds up the fuzzing time by 78 to 1477X compared to random fuzzing, improves application code coverage by 20% to 271%, and achieves 33% to 157% improvement in detecting application errors. When compared to the state of the art that uses symbolic execution to test big data analytics, BigFuzz is applicable to twice more programs and can find 81% more bugs.
Program Synthesis for HeteroComputing
In progress (updated Aug 2, 2021)
We want to use pattern-based approach to automatically generate desired FPGA code.
Poster: Fuzz Testing of Quantum Program
By Jiyuan Wang, Fuchen Ma, Yu Jiang
14th IEEE Conference on Software Testing, Verification and Validation, ICST 2021, Best Poster
In this paper, we present QuanFuzz, a search-based test input generator for quantum program. We define the quantum sensitive information to evaluate test input for quantum program and use matrix generator to generate test cases with higher coverage. First, we extract quantum sensitive information -- measurement operations on those quantum registers and the sensitive branches associated with those measurement results, from the quantum source code. Then, we use the sensitive information guided algorithm to mutate the initial input matrix and select those matrices which improve the probability weight for a value of the quantum register to trigger the sensitive branch. The process keeps iterating until the sensitive branch triggered. We tested QuanFuzz on benchmarks and acquired 20% - 60% more coverage compared to traditional testing input generation.
arXiv (Oct 2018)