  Refactoring is one of the most important activities in software engineering
which is used to improve the quality of a software system. With the advancement
of deep learning techniques, researchers are attempting to apply deep learning
techniques to software refactoring. Consequently, dozens of deep learning-based
refactoring approaches have been proposed. However, there is a lack of
comprehensive reviews on such works as well as a taxonomy for deep
learning-based refactoring. To this end, in this paper, we present a survey on
deep learning-based software refactoring. We classify related works into five
categories according to the major tasks they cover. Among these categories, we
further present key aspects (i.e., code smell types, refactoring types,
training strategies, and evaluation) to give insight into the details of the
technologies that have supported refactoring through deep learning. The
classification indicates that there is an imbalance in the adoption of deep
learning techniques for the process of refactoring. Most of the deep learning
techniques have been used for the detection of code smells and the
recommendation of refactoring solutions as found in 56.25\% and 33.33\% of the
literature respectively. In contrast, only 6.25\% and 4.17\% were towards the
end-to-end code transformation as refactoring and the mining of refactorings,
respectively. Notably, we found no literature representation for the quality
assurance for refactoring. We also observe that most of the deep learning
techniques have been used to support refactoring processes occurring at the
method level whereas classes and variables attracted minimal attention.
Finally, we discuss the challenges and limitations associated with the
employment of deep learning-based refactorings and present some potential
research opportunities for future work.
