【正文】
途徑。因為在這個選擇過程中完全是根據(jù)測試的歷史記錄來進行的,那么就必定要求這個歷史記錄是完整,正確的。這會導(dǎo)致分析代碼的過程非常復(fù)雜。最后,基于代碼的回歸測試技術(shù)是有編程語言的限制。測試人員不得不去花很多時間去讀懂代碼,而且對測試人員的要求會很高。而且,基于代碼的回歸測試技術(shù)需要測試人員在一定程度上進入和理解代碼[17]?;诖a的回歸測試技術(shù)可以有效的應(yīng)用到回歸測試中的單元級別。基于這些測試歷史信息,并根據(jù)當(dāng)前測試情況來選擇較為合適的回歸測試用例,再將生成的回歸測試用例進行用例優(yōu)先排序,最后利用排序后的用例來進行測試,以進一步提高回歸測試效率。每一輪測試都有一個測試狀態(tài)與之相對應(yīng),該測試狀態(tài),該測試狀態(tài)涵蓋了當(dāng)前測試中影響策略選擇的因素,包括測試用例錯誤檢測率要求、測試成本、測試頻次。2) 基于歷史記錄的回歸測試選擇。所以對某個切片變量的修改一定不會影響到其他切片變量的切片。任何一個程序都可以等價于一組程序切片的并集,而這些切片都是根據(jù)某個切片變量和切片準(zhǔn)則計算出來的。先采用一些分解術(shù)將復(fù)雜的程序分解成一個個相對較小的片段來進行分析和維護。該方法主要研究在已知代碼的情況下,對代碼相關(guān)的測試用例進行選擇。只有少數(shù)的技術(shù)是針對黑盒測試,測試用例選擇基于系統(tǒng)本身特征[1316]。最近幾年,大家的注意力被集中到回歸測試測試用例選擇領(lǐng)域。Harrold,Gupta和Soffa[9]研究了測試用例管理技術(shù)。他們的研究包含很廣泛的課題。在漸進和快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使回歸測試進行的更加頻繁,而在極端編程方法中,更是要求每天都進行若干次回歸測試。所以本文吸收前人的研究成果,結(jié)合UML活動圖的特點,提出了基于UML活動圖的回歸測試選擇技術(shù),為了對軟件質(zhì)量更有信心,又提出了基于風(fēng)險的回歸測試選擇技術(shù),作為基于活動圖的回歸測試的有益補充。而基于歷史記錄的回歸測試選擇要求測試的所有記錄非常完善,很多時候我們達(dá)不到要求。目前大多數(shù)回歸用例選擇技術(shù)多是基于代碼的,有些是基于歷史記錄的。自提出以來,后成為研究熱點,并且迅速在工業(yè)界得到廣泛的應(yīng)用。該方法主要是根據(jù)測試的歷史記錄進行回歸測試選擇。該方法主要研究在已知代碼的情況下,對代碼相關(guān)的用例進行選擇。其目的是選擇一個盡可能小并且又能覆蓋所有改變和影響的代碼的測試用例集。在所有的難點和重點中,回歸測試用例選擇(Regression Test Selection)是重點中的重點。回歸測試可以重用以前的測試過程,是一種比較有效地測試方法。而隨著軟件規(guī)模的日益龐大,回歸測試的成本也相應(yīng)增大,甚至達(dá)到整個測試成本的一半以上[3]?;貧w測試是軟件測試中一個很重要的環(huán)節(jié)。隨著人們對軟件測試的重要性的認(rèn)識的不斷加深,軟件測試階段在整個軟件開發(fā)周期中所占得比重會日益增大。尤其是這幾年,電子商務(wù)及金融產(chǎn)品的網(wǎng)上交易平臺等這些基于Web應(yīng)用的系統(tǒng)的快速發(fā)展,軟件產(chǎn)品的一點瑕疵就可能導(dǎo)致客戶的巨額財產(chǎn)損失。計算機已經(jīng)普遍地應(yīng)用在航空、航天、工業(yè)控制、金融、醫(yī)療、交通和電子商務(wù)等各個領(lǐng)域,這些軟件系統(tǒng)的運行是否正確,已經(jīng)影響到社會生活得各個方面。4)用一個股票交易系統(tǒng)作為實驗對象,驗證了我們提出的方法的有效性,高效性。3)分析和描述了在回歸測試中的風(fēng)險分析,同時提供了風(fēng)險敞口(Risk Exposure)作為度量回歸測試用例集的質(zhì)量的指標(biāo)。2)提出了一個基于活動圖的回歸測試選擇策略,用來選擇回歸測試用例。這兩個技術(shù)是相輔相成的,能很好地完成回歸測試用例的選擇。而在回歸測試中回歸測試用例的選擇是最重要的一個步驟,如何選擇一個盡可能小并且又能覆蓋所有改變和影響的測試用例集來進行回歸測試用例選擇是一個重要的課題。那么怎么保證這些系統(tǒng)是高效、安全、可靠的,軟件的回歸測試是非常必要的。浙江大學(xué)碩士學(xué)位論文 Abstract 基于活動圖的回歸測試研究 摘要隨著信息技術(shù)的深入發(fā)展,社會的各個領(lǐng)域的信息電子化進程進行的非常迅速。許多系統(tǒng)都是非常復(fù)雜和龐大的,而且更新?lián)Q代的速度非常驚人。但是回歸測試是一個成本昂貴的過程。本文對回歸測試選擇方法進行了研究,提出了基于UML活動圖的回歸測試用例選擇技術(shù)和基于風(fēng)險的回歸測試選擇技術(shù)。主要研究內(nèi)容及成果包括以下幾個方面:1)分析了需求的可跟蹤性對于進行和管理回歸分析和測試的重要性。將需求里的功能特征一一對應(yīng)到活動圖上,再通過活動圖很直觀地進行測試用例的選擇。提出了基于風(fēng)險的回歸測試選擇技術(shù),是基于活動圖的回歸選擇技術(shù)的有益補充。關(guān)鍵詞: 回歸測試,風(fēng)險敞口,活動圖i浙江大學(xué)碩士學(xué)位論文 AbstractAbstractAlong with the deeply development of information technology, lots of industrial and financial entities involve information technology into their daily business. Regression testing is essential to ensure software quality. A test team applies a regression test suite to ensure that new or modified features do not regress (make worse) existing features. Although existing research has addressed many related problems and put forward some solutions, most regression test techniques are codebased. Codebased regression test selection is good for unit testing, but it has a scalability problem. When the size of the object under test grows, it bees hard to manage all relevant Risk Exposure information and to create corresponding traceability matrices for validation and coverage assessment.We propose a method for regression test selection based on activity diagram and risk. There are two major parts of our work:1) We propose and justify a new regression test strategy based on activity diagram.2) We provide systematic methods for selecting regression test cases. We apply regression analysis to requirement to check throughout consistency of “requirement followed by a blank”, and design models. The basic model we use for describing requirements based on customer features or behaviors is the activity diagram, which is a notation of the UML. A process is presented for identifying the test cases affected by changes. At the same time, we use risk analysis and present a method of choosing riskbased test cases. Our risk analysis is based on a practical risk model, and is similar to that used by some organizations.Keywords: Regression test, Activity diagram, Risk exposure ii浙江大學(xué)碩士學(xué)位論文 目錄目錄摘要 iAbstract ii第1章 緒論 1 課題背景 1 國內(nèi)外研究現(xiàn)狀及進展 2 以前相關(guān)研究 2 現(xiàn)存理論存在的問題 4 研究內(nèi)容和研究目標(biāo) 4 本文結(jié)構(gòu)組織 5第2章 回歸測試 6 引言 6 回歸分析和測試概念 6 回歸測試技術(shù) 6 回歸分析的討論 7 回歸測試模式 9 軟件維護的分類和回歸測試的類型 10 本章小結(jié) 11第3章 方法1:基于活動圖的回歸測試 13 引言 13 需求的可追溯性 13 UML的活動圖 14 活動圖的元素 16 活動圖和測試用例關(guān)系 21 簡化復(fù)雜的活動圖 22 基于活動圖設(shè)計測試用例 23 建立基于活動圖的需求可追溯性 23 需求測試,設(shè)計測試和活動圖 26 跟蹤測試用例到活動圖元素 27 基于活動圖進行測試用例的選擇 30 糾正性維護中測試用例的選擇 30 基礎(chǔ):基于CFG的回歸測試選擇技術(shù) 31 基于活動圖的回歸測試選擇 34 糾正性和改進性維護同時發(fā)生時測試用例選擇 35 本章小結(jié) 36第4章 風(fēng)險和風(fēng)險分析 37 引言 37 風(fēng)險性測試 37 風(fēng)險分析 37 風(fēng)險分析活動 38 一個實用的風(fēng)險模型 39 本章小結(jié) 40第5章 方法2:基于風(fēng)險的回歸測試 41 引言 41 基于風(fēng)險的回歸測試方法 41 基于風(fēng)險的回歸測試用例選擇技術(shù) 42 評估測試用例相對應(yīng)的潛在的錯誤的成本(第1步) 43 評估每個測試用例嚴(yán)重度(第2步) 48 計算每個測試用例的風(fēng)險敞口(第3步) 49 選擇測試用例作為基于風(fēng)險的測試用例 50 本章總結(jié) 51第6章 實驗分析和比較 52 引言 52 實驗設(shè)計 52 實驗結(jié)果和分析 54第7章 結(jié)束語 55參考文獻(xiàn) 56作者簡歷 59致謝 60 II浙江大學(xué)碩士學(xué)位論文 表目錄圖目錄圖 回歸測試技術(shù) 7圖 回歸測試用例選擇 9圖 活動圖例子 20圖 同步行為 23圖 一個取得匯率報價的模塊的活動圖 24圖 簡化后的活動圖 25圖 建立需求特征和測試用例之間的可跟蹤的聯(lián)系 26圖 需求特征和測試用例間的可跟蹤性的聯(lián)系鏈 30圖 取得報價的功能模塊實施中發(fā)生錯誤和變化 32圖 控制流圖C和改變后的C’ 33圖 圖45中的活動圖的改變 35圖 風(fēng)險分析活動 39表目錄表 18表 25表 28表 29表 CFG C的測試集T的edge覆蓋模型 34表 45表 47表 48表 49表 50表 51表 53表 53表 53表 54表 54IV浙江大學(xué)碩士學(xué)位論文 第1章 緒論第1章 緒論 課題背景隨著計算機技術(shù)、網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,計算機應(yīng)用的領(lǐng)域越來越廣,軟件系統(tǒng)功能越來越強大,其系統(tǒng)的規(guī)模也越來越大,越來越復(fù)雜。一旦這些軟件失效,就會造成巨大的損失。軟件測試就是減少這種損失,保證軟件質(zhì)量的重要手段。根據(jù)Boehm的統(tǒng)計,目前軟件測試在軟件開發(fā)中的總成本中,其開銷占到了30%~50%[1],在某些重大軟件項目占得比重更大。其目的是保證程序在修改后不會引入新的錯誤[2]。所以回歸測試成為整個軟件測試的關(guān)鍵,是軟件質(zhì)量的重要保證。但是,回歸測試需要前期投入,如何減少回歸測試的代價,是整個軟件回歸測試研究的難點和重點。回歸測試選擇是復(fù)用已有用例基進行測試的方法。目前回歸測試選擇的研究,主要包括:1)基于代碼信息的回歸測試選擇。2)基于歷史記錄的回歸測試選擇。統(tǒng)一建模語言(UML)在軟件工程發(fā)展進程中具有里程碑的意義,統(tǒng)一建模語言(UML)的正式發(fā)展是從1994 年開始的,它匯集了近20 多年來各種建模技術(shù)。UML對開發(fā)高質(zhì)量軟件起了很大的促進作用,同時也給軟件測試以及回歸測試帶來新的研究領(lǐng)域?;诖a的回歸測試選擇對測試人員要求很高,需要測試人員閱讀并理解代碼,這需要很多的時間花費,并且是依賴于編程語言的。而基于UML設(shè)計的回歸測試選擇不依賴于編程語言,比代碼級的回歸測試選擇更加容易且效率高。 國內(nèi)外研究現(xiàn)狀及進展 以前相關(guān)研究回歸測試作為軟件生命周期的一個組成部分,在整個軟件測試過程中占有很大的工作量比重,軟件開發(fā)的各個階段都會進行多次回歸測試。許多研究人員研究了回歸測試技術(shù)。例如,Brown 和Hoffman[8] 研究了測試環(huán)境和自動化回歸測試過程。Rothermel和Harrold[10] 研究了回歸測試選