  The increasingly popular adoption of deep learning models in many critical
source code tasks motivates the development of data augmentation (DA)
techniques to enhance training data and improve various capabilities (e.g.,
robustness and generalizability) of these models. Although a series of DA
methods have been proposed and tailored for source code models, there lacks a
comprehensive survey and examination to understand their effectiveness and
implications. This paper fills this gap by conducting a comprehensive and
integrative survey of data augmentation for source code, wherein we
systematically compile and encapsulate existing literature to provide a
comprehensive overview of the field. We start with an introduction of data
augmentation in source code and then provide a discussion on major
representative approaches. Next, we highlight the general strategies and
techniques to optimize the DA quality. Subsequently, we underscore techniques
useful in real-world source code scenarios and downstream tasks. Finally, we
outline the prevailing challenges and potential opportunities for future
research. In essence, we aim to demystify the corpus of existing literature on
source code DA for deep learning, and foster further exploration in this
sphere. Complementing this, we present a continually updated GitHub repository
that hosts a list of update-to-date papers on DA for source code modeling,
accessible at \url{https://github.com/terryyz/DataAug4Code}.
