《支撐統計故障定位的測試技術研究》是依託北京航空航天大學,由姜博擔任項目負責人的青年科學基金項目。
基本介紹
- 中文名:支撐統計故障定位的測試技術研究
- 依託單位:北京航空航天大學
- 項目負責人:姜博
- 項目類別:青年科學基金項目
項目摘要,結題摘要,
項目摘要
軟體調試中的故障定位是軟體開發過程中一項困難而耗時的工作。統計故障定位雖然能夠幫助開發人員提高調試效率,但定位的準確度仍然不夠理想。而統計故障定位的有效性不僅僅依賴於故障定位算法,也依賴於軟體測試所產生的測試用例集的執行信息。我們調研發現,已有的測試和調試的集成研究工作僅能針對測試用例集的某一個特性來加強對統計故障定位的支持,仍然缺乏全面和實用的支撐統計故障定位的測試完備性準則和相應的測試生成技術。因此,本項目擬通過數據挖掘技術找出有效支撐統計故障定位的測試用例集的關鍵特徵集,並提出相應的有效支撐統計故障定位的測試完備性準則。在此基礎上,通過對基於符號執行的測試生成算法的制導和最佳化,構建支撐測試完備性準則的測試生成技術及工具集。本項目將對測試技術和統計故障定位技術的有效集成提供理論指導,並能通過測試完備性準則和高效的測試生成算法切實提高統計故障定位的精確度、實用性和可擴展性。
結題摘要
軟體調試中的故障定位是軟體開發過程中一項困難而耗時的工作。統計故障定位雖然能夠幫助開發人員提高調試效率,但定位的準確度仍然不夠理想。而統計故障定位的有效性不僅僅依賴於故障定位算法,也依賴於軟體測試所產生的測試用例集的執行信息。我們調研發現,已有的測試和調試的集成研究工作僅能針對測試用例集的某一個特性來加強對統計故障定位的支持,仍然缺乏全面和實用的支撐統計故障定位的測試完備性準則和相應的測試生成技術。因此,本項目擬通過數據挖掘技術找出有效支撐統計故障定位的測試用例集的關鍵特徵集,並提出相應的有效支撐統計故障定位的測試完備性準則。我們的工作首先系統的研究了多個回歸測試技術和統計故障定位技術的集成最佳化問題,我們實證研究的結果表明,測試用例排序技術的策略和時間成本可能會影響統計調試技術的效果。然而,測試用例排序技術的所才用的測試覆蓋粒度(語句,方法,分支等)卻不是一個重要的因素。我們還發現添加更多的失敗測試用例能夠提高統計故障定位的有效性,然而在添加的過程中,統計調試的效果並不是單調遞增的。我們嘗試研究測試用例集的完善性準則、測試用例集的大小和用於故障定位的測試用例集的比例這三個因素是否對於測試和統計調試的集成最佳化有顯著地影響。我們通過實證研究發現,更強的測試完善性準則也能夠更好地支撐有效的統計故障定位。特別的,我們發現MC/DC測試完善性準側要比分支覆蓋的表現好,而分支覆蓋又比語句覆蓋的表現好。 此外,在課題的資助下,我們對一些相關的測試技術進行了探索,我們系統的研究了回歸測試用例排序技術,這包括基於黑盒輸入信息的自動化回歸測試用例排序技術,面向服務程式的搶占式回歸測試用例排序技術、面向基於位置套用的自動化回歸測試用例排序技術。此外,我們系統的研究了針對Android套用的Dalvik位元組碼的符號執行技術,開發了Android套用的Dalvik符號執行引擎的原型。我們還研究了面向Android套用的自動化壓力測試技術,我們通過提供高級別的測試語言接口提高Android測試腳本的可重用性,同時我們系統的控制Android的記憶體、CPU、存儲和語音輸入資源來方便對Android套用進行壓力測試,並在四川長虹的Android智慧型電視套用上取得了很好地套用效果。