簡易檢索 / 詳目顯示

研究生: 劉韋男
Liu, Wei-Nan
論文名稱: 運用軟體測試覆蓋率資訊於歷史值方法為基礎之測試個案優先順序方法
Applying Software Testing Coverage Information to Historical-Value-Based Approach for Test Case Prioritization
指導教授: 黃慶育
Huang, Chin-Yu
口試委員:
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2009
畢業學年度: 97
語文別: 英文
論文頁數: 53
中文關鍵詞: 軟體測試軟體測試個案優先順序歷數值優先順序
外文關鍵詞: software testing, software testing case prioritization, historical value based priorization
相關次數: 點閱:2下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 軟體開發過程中,回歸測試是經常被執行來維護軟體的測試程序,它用來驗證修改過後的軟體系統。然而回歸測試的測試個案的數量大小會隨著時間的推移與新功能的加入而顯著的增加。所以回歸測試所花費的時間也會隨之愈來愈大,為了降低回歸測試所花費的成本,軟體測試者可以根據一些測量基準或是考量在有限的時間限制中執行較重要的測試個案。雖然目前的有許多測試個案優先排列技巧可以改善回歸測試的效率,但可惜的是既存的測試個案優先排列的方法把每次的回歸測試視為獨立的過程。執行回歸測試的過程並未考量過去執行的經驗,使得某些較重要的測試個案不斷重覆的被執行,而某些較不重要一點的測試個案永遠沒有被執行的機會。雖然Kim和Porter為了克服這個問題有提出過一個根據歷史資料的回歸測試優先排列方法,不幸的是這種方法反而只考慮歷史資訊而忽略了其他在回歸測試優先排列的方法中既存的重要的考量。在此論文中,我們提出一個方法來改良在資源受限的環境中以歷史資訊為基礎的優先排列法。通過調查其他重要的量測以及考量,我們將覆蓋率加入我們所提出的方法中,使得新的方法不僅會考慮到歷史資訊更會把程式碼為基礎的測試個案優先排列法的優點帶入其中。此外,我們還分析了測試個案選擇的比例與測試個案的錯誤偵測能的關係,從而找出適當的測試個案的選擇大小或比例的關係。


    Regression testing is a frequently executed maintenance process used to revalidate a modified software system. However, the test suite size of regression testing may grow significantly with new functionality over time. Thus it would take a lot of time to perform regression testing over and over again. To reduce the cost of regression testing, software testers may prioritize their test cases according to some measurements and run more important test cases within existing time constraints. However, most existing prioritization techniques regard regression testing as independent process. They didn’t take any advantage from past execution experience. Some important test cases would be executed repeatedly whereas some test cases would never be executed. To overcome this problem Kim and Porter proposed a history-based prioritization technique that can execute test cases based on the history execution profile. Unfortunately this approach only takes into account the history execution data without pertain some other important criteria in regression testing prioritization. In this thesis, we propose a method to improve the performance of the history-based prioritization technique for resource constraint environments. By investigating other important measurements and criteria, we incorporated the coverage information into the proposed method so that it will consider not only the history data but also the power of code-based prioritization techniques. Moreover, we analysis the relationship of the ratio of test case selected and executed with the fault detection ability of our proposed method to find out what is the appropriate test case selection ratio for regression testing.

    Abstract (English) i Abstract (Chinese) ii 誌謝 iii List of Tables vi List of Figures vii 1 Introduction 1 2 Background Knowledge 5 2.1 Background…………………………………………………………………5 2.2 Coverage…………………………………………………………………...7 2.3 Prioritization and Selection by Coverage Information……………………10 2.4 Historical-based Prioritization Technique…………………………………11 2.5 Other Related Works………………………………………………………14 2.6 The Effect on Fault Detection Capability…………………………………17 3 Code-based Approach for Historical Value Prioritization 20 3.1 Gathering the Function Coverage Information…………………………..21 3.2 Use the Coverage Information in History Prioritization………..…………22 3.3 Executing the Selected Test Cases…………….…………………………..27 4 The Numerical Examples 28 4.1 Subject Programs and Test Suites…..……………………………………28 4.2 Constraint-aware Prioritization Methods………………………………..30 4.3 Measuring Fault Age….…………………………………………………...31 4.4 Performance Comparisons………………………………………………..33 5 The Sensibility Analysis 42 5.1 Sensitivity Analysis of Fault Age…...…………………………………..42 5.2 Definition of Sensitivity Analysis...…...…………………………………..43 5.3 Some Numerical Illustrations……..…...…………………………………..44 6 Conclusions and Future Works 48 References 50

    [1] “IEEE Standard Glossary of Software Engineering Terminology,” IEEE Std 610.12-1990, 1990.
    [1] P.C. Jorgensen, Software Testing: A Craftsman's Approach, CRC Press, 2002.
    [3] H. Agrawal, J. Horgan, E. Krauser, and S. London, “Incremental Regression Testing,” Proceedings of the Conference on Software Maintenance, pp. 348-357, Sept 1993.
    [4] Y. Chen, D.S. Rosenblum, and K. Vo, ”TestTube: A System for Selective Regression Testing,” Proceedings of the 16th international conference on Software engineering, pp. 211-220, May 1994.
    [5] M. Harrold and M. Souffa, “An Incremental Approach to Unit Testing During Maintenance,” Proceedings of the Conference on Software Maintenance, pp. 362-367, Oct 1988.
    [6] J. Hartmann and D.J. Robson, “Techniques for Selective Revalidation,” IEEE software, vol. 7, No.1, pp. 31-36, 1990.
    [7] T.J. Ostrand and E.J. Weyuker, “Using Dataflow Analysis for Regression Testing,” In 6th Annual Pacific Northwest Software Quality Conference, pp. 233-247, Sept 1988.
    [8] G. Rothermel and M.J. Harrold, “A Safe, Efficient Regression Test Selection Technique,” ACM Transactions on Software Engineering and Methodology, vol. 6, No.2, pp. 173-210, Apr 1997.
    [1] D. Jeffrey and N. Gupta, “Experiments With Test Case Prioritization Using Relevant Slices,” Journal of Systems and Software, vol. 81, No.2, pp. 196-221, 2008.
    [10] D. Jeffrey and N. Gupta, “Improving Fault Detection Capability by Selectively Retaining Test Cases during Test Suite Reduction,” IEEE Transactions on Software Engineering, vol. 33, No.2, pp. 108-123, Feb 2007.
    [11] J.M. Kim and A. Porter, “A History-based Test Prioritization Technique for Regression Testing in Resource Constrained Environments,” Proceedings of the 24th International Conference on Software Engineering, pp. 119-129, 2002.
    [12] G. Rothermel, M.J. Harrold, J. Von Ronne, and C. Hong, “Empirical Studies of Test-suite Reduction,” Software Testing Verification and Reliability, vol. 12, No.2, pp. 219-249, 2002,.
    [13] G. Rothermel and M.J. Harrold, “Analyzing Regression Test Selection Techniques,” IEEE Transactions on Software Engineering, vol. 22, No.8, pp. 529-551, 1996.
    [14] G. Rothermel, R.H. Untch, C. Chu, and M.J. Harrold, “Prioritizing Test Cases for Regression Testing,” IEEE Transactions on Software Engineering, vol. 27, No.10, pp. 929-948, 2001.
    [15] G. Rothermel, R.H. Untch, C. Chu, and M.J. Harrold, “Test Case Prioritization: An Empirical Study,” Proceedings of the IEEE International Conference on Software Maintenance, pp. 179-188, Sep 1999.
    [16] B. Beizer, Software Testing Techniques, Van Nostrand Reinhold Co. New York, NY, USA, 1990.
    [17] K.J. Hayhurst, D.S. Veerhusen, J.J. Chilenski, and L.K. Rierson, “A Practical Tutorial on Modified Condition/decision Coverage,” NASA Technical Memorandum TM-2001-210876, NASA Langley Research Center, Hampton, VA, May, 2001.
    [18] J.J. Chilenski, S.P. Miller, B.C. Airplanes, and W.A. Seattle, “Applicability of Modified Condition/decision Coverage to Software Testing,” Software Engineering Journal, Vol. 9, No 5, pp. 193-200, Sep 1994.
    [19] S. Elbaum, A.G. Malishevsky, and G. Rothermel, “Test Case Prioritization: A Family of Empirical Studies,” IEEE Transactions on Software Engineering, Vol. 28, No. 22, pp. 159-182, 2002.
    [20] S. Elbaum, P. Kallakuri, A. Malishevsky, G. Rothermel, and S. Kanduri, “Understanding the Effects of Changes on the Cost-Effectiveness of Regression Testing Techniques,” Software Testing, Verification and Reliability, vol. 12, no. 2, pp. 65-83, 2003.
    [21] K.F. Fischer, F. Raji, and A. Chruscicki, “A Methodology for Retesting Modified Software,” Proceedings of the National Telecommunications Conference B-6-3, pp. 1-6, 1981.
    [22] W.E. Wong, J.R. Horgan, S. London, H. Agrawal, and M. Bellcore, “A Study of Effective Regression Testing in Practice,” Proceedings of the 8th International Symposium on Software Reliability Engineering, pp. 264-274, 1997.
    [23] J.A. Jones and M.J. Harrold, “Test-Suite Reduction and Prioritization for Modified Condition/Decision Coverage,” IEEE Transactions on Software Engineering, vol. 29, no. 3, pp. 195-209, 2003.
    [24] A. Srivastava and J. Thiagarajan, “Effectively Prioritizing Tests in Development Environment,” ACM SIGSOFT Software Engineering Notes, vol. 27, no. 4, pp. 97-106, 2002.
    [25] M. Sherriff, M. Lake, and L. Williams, “Prioritization of Regression Tests using Singular Value Decomposition with Empirical Change Records,” Proceedings of the The 18th IEEE International Symposium on Software Reliability, pp. 81-90, Nov 2007.
    [26] Z. Ma and J. Zhao, “Test Case Prioritization Based on Analysis of Program Structure,” Proceedings of the 2008 15th Asia-Pacific Software Engineering Conference, pp. 471-478, Dec 2008.
    [27] H. Park, H. Ryu, and J. Baik, “Historical Value-Based Approach for Cost-Cognizant Test Case Prioritization to Improve the Effectiveness of Regression Testing,” Proceedings of the 2nd International Conference on Secure System Integration and Reliability Improvement, pp. 39-46, July 2008.
    [28] J.R. Horgan and S. London, “ATAC: A Data Flow Coverage Testing Tool for C,” Proceedings of the Symposium of Quality Software Development Tools, pp. 2-10, May 1992.
    [29] W.E. Wong, J.R. Horgan, S. London, and A.P. Mathur, “Effect of Test Set Minimization on Fault Detection Effectiveness,” Proceedings of the 17th International Conference on Software Engineering, pp. 41-50, April 1995.
    [30] D. Leon and A. Podgurski, “A Comparison of Coverage-Based and Distribution-Based Techniques for Filtering and Prioritizing Test Cases,” Proceedings of the 14th International Symposium on Software Reliability Engineering, pp. 442, Nov 2003.
    [31] R.D. Nardo, “An Empirical Study of the Regression Testing of an Industrial Software Product,” Master Thesis, Department of System and Computer Engineering, Carleton University, Canada, 2007.
    [32] M.J. Harrold, D. Rosenblum, G. Rothermel, and E. Weyuker, “Empirical Studies of a Prediction Model for Regression Test Selection,” IEEE Transactions on Software Engineering, vol. 27, no. 3, pp. 248-263, 2001.
    [33] G. Rothermel and M.J. Harrold, “Empirical Studies of a Safe Regression Test Selection Technique,” IEEE Transactions on Software Engineering, vol. 24, no. 6, pp. 401-419, 1998.
    [34] T.L. Graves, M.J. Harrold, J.M. Kim, A. Porter, and G. Rothermel, “An Empirical Study of Regression Test Selection Techniques,” ACM Transactions on Software Engineering and Methodology, vol. 10, no. 2, pp. 188-197, 1998.
    [35] M. Hutchins, H. Foster, T. Goradia, and T. Ostrand, “Experiments of the Effectiveness of Dataflow-and Controlflow-Based Test Adequacy Criteria,” Proceedings of the 16th International Conference on Software Engineering, pp. 191-200, May 1994.
    [36] H. Do, S. Elbaum, and G. Rothermel, “Supporting Controlled Experimentation with Testing Techniques: An infrastructure and its potential impact,” Empirical Software Engineering, vol. 10, no. 4, pp. 60-70, 2005.
    [37] “Software-artifact Infrastructure Repository.” Available: http://sir.unl.edu/portal/index.html, 20, July, 2009
    [38] H.K.N. Leung and L. White, “Insights into Regression Testing [Software Testing],” Proceedings of the Conference on Software Maintenance, pp. 60-69, Oct 1989.
    [39] M. Xie and G. Y. Hong, “A study of the sensitivity of software release time,” Journal of Systems and Software, vol. 44, no 2, pp. 163-168, 1998
    [40] Chin-Yu Huang and Lyu, M.R., "Optimal testing resource allocation, and sensitivity analysis in software development," IEEE Transactions on Reliability, vol.54, no.4, pp. 592-603, 2005.
    [41] Chin-Yu Huang and Jung-Hua Lo, “Optimal resource allocation for cost and reliability of modular software systems in the testing phase,” Journal of Systems and Software, vol. 79, no 5, pp. 653-664, 2006

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)

    QR CODE