《軟體重構對回歸測試用例的影響及其修複方法研究》是依託北京理工大學,由劉輝擔任項目負責人的面上項目。
基本介紹
- 中文名:軟體重構對回歸測試用例的影響及其修複方法研究
- 依託單位:北京理工大學
- 項目負責人:劉輝
- 項目類別:面上項目
項目摘要,結題摘要,
項目摘要
軟體重構通過調整軟體的內部結構以提高軟體的可擴展性和可維護性。雖然重構不得改變軟體的外部行為特性,但它卻有可能導致回歸測試的失效(編譯錯誤或運行錯誤)或失敗(運行結果與預期不符)。為此,本項目計畫研究軟體重構對回歸測試的影響,並嘗試自動修復受損測試用例。通過理論分析及重構歷史挖掘,對測試用例失效或失敗的原因進行分析和歸類,進而明確各種軟體重構對測試用例的影響模式。針對工具可識別的軟體重構(根據重構工具的記錄或藉助重構識別技術),計畫採用基於模式的測試用例修複方法。對於難以準確識別的軟體重構,計畫研究基於執行路徑的測試用例修複方法。在測試驅動的開發模式下,程式設計師必須先修改測試用例之後再實施重構操作。為此,計畫通過挖掘測試用例的修改情況以及被測程式內的代碼壞味,推測用戶的重構意圖,進而自動完成測試用例的修改及軟體重構操作。本項目的研究將有助於降低軟體重構的成本並提高重構的可靠性。
結題摘要
軟體重構是提高軟體的可擴展性和可維護性的一個重要手段。雖然重構不得改變軟體的外部行為特性,但它卻有可能導致回歸測試的失效(編譯錯誤或運行錯誤)或失敗(運行結果與預期不符)。為了明確軟體重構對回歸測試的影響並實現測試用例的自動修復,本項目研究分析了測試用例失效的原因以及軟體重構對軟體接口的影響,明確了不同類型的軟體重構對回歸測試用例修的影響模式;研究分析面向軟體重構的測試用例修復問題,提出了基於模板的測試用例修複方法;研究了測試驅動下的軟體重構,提出了基於測試用例的重構意圖捕獲方法;研究分析了智慧型化軟體重構機會推薦問題,提出了基於相似性的重構擴展方法;研究了代碼壞味檢測問題,提出了面向代碼壞味檢測的閾值最佳化方法。課題組還設計並實施相關實驗,初步證明了以上研究成果的有效性。以上研究成果對於深入理解軟體重構與回歸測試具有重要意義。基於理論研究成果研發的相關工具也較大幅度地提高了軟體重構的自動化水平以及軟體重構的效率和效果。相關研究成果發表於國內外一流學術期刊與學術會議。在軟體工程領域的頂級國際期刊IEEE Transactions on Software Engineering上發表論文3篇;在軟體工程領域頂級國際會議IEEE/ACM International Conference on Software Engineering(ICSE)發表論文1篇,在重要國際SCI期刊與主流國際會議發表論文6篇;在國內一級學報發表論文1篇,獲得2016年IET Premium Award 等重要學術獎勵。