调试                        
                
                                
                        
                            计算机科学                        
                
                                
                        
                            软件质量保证                        
                
                                
                        
                            任务(项目管理)                        
                
                                
                        
                            软件工程                        
                
                                
                        
                            软件错误                        
                
                                
                        
                            人工智能                        
                
                                
                        
                            根本原因                        
                
                                
                        
                            机器学习                        
                
                                
                        
                            程序设计语言                        
                
                                
                        
                            软件质量                        
                
                                
                        
                            软件                        
                
                                
                        
                            软件开发                        
                
                                
                        
                            系统工程                        
                
                                
                        
                            可靠性工程                        
                
                                
                        
                            工程类                        
                
                        
                    
            作者
            
                Junjie Chen,Yihua Liang,Qingchao Shen,Jiajun Jiang,Shuochuan Li            
         
                    
        
    
            
        
                
            摘要
            
            DL frameworks are the basis of constructing all DL programs and models, and thus their bugs could lead to the unexpected behaviors of any DL program or model relying on them. Such a wide effect demonstrates the necessity and importance of guaranteeing DL frameworks’ quality. Understanding the characteristics of DL framework bugs is a fundamental step for this quality assurance task, facilitating designing effective bug detection and debugging approaches. Hence, in this work, we conduct the most large-scale study on 1,000 bugs from four popular and diverse DL frameworks (i.e., TensorFlow, PyTorch, MXNet, and DL4J). By analyzing the root causes and symptoms of DL framework bugs associated with five components decomposed from DL frameworks, as well as measuring test coverage achieved by three state-of-the-art testing techniques, we obtain 12 major findings for the comprehensive understanding of DL framework bugs and the current status of existing DL framework testing practice, and then provide a series of actionable guidelines for better DL framework bug detection and debugging. Finally, based on the guidelines, we design and implement a prototype DL-framework testing tool, called TenFuzz , which is evaluated to be effective and finds three unknown bugs on the latest TensorFlow framework in a preliminary study, indicating the significance of our guidelines.
         
            
 
                 
                
                    
                    科研通智能强力驱动
Strongly Powered by AbleSci AI