透過您的圖書館登入
IP:3.137.213.235
  • 學位論文

Minimize The Distance of Failure Location for Automatic Debugging Technique with Improved State-Coverage mechanism

在自動除錯器中改良State-Coverage的方法去縮短偵測錯誤的距離

指導教授 : 鍾葉青

摘要


Even though many technologies of Fault-Localization have been developed, program designers still spend much time on checking the used variable values of codes which contain faults. Therefore, in this thesis we discuss how to use the technology of Fault-Localization - State-Coverage on the automatic debugger which is proposed recently and put it into practice. Besides using the original variables of Branching Point which has been recorded by Checkpoint, we proposed and added different ways of Checkpoint according to different characteristic of Branch point and processed it due to the correction of results. After operating by Priority-Ranker and Wight-Calculator, we put the highest Priority Value codes into the implement of Data-Slicing and Dependence-Tree, the Dependence-Tree of possibly faults codes is revealed. Finally, we proposed the thought of scaling Function-Call into lines to calculate the distance between the fault line which we have and the real fault line. Under 5034 Test cases, we elevate the correction of Fault-Localization to 5% (The distance between Fault-Localization lines and the real fault lines are under 5 lines) ~11 %( The distance between Fault-Localization lines and the real fault lines are under 20 lines). We discuss the performances and related effects of Code-Coverage, State-Coverage and the improved State-Coverage.

並列摘要


目前已有許多不同的錯誤偵測技術被開發出來,但在實際的應用上,程式設計師仍然必須花費許多時間手動檢查可能包含錯誤的程式碼中已使用到變數的值。因此在這篇文章中主要想要討論的是如何在全自動化除錯系統上使用最近才被提出的偵錯技術—State-Coverage並實際實作出來。除了運用原有Checkpoint記錄在Branching Point該行程式碼中的變數外,也針對不同的Branch point的特性提出加入不同的Checkpoint的方法並依照其結果的正確性分類處理。由Priority-Ranker和Weight-Calculator運算後,將Priority Value最高的該行程式碼進行Data-Slicing 和Dependence-Tree建置動作,便可以看出錯誤可能性最高的那行程式碼的Dependence-Tree。最後再提出延展Function Call為行數的想法去計算偵測錯誤所在的行數與真正錯誤所在行數的距離。目前在總數5034種測試案例之下可以將偵測錯誤正確率提升5%(偵測錯誤行數與真正錯誤行數距離小於5行)~11%(偵測錯誤行數與真正錯誤行數距離小於20行),討論Code-Coverage、State-Coverage與改良後的State-Coverage的表現與相關的影響因素。

參考文獻


[6] M. J. Harrold, G. Rothermel, K. Sayre, R. Wu, and L. Yi. An Empirical Investigation of the Relationship Between Spectra Diferences and Regression Faults. Journal of Software Testing, Verification, and Reliability, 10(3):171–194, 2000.
[7] M. Hutchins, H. Foster, T. Goraida, and T. Ostrand. Experiments of the Effectiveness of Dataflow and Controlflow-based Test Adequacy Criteria. In Proceedings of 16th International Conference on Software Engineering (ICSE), pages 191–200, 1994.
[8] J. Jones and M. J. Harrold. Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique. In Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pages 273–282, 2005.
[10] B. Korel and J. Laski. Dynamic Slicing of Computer Programs. The Journal of Systems and Software, 13(3):187–195, 1990.
[11] X. Z. N. Gupta, H. He and R. Gupta. Locating Faulty Code Using Failure-inducing Chops. In Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pages 263–272, 2005.

延伸閱讀