AI Testing and Verification
Neural networks can be (arguably) viewed a different paradigm of programming, where logical reasoning is replaced with big data and optimization. Unlike traditional programs, however, neural networks are subject to bugs, e.g., adversarial samples and discriminatory instances. In this line of work, we aim to develop systematic theories, methods and tools to improve the quality of AI-systems.
Sample System
Socrates: a unified platform for neural network testing, verification and repair.
Sample Papers
Peixin Zhang, Jingyi Wang, Jun Sun, Guoliang Dong, Xinyu Wang, Xingen Wang, Jin Song Dong and Dai Ting: “White-box Fairness Testing through Adversarial Sampling”, ICSE 2020.
Jingyi Wang, Guoliang Dong, Jun Sun, Xinyu Wang and Zhang Peixin: “Adversarial Sample Detection for Deep Neural Network through Model Mutation Testing”, ICSE 2019.
Hugo Bazille, Blaise Genest, Cyrille Jegourel and Jun Sun: “Global PAC Bounds for Learning Discrete Time Markov Chains”, CAV 2020.
Smart Contracts Testing and Verification
Smart contracts are blockchain based contracts which bind multiple parties through executable programs. “Code is Law”! They are believed to revolutionize many industries. Like traditional programs, smart contracts may suffer from bugs and vulnerabilities. Unlike traditional programs, due to the nature of blockchain, smart contracts cannot be easily patched. It is thus important that smart contracts are thoroughly tested or, even better, verified.
Sample System
sFuzz: an efficient smart contract fuzzer.
Sample Papers
Jiao Jiao, Shuanglong Kan, Shangwei Lin, David Sanan, Yang Liu and Jun Sun: “Semantic Understanding of Smart Contracts: Executable Operational Semantics of Solidity”, S&P 2020.
Duy Tai Nguyen, Long H. Pham, Jun Sun, Yun Lin and Minh Quang Tran: “sFuzz: An Efficient Adaptive Fuzzer for Solidity Smart Contracts”, ICSE 2020.
Jiao Jiao, Shang-Wei Lin, and Jun Sun: “A General Formal Semantic Framework for Smart Contracts”. FASE 2020.
Cyber-Physical System Testing
Cyber-physical systems are often safety-critical, e.g., those which control important infrastructure such as water and electricity. They thus must be systematically analyzed.
Sample System
AVUnit: a complete framework for testing autonomous vehicles.
Sample Publications
Yuqi Chen, Chris Poskitt, Jun Sun, Sridhar Adepu and Fan Zhang: “Learning-Guided Network Fuzzing for Testing Cyber-Physical System Defences”, ASE 2019.
Jingyi Wang, Jun Sun, Shengchao Qin and Cyrille Jegourel: “Automatically `Verifying’ Discrete-Time Complex Systems through Learning, Abstraction and Refinement”, IEEE Transactions on Software Engineering, 2019.
Yuqi Chen, Christopher M. Poskitt, and Jun Sun: Learning from Mutants: Using Code Mutation to Learn and Monitor Cyber-Physical System Invariants.IEEE S&P 2018.
Concurrency
Concurrency bugs are the result of unexpected unwanted thread/process coordination. They are extremely hard to identify and eliminate. In this line of work, we aim to tackle the problem from different aspects.
Sample Publications
Hengbiao Yu, Zhenbang Chen, Xianjin Fu, Ji Wang, Zhendong Su, Jun Sun, Chun Huang and Wei Dong: “Symbolic Verification of Message Passing Interface Programs”. ICSE 2020.
Zan Wang, Yingquan Zhao, Shuang Liu, Jun Sun, Xiang Chen and Huarui Lin: “MAP-Coverage: a Novel Coverage Criterion for Testing Thread-Safe Classes”, ASE 2019.
Xiang Zhou, Xin Peng, Tao Xie, Jun Sun, Chao Ji, Dewei Liu, Qilin Xiang and Chuan He: “Latent Error Prediction and Fault Localization for Microservice Applications by Learning from System Trace Logs”, FSE 2019.
Others
Besides the above, I have a broad range of works related to formal methods, program analysis, software engineering and cyber-security. Refer to my publications for details. I welcome collaboration from academia or industry.