Testing Neural Program Analyzers
arXiv:1908.10711
Abstract
Deep neural networks have been increasingly used in software engineering and program analysis tasks. They usually take a program and make some predictions about it, e.g., bug prediction. We call these models neural program analyzers. The reliability of neural programs can impact the reliability of the encompassing analyses. In this paper, we describe our ongoing efforts to develop effective techniques for testing neural programs. We discuss the challenges involved in developing such tools and our future plans. In our preliminary experiment on a neural model recently proposed in the literature, we found that the model is very brittle, and simple perturbations in the input can cause the model to make mistakes in its prediction.
arXiv commentASE 2019 Late Breaking Results
References in corpus (4)
Cited by in corpus (7)
- On the Generalizability of Neural Program Models with respect to Semantic-Preserving Program Transformations
- Understanding Neural Code Intelligence Through Program Simplification
- Towards Demystifying Dimensions of Source Code Embeddings
- Evaluation of Generalizability of Neural Program Analyzers under Semantic-Preserving Transformations
- Code2Snapshot: Using Code Snapshots for Learning Representations of Source Code
- Towards Making Deep Learning-based Vulnerability Detectors Robust
- Study of Distractors in Neural Models of Code