指導教授:王凡臺灣大學:電機工程學研究所翁銘宏Weng, Ming-HongMing-HongWeng2014-11-282018-07-062014-11-282018-07-062014http://ntur.lib.ntu.edu.tw//handle/246246/262885這份論文展現了新的網頁程式測試案例的再生方法。為了改善測試案例的錯誤偵測能力,這技術提出關於自動繁衍兩種類型的測試案例:輸入值及行為。與以前的方法不同的是,我們是採用黑箱的方式,因此不需要伺服器端的原始碼,也不需要GUI的狀態轉移圖,很容易就可以使用。我們用此方法對四個真實的網頁程式進行實驗,發現二十二個錯誤,而且這些錯誤都是原來的測試案例沒發現的。試驗結果也顯示此方法比起突變更有效率。This paper presents a novel approach of test case regeneration for web applications. The proposed technique automatically multiplies original test cases with 2 types of multiplication operators: input value and behavior, to improve the fault detection effectiveness of the original test suite. Different from previous works, our approach is black-box and needs neither information of server-side source code nor transition diagrams of the application’s GUI states, and thus easily applicable. We implemented our approach and conducted experiments using 4 real world web applications. 22 faults in 4 applications were detected, and all of the faults were not revealed by the original test suites. Experimental results also show that the proposed technique achieves better effectiveness in terms of mutation score.中文摘要 1 ABSTRACT 2 CONTENTS 3 SYMBOLS 6 DEFINITIONS 7 Chapter 1. Introduction 8 1.1 Motivation 9 1.2 Contributions 10 Chapter 2. Related Work 12 2.1 Data Perturbation for XML Services 12 2.2 Generating Source Test Cases 14 Chapter 3. Background 15 3.1 Web Applications 15 3.2 Web Testing 16 Chapter 4. Running Example 17 4.1 Simple Changes to Input Values 20 4.2 Input Value Changes for Breaking HTML Documents 21 4.3 Input Value Changes as Security Attacks 21 4.4 Action Changes as Environment Perturbations 22 4.5 Scenario Change as Cycle Repetition 23 4.6 Crossover from Genetic Programming 24 Chapter 5. Multiplication Algorithms 28 5.1 Multiplication of Input Value 28 5.1.1 EMPTY_INPUT 28 5.1.2 LARGE_INPUT 29 5.1.3 MALFORMED_STRING 29 5.1.4 SQL_INJECTION 30 5.2 Multiplication of Behavior 30 5.2.1 DOUBLE_CLICK 31 5.2.2 SLEEP 31 5.2.3 CYCLE_REPETITION 32 5.2.4 CROSSOVER 34 5.3 Difference of CYCLE_REPETITION and CROSSOVER 35 5.4 The Algorithm of Regenerating test cases 36 Chapter 6. Implementation 39 6.1 Flow of the Architecture 39 6.2 Components of the Architecture 40 6.2.1 SUT 40 6.2.2 Test Script 40 6.2.3 Script Multiplier 40 6.2.4 CTA (Cloud Testing for App) 41 6.2.5 Cloud OS 44 6.2.6 Test Report 45 6.2.7 Test Oracles 45 Chapter 7. Evaluation 47 7.1 Subject Programs 47 7.1.1 Complain Management System [36] 47 7.1.2 Ultra Light Forum (1.1) [37] 49 7.1.3 SchooleMate (1.5.4) [38] 52 7.1.4 Gallery (3.0.9) [39] 58 7.2 Experimental Setup 61 7.3 Experiment 1 – Find Developer’s Bugs 63 7.4 Experiment 2 – Find Inserted Bugs In The Gallery 64 7.5 Threats to Validity 66 7.5.1 Internal threats 66 7.5.2 External threats 67 Chapter 8. Conclusions 68 Reference 711336201 bytesapplication/pdf論文公開時間:2014/08/17論文使用權限:同意有償授權(權利金給回饋學校)測試案例繁衍測試案例再生網頁程式測試網頁應用程式之測試案例繁衍Test Case Multiplication for Web Applicationsthesishttp://ntur.lib.ntu.edu.tw/bitstream/246246/262885/1/ntu-103-R01921080-1.pdf