Responsive image
博碩士論文 etd-0723107-171116 詳細資訊
Title page for etd-0723107-171116
論文名稱
Title
基於程式變動的測試資料演化策略
A Test Data Evolution Strategy under Program Changes
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
92
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2007-06-27
繳交日期
Date of Submission
2007-07-23
關鍵字
Keywords
軟體測試、迴歸測試、混合式基因演算法
Hybrid Genetic Algorithm, Regression testing, Software Testing
統計
Statistics
本論文已被瀏覽 5879 次,被下載 24
The thesis/dissertation has been browsed 5879 times, has been downloaded 24 times.
中文摘要
在軟體開發流程中,測試工作所耗費的成本一直佔了軟體開發總成本相當大的比重,因此近年來自動化產生測試資料成為一個熱門的研究領域,希望透過測試資料的自動產生來降低測試所需花費的成本,但是這些研究都只針對單一版本的程式來探討如何產生測試資料,並沒有針對程式修改後所需進行的重新測試來進行研究。另一方面,迴歸測試的研究則是在探討程式修改過後應該如何重新測試,但是卻沒有討論該如何自動化產生測試資料。因此本研究提出一個自動化測試資料演化策略,利用迴歸測試的方法找出新版本程式中需要重新測試的部分,再利用混合式(Hybrid)的基因演算法來自動化演化測試資料,使舊有的測試資料經過演化後成為新版本程式的測試資料。從實驗結果證實,本研究所提出的演化策略和其他方法相比,能夠以較少的成本來達到相同或更好的測試能力。
Abstract
Since the cost of software testing has continuously accounted for large proportion of the software development total cost, automatic test data generation becomes a hot topic in recent software testing research. These researches attempt to reduce the cost of software testing by generating test data automatically, but they are discussed only for the single version programs not for the programs which are needed re-testing after changing. On the other hand, the regression testing researches discuss about how to re-test programs after changing, but they don’t talk about how to generate test data automatically. Therefore, we propose an automatic test data evolution strategy in this paper. We use the method of regression testing to find out the part of programs which need re-testing, then automatic evolutes the test data by hybrid genetic algorithm. According to the experiment result, our strategy has the same or better testing ability but needs less cost than the other strategies.
目次 Table of Contents
1. 緒論 1
1.1. 背景 1
1.2. 動機 2
1.3. 問題描述與研究目的 4
2. 文獻探討 6
2.1. 迴歸測試(REGRESSION TESTING) 6
2.1.1. 迴歸測試的分類 7
2.1.2. 迴歸測試的議題 9
2.1.3. 選擇性迴歸測試的策略 11
2.1.4. Pythia 14
2.2. 程式頻譜(PROGRAM SPECTRA) 16
2.2.1. 程式頻譜的種類 17
2.2.2. 程式頻譜的比較 20
2.3. 自動化產生測試資料(AUTOMATIC TEST DATA GENERATION) 22
2.3.1. 局部搜尋(local search) 23
2.3.2. 基因演算法(genetic algorithm) 24
2.3.3. 混和式基因演算法(hybrid genetic algorithm) 25
2.4. 突變測試(MUTATION TESTING) 25
3. 研究方法與步驟 27
3.1. 先前的做法 27
3.2. 自動演化測試資料策略 28
3.3. 受測程式 33
3.4. 研究方法 35
3.4.1. 實驗設計 35
3.4.2. 測試資料產生方法與實驗流程 36
4. 結果與討論 40
4.1. 實驗結果 40
4.2. 實驗結果討論 46
4.2.1. 演化次數 46
4.2.2. 新產生的測試資料數目 51
4.2.3. 分析的成本 52
4.2.4. 分支涵蓋率 52
4.2.5. 缺陷發現的能力 53
5. 結論 55
參考文獻 57
附錄A:TRIANGLE1的原始碼與控制流程圖 61
附錄B:TRIANGLE3的原始碼與控制流程圖 64
附錄C:TRIANGLE4的原始碼與控制流程圖 67
附錄D:ATOF的原始碼與控制流程圖 70
附錄E:REMAINDER的原始碼與控制流程圖 73
附錄F:COMPLEXBRANCH的原始碼與控制流程圖 75
附錄G:演化次數之獨立樣本T檢定 78
參考文獻 References
1. Li, Y. and N.J. Wahl, An Overview of Regression Testing. ACM SIGSOFT Software Engineering Notes, 1999. 24(1): p. 69.
2. Gregg, R. and H. Mary Jean, A safe, efficient regression test selection technique. ACM Trans. Softw. Eng. Methodol., 1997. 6(2): p. 173-210.
3. Schach, S.R., Software engineering. 1990: Aksen Associates Pacific Palisades, CA, USA.
4. Yih-Farn, C., S.R. David, and V. Kiem-Phong, TestTube: a system for selective regression testing, in Proceedings of the 16th international conference on Software engineering. 1994, IEEE Computer Society Press: Sorrento, Italy.
5. McMinn, P., Search-based software test data generation: a survey. Software Testing Verification and Reliability, 2004. 14(2): p. 105-156.
6. Korel, B., Automated software test data generation. IEEE Transactions on Software Engineering, 1990. 16(8): p. 870-879.
7. Grindal, M., J. Offutt, and S.F. Andler, Combination testing strategies: a survey. Software Testing, Verification & Reliability, 2005. 15(3): p. 167-199.
8. Bogdan, K. and M.A.-Y. Ali, Automated regression test generation, in Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis. 1998, ACM Press: Clearwater Beach, Florida, United States.
9. Xie, T. and D. Notkin, Checking inside the black box: regression testing by comparing value spectra. Software Engineering, IEEE Transactions on, 2005. 31(10): p. 869-883.
10. Harrold, M.J., et al., An empirical investigation of the relationship between spectra differences and regression faults. Software Testing, Verification & Reliability, 2000. 10(3): p. 171-194.
11. Binkley, D., Semantics guided regression test cost reduction. IEEE Transactions on Software Engineering, 1997. 23(8): p. 498-516.
12. Mansour, N. and K. El?Fakih, Simulated Annealing and Genetic Algorithms for Optimal Regression Testing. Journal of Software Maintenance Research and Practice, 1999. 11(1): p. 19-34.
13. Vokolos, F.I. and P.G. Frankl, Pythia: A regression test selection tool based on textual differencing. IFIP TC5 WG5, 1997. 4: p. 3-21.
14. Baradhi, G. and N. Mansour, A Comparative Study of Five Regression Testing Algorithms. the Proceedings of the Australian Software Engineering Conference, 1997.
15. Todd, L.G., et al., An empirical study of regression test selection techniques. ACM Trans. Softw. Eng. Methodol., 2001. 10(2): p. 184-208.
16. Rothermel, G. and M.J. Harrold, Analyzing regression test selection techniques. Software Engineering, IEEE Transactions on, 1996. 22(8): p. 529-551.
17. Agrawal, H., et al. Incremental regression testing. 1993.
18. Fischer, K.F., A test case selection method for the validation of software maintenance modifications. Proceedings of COMPSAC, 1977. 77: p. 421-426.
19. Gupta, R., M.J. Harrold, and M.L. Soffa. An approach to regression testing using slicing. 1992.
20. Ostrand, T.J. and E.J. Weyuker, Using dataflow analysis for regression testing. Sixth Annual Pacific Northwest Softw. Qual. Conf, 1988: p. 233-247.
21. Rothermel, G., Efficient, effective regression testing using safe test selection techniques. 1996, Clemson University.
22. Rothermel, G. and M.J. Harrold. Selecting regression tests for object-oriented software. 1994.
23. White, L.J. and H.K.N. Leung. A firewall concept for both control-flow and data-flow in regression integration testing. 1992.
24. Onoma, A.K., et al., Regression testing in an industrial environment. Communications of the ACM, 1998. 41(5): p. 81-6.
25. Mary Jean, H., Testing: a roadmap, in Proceedings of the Conference on The Future of Software Engineering. 2000, ACM Press: Limerick, Ireland.
26. Hsu, P.H., Empirical study on strategy for Regression Testing. 2006.
27. White, L.J., Software testing and verification. Advances in computers, 1987. 26: p. 335-391.
28. McCarthy, A., Unit and Regression Testing. Dr. Dobbs Journal, Februar, 1997.
29. Rothermel, G. and M.J. Harrold. A safe, efficient algorithm for regression test selection. 1993.
30. Chen, T.Y. and M.F. Lau, Dividing strategies for the optimization of a test suite. Information Processing Letters, 1996. 60(3): p. 135-141.
31. Harrold, M.J., R. Gupta, and M.L. Soffa, A methodology for controlling the size of a test suite. ACM Transactions on Software Engineering and Methodology (TOSEM), 1993. 2(3): p. 270-285.
32. Rothermel, G., et al., An empirical study of the effects of minimization on the faultdetection capabilities of test suites. Software Maintenance, 1998. Proceedings. International Conference on, 1998: p. 34-43.
33. Wong, W.E., et al., Effect of test set minimization on fault detection effectiveness. Proceedings of the 17th international conference on Software engineering, 1995: p. 41-50.
34. Sebastian, E., G.M. Alexey, and R. Gregg, Prioritizing test cases for regression testing, in Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis. 2000, ACM Press: Portland, Oregon, United States.
35. Rothermel, G., et al., Prioritizing test cases for regression testing. IEEE Transactions on Software Engineering, 2001. 27(10): p. 929-948.
36. Elbaum, S., A.G. Malishevsky, and G. Rothermel, Test case prioritization: a family of empirical studies. Software Engineering, IEEE Transactions on, 2002. 28(2): p. 159-182.
37. Brown, P.A. and D. Hoffman, The application of module regression testing at TRIUMF. Nuclear Instruments and Methods in Physics Research Section A, 1990. 293(1-2): p. 377-381.
38. Dogsa, T. and I. Rozman, CAMOTE-computer aided module testing and design environment. Software Maintenance, 1988., Proceedings of the Conference on, 1988: p. 404-408.
39. Lewis, R., D.W. Beck, and J. Hartmann, Assay-A Tool to Support Regression Testing. Proceedings of the 2nd European Software Engineering Conference, 1989: p. 487-496.
40. Binkley, D., L. Coll, and M.D. Baltimore, Using semantic differencing to reduce the cost of regressiontesting. Software Maintenance, 1992. Proceerdings., Conference on, 1992: p. 41-50.
41. Leung, H.K.N. and L. White, Insights into regression testing. Proceedings of the Conference on Software Maintenance, 1989: p. 60–69.
42. Rothermel, G. and M.J. Harrold, Empirical studies of a safe regression test selection technique. Software Engineering, IEEE Transactions on, 1998. 24(6): p. 401-419.
43. Kim, J.M., A. Porter, and G. Rothermel, An empirical study of regression test application frequency. Proceedings of the 22nd International Conference on Software Engineering, 2000: p. 126–135.
44. Vokolos, F.I. and P.G. Frankl, Empirical evaluation of the textual differencing regression testing technique. Proceedings of the International Conference on Software Maintenance, 1998: p. 44–53.
45. Ball, T. and J.R. Larus, Efficient path profiling. Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture, 1996: p. 46-57.
46. Reps, T., et al., The use of program profiling for software maintenance with applications to the year 2000 problem. ACM SIGSOFT Software Engineering Notes, 1997. 22(6): p. 432-449.
47. Calder, B., P. Feller, and A. Eustace, Value profiling. Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, 1997: p. 259-269.
48. Ernst, M.D., et al., Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering, 2001. 27(2): p. 99-123.
49. Ould, M.A., Testing-a challenge to method and tool developers. Software Engineering Journal, 1991. 6(2): p. 59-64.
50. Wang, H.C., A hybrid genetic algorithm for automatic test data generation. 2006.
51. DeMillo, R.A., R.J. Lipton, and F.G. Sayward, Hints on Test Data Selection: Help for the Practicing Programmer. Computer, 1978. 11(4): p. 34-41.
52. Hamlet, R.G., Testing Programs with the Aid of a Compiler. TSE, 1977. 3(4): p. 279-290.
53. DeMillo, R.A., et al., An extended overview of the Mothra software testing environment.
54. Ma, Y.S., J. Offutt, and Y.R. Kwon, Mujava: An automated class mutation system. Journal of Software Testing, Verification and Reliability, 2005. 15(2): p. 97-133.
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內公開,校外永不公開 restricted
開放時間 Available:
校內 Campus: 已公開 available
校外 Off-campus:永不公開 not available

您的 IP(校外) 位址是 35.174.62.162
論文開放下載的時間是 校外不公開

Your IP address is 35.174.62.162
This thesis will be available to you on Indicate off-campus access is not available.

紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code