Testing Neural Program Analyzers
This work tackles the reliability issue of neural program analyzers for software engineers, but it is incremental as it describes ongoing efforts and preliminary results.
The paper addresses the problem of testing neural program analyzers, which are deep neural networks used in software engineering tasks, by developing techniques to assess their reliability, and preliminary experiments show that a recent model is brittle and makes mistakes with simple input perturbations.
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.