| 研究生: |
朱怡嘉 Yi-Jia Chu |
|---|---|
| 論文名稱: | The Analysis of Capturing System Test Cases into Unit Test Cases |
| 指導教授: | 鄭永斌 |
| 口試委員: | |
| 學位類別: |
碩士 Master |
| 系所名稱: |
資訊電機學院 - 資訊工程學系 Department of Computer Science & Information Engineering |
| 論文出版年: | 2013 |
| 畢業學年度: | 101 |
| 語文別: | 中文 |
| 論文頁數: | 39 |
| 中文關鍵詞: | 單元測試 |
| 相關次數: | 點閱:9 下載:0 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
當程式開發人員修改部分程式碼,可能必須重新執行舊有的系統測試案例(system test cases),但測試案例的數量往往隨著系統的發展而攀升,程式開發人員必須耗費時間執行大量系統測試案例。系統測試案例執行的代價通常很高,但是要降低這些代價而採用測試自動化往往必須先付出一筆昂貴的代價。
因為單元測試案例(unit test cases)的執行代價相較於系統測試案例自動化低,且較容易進行自動化,所以近年來有一些研究,致力於在系統的執行過程中自動將系統測試案例切割並產生單元測試案例的轉換技術─錄製系統測試案例並重播單元測試案例(capture system test cases and replay unit test cases)。
建構這樣完全自動化的轉換系統其實有一定的困難度。本篇論文將此技術實際應用,探討將此技術實際完全自動化會遇到哪些問題,再逐項分析進行自動化的困難以及可能性。
When the code of system under test is modified, system test cases must be rerun for regression. However, the number of system test cases increases as the system grow. Developers typically run the new version of program against all system test cases to validate that the changes made on the program do not break the system. It can take a lot of time and efforts to rerun all system test cases manually. Test automation in principle can alleviate the problem. However, system-level test automation may require a one-time investment first, which can be costly depending on the types of applications.
Contrast to system test cases, unit test cases could be executed more efficiently. Recent researches have begun to study a transformation technique which captures system test cases and replays them as unit test cases. However, building such a transformation system might not be as easy as it may seem. In this thesis, we manually simulate the transformation technique to generate unit test cases and then analyzes cost of this approach and the problems that could be raised in this study.
[1] K. Beck, Test driven development: By example: Addison-Wesley Professional, 2003.
[2] S. Elbaum, C. Hui Nee, M. B. Dwyer, and M. Jorde, “Carving and Replaying Differential Unit Test Cases from System Test Cases,” Software Engineering, IEEE Transactions on, vol. 35, no. 1, pp. 29-45, 2009.
[3] S. Joshi, and A. Orso, "SCARPE: A Technique and Tool for Selective Capture and Replay of Program Executions." pp. 234-243.
[4] A. Orso, and B. Kennedy, “Selective capture and replay of program executions,” in Proceedings of the third international workshop on Dynamic analysis, St. Louis, Missouri, 2005, pp. 1-7.
[5] D. Saff, S. Artzi, J. H. Perkins, and M. D. Ernst, “Automatic test factoring for java,” in Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, Long Beach, CA, USA, 2005, pp. 114-123.
[6] C. Yao, C. Wei-Zheng, and Z. Yu, "The research and implementation of automatic unit test recording framework." pp. V2-395-V2-399.
[7] R. Osherove, The Art of Unit Testing: With Examples in .Net: Manning Publications Co., 2009.
[8] "Boost Test," Mar., 2013; www.boost.org/doc/libs/release/libs/test/.
[9] J. Hartmann, C. Imoberdorf, and M. Meisinger, “UML-Based integration testing,” in Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis, Portland, Oregon, USA, 2000, pp. 60-70.
[10] "xDIVA web pages," Mar., 2013; http://oolab.csie.ncu.edu.tw/xDIVA/.
[11] Y.-P. Cheng, J.-F. Chen, M.-C. Chiu, N.-W. Lai, and C.-C. Tseng, “xDIVA: a debugging visualization system with composable visualization metaphors,” in Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, Nashville, TN, USA, 2008, pp. 807-810.
[12] "XStream," Mar., 2013; http://xstream.codehaus.org/.
[13] "Boost.Serialization," Mar., 2013; http://www.boost.org/libs/serialization.
[14] "Qt Project," May., 2013; http://qt-project.org/.
[15] D. Xu, “A tool for automated test code generation from high-level petri nets,” in Proceedings of the 32nd international conference on Applications and theory of Petri Nets, Newcastle, UK, 2011, pp. 308-317.
[16] K. Beck, JUnit pocket guide: O'Reilly Media, 2009.