軟件測試相關(guān)技術(shù):貫穿于軟件生命周期過程中的各種活動_第1頁
軟件測試相關(guān)技術(shù):貫穿于軟件生命周期過程中的各種活動_第2頁
軟件測試相關(guān)技術(shù):貫穿于軟件生命周期過程中的各種活動_第3頁
軟件測試相關(guān)技術(shù):貫穿于軟件生命周期過程中的各種活動_第4頁
軟件測試相關(guān)技術(shù):貫穿于軟件生命周期過程中的各種活動_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件測試相關(guān)技術(shù)

——貫穿于軟件生命周期過程中的各種活動2009-12-12/41什么是測試?G.Myers(1979):測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試G.Myers(2004):貫穿于整個軟件生命周期的活動對軟件產(chǎn)品的質(zhì)量進行驗證和確認盡快、盡早地發(fā)現(xiàn)缺陷和問題2009-12-13/41代碼執(zhí)行測試測試信息測試驅(qū)動的缺陷定位輸入級缺陷定位代碼級缺陷定位缺陷信息代碼修正軟件變更信息可信性度量(可靠性/可靠安全性…)測試用例測試用例生成和優(yōu)化缺陷預(yù)測信息基于結(jié)構(gòu)化度量的缺陷預(yù)測可信性度量信息>閾值?結(jié)束NoYes測試用例生成2009-12-14/41擬采用的技術(shù)測試用例生成組合測試蛻變測試自適應(yīng)隨機測試演化測試輔助:符號執(zhí)行缺陷定位輸入級:deltadebugging代碼級:基于spectra的方法回歸測試中的優(yōu)化問題測試用例優(yōu)化:優(yōu)先級測試用例約簡2009-12-15/41代碼執(zhí)行測試測試信息測試驅(qū)動的缺陷定位輸入級缺陷定位代碼級缺陷定位缺陷信息代碼修正軟件變更信息可信性度量(可靠性/可靠安全性…)測試用例測試用例生成和優(yōu)化缺陷預(yù)測信息基于結(jié)構(gòu)化度量的缺陷預(yù)測可信性度量信息>閾值?結(jié)束NoYes測試用例生成2009-12-16/41測試用例生成軟件測試:一個為了發(fā)現(xiàn)錯誤而運行程序的過程

(什么樣的測試用例可以誘發(fā)錯誤?)測試用例集的生成:根據(jù)給定的測試標(biāo)準(zhǔn)進行抽樣

(選取何種測試標(biāo)準(zhǔn)?)2009-12-17/41組合測試組合測試(Combinatorialtesting)

檢測因素間的交互作用何為因素間的相互作用?例:NextDay輸入:當(dāng)前日期(年-月-日)輸出:輸入日期的下一天(年-月-日)2009-12-012009-12-022009-12-312010-01-012009-02-282009-03-012009-12-18/41SOA不同服務(wù)間的相互作用2009-12-19/41組合測試固定力度組合測試(N維組合測試)ClassAClassBClassCClassDA1A2B1B2C1C2D1D2D3ClassAClassBClassCClassDA1B1C1D1A1B1C2D2A1B2C1D3A2B1C2D3A2B2C1D2A2B2C2D12維組合測試用例集對復(fù)雜的因素間交互關(guān)系進行等概率的抽樣2009-12-110/41組合測試可變力度組合測試交互關(guān)系:R={{classA,classB,classC},{classA,classD},{classC,classD}}ClassAClassBClassCClassDA1B1C1D1A1B1C2D2A1B2C1D3A1B2C2D3A2B1C1D2A2B1C2D1A2B2C1D2A2B2C2D1可變力度組合測試用例集考慮已知的特定交互關(guān)系2009-12-111/41組合測試關(guān)鍵問題組合力度的選定(固定力度/可變力度)固定力度:N=?可變力度:交互關(guān)系如何獲?。拷M合測試用例集的生成算法小規(guī)模測試用例集的生成:NP-C根據(jù)測試資源選取輸入輸出關(guān)系,Slicing分析設(shè)計信息,如UML重點研究2009-12-112/41蛻變測試一條測試用例是否通過?

(判斷運行結(jié)果是否等于預(yù)期結(jié)果)例:sin(x)輸入:任意實數(shù)輸出:[-1,1]一般輸入下,如何測試?特殊輸入:sin(0

),sin(30

),sin(45

),sin(90

),…一般輸入:sin(11

),sin(13

),sin(22

),sin(79

),…2009-12-113/41蛻變測試Oracle問題考慮函數(shù)f的內(nèi)在關(guān)系輸入之間的關(guān)系R輸出之間的關(guān)系Rf蛻變關(guān)系MR=(R,Rf)蛻變測試(Metamorphictesting)f(x)=sin(x):1y=x+360

->sin(x)=sin(y)2y=180-x->sin(x)=sin(y)3y=90-x->(sin(x))^2+(sin(y))^2=12009-12-114/41蛻變測試蛻變測試的基本流程構(gòu)造蛻變關(guān)系MR生成原始測試用例根據(jù)R,在原始測試用例的基礎(chǔ)上生成衍生測試用例檢查原始和衍生測試用例的輸出是否滿足Rf,從而得出測試結(jié)果關(guān)鍵問題:蛻變關(guān)系的構(gòu)造sin(11

)sin(371

),sin(169

),sin(89

)2009-12-115/41蛻變測試用途任何面臨oracle問題的軟件測試注意的幾點初始測試用例的生成:隨機生成的效果較好衍生測試用例的生成:優(yōu)先選擇重要的蛻變關(guān)系測試過程可迭代2009-12-116/41隨機測試隨機測試(Randomtesting)

如果缺陷聚集出現(xiàn)…..2009-12-117/41自適應(yīng)隨機測試自適應(yīng)隨機測試(AdaptiveRandomTesting)>d1>d2>d2>d3>d3>d32009-12-118/41自適應(yīng)隨機測試存在的問題距離如何定義?

…測試用例的分布

ARTwithenlargedinputdomain2009-12-119/41代碼執(zhí)行測試測試信息測試驅(qū)動的缺陷定位輸入級缺陷定位代碼級缺陷定位缺陷信息代碼修正軟件變更信息可信性度量(可靠性/可靠安全性…)測試用例測試用例生成和優(yōu)化缺陷預(yù)測信息基于結(jié)構(gòu)化度量的缺陷預(yù)測可信性度量信息>閾值?結(jié)束NoYes測試用例生成2009-12-120/41演化測試白盒測試中的問題:給定程序結(jié)構(gòu)的覆蓋語句路徑分支…可考慮的方法黑盒測試:無效手工/自動設(shè)計:效率低難度大演化測試(Evolutionarytesting)2009-12-121/41演化測試特定測試用例的生成過程->動態(tài)優(yōu)化的過程元啟發(fā)式搜索方法

(MetaheuristicSearchTechniques)遺傳算法模擬退火算法…2009-12-122/41演化測試遺傳算法動態(tài)優(yōu)化->生物種群進化測試用例->生物個體群體搜索(populationsearch)進化速度快收斂不穩(wěn)定2009-12-123/41演化測試模擬退火算法動態(tài)優(yōu)化->晶體冷卻單點搜索(individualsearch)收斂穩(wěn)定速度緩慢模擬晶體降溫時原子的運動規(guī)律根據(jù)Metropolis準(zhǔn)則,當(dāng)高溫晶體溫度降至T時,其內(nèi)部原子趨于平衡的概率為exp{-ΔE/(kT)},其中E為晶體的內(nèi)能,k為Boltzmann常數(shù)高溫下可接受與當(dāng)前狀態(tài)能量差較大的新狀態(tài),而在低溫下基本只接受與當(dāng)前能量差較小的新狀態(tài),而且當(dāng)溫度趨于零時,就不能接受比當(dāng)前狀態(tài)能量高的新狀態(tài)2009-12-124/41演化測試使用遺傳算法的演化測試如何應(yīng)用?編解碼選擇算子雜交算子變異算子存活算子評估2009-12-125/41演化測試找不到最優(yōu)解!怎么辦?進化陷入局部最優(yōu)解

(種群的早熟與退化)迷失進化方向

(程序中的flag變量問題)?2009-12-126/41符號執(zhí)行語句覆蓋率100%,是否可行?如何尋找(判斷)不可執(zhí)行語句?

intx,y;1:if(x>y){2:x=x+y;3:y=x-y;4:x=x-y;5:if(x>y)foo1();6:elsefoo2();}2009-12-127/41符號執(zhí)行嘗試符號執(zhí)行(Symbolicexecution)使用符號值代替具體的數(shù)據(jù)作為輸入在執(zhí)行過程中收集和路徑約束條件并進行求解

intx,y;1:if(x>y){2:x=x+y;3:y=x-y;4:x=x-y;5:if(x>y)foo1();6:elsefoo2();}x:X,y:Y(x>y?)x:X,y:Y(X>Y)x:X,y:Y(X<Y)x:X+Y,y:Y(X>Y)x:X+Y,y:X(X>Y)x:Y,y:X(X>Y)x:Y,y:X(X>Y)&(Y>X)x:Y,y:X(X>Y)&(Y<=X)2009-12-128/41符號執(zhí)行記錄執(zhí)行的狀態(tài),包括:程序變量的符號值路徑條件(PC:PathCondition)程序標(biāo)記(后面執(zhí)行什么)路徑條件非常重要積累了路徑的約束條件符號執(zhí)行樹刻畫程序符號執(zhí)行過程中的執(zhí)行路徑可輔助測試用例的生成2009-12-129/41代碼執(zhí)行測試測試信息測試驅(qū)動的缺陷定位輸入級缺陷定位代碼級缺陷定位缺陷信息代碼修正軟件變更信息可信性度量(可靠性/可靠安全性…)測試用例測試用例生成和優(yōu)化缺陷預(yù)測信息基于結(jié)構(gòu)化度量的缺陷預(yù)測可信性度量信息>閾值?結(jié)束NoYes測試用例生成2009-12-130/41缺陷定位缺陷定位(Faultlocation)黑盒:輸入級白盒:代碼級2009-12-131/41輸入級缺陷定位尋找誘發(fā)故障的測試用例的共性和規(guī)律DeltaDebugging思想Failed:test1=(v1,v2,…,vn)

Passed:test2=(v1’,v2’,…,vn’)

test’1=(v1’,v2,…,vn)test’1=(v1,v2’,…,vn’)test’2=(v1,v2’,…,vn)ORtest’2=(v1’,v2,…,vn’)……

test’n=(v1,v2,…,

vn’)test’n=(v1’,v2,’…,

vn)schema=(…,vx,…)2009-12-132/41代碼級缺陷定位尋找存在錯誤的程序結(jié)構(gòu)基于Spectra的缺陷定位PathfragmentcoveragebranchcoveragestatementcoveragePathspectradataflowcoveragedynamicinvariantscallsequencecoveragetimespectra2009-12-133/41代碼級缺陷定位最危險的語句最安全的語句2009-12-134/41代碼執(zhí)行測試測試信息測試驅(qū)動的缺陷定位輸入級缺陷定位代碼級缺陷定位缺陷信息代碼修正軟件變更信息可信性度量(可靠性/可靠安全性…)測試用例測試用例生成和優(yōu)化缺陷預(yù)測信息基于結(jié)構(gòu)化度量的缺陷預(yù)測可信性度量信息>閾值?結(jié)束NoYes測試用例生成2009-12-135/41測試用例優(yōu)化回歸測試的特點已被運行過的測試用例集合測試信息(是否通過、覆蓋率、資源消耗)測試目標(biāo)發(fā)生變化利用已有信息對測試過程進行優(yōu)化測試用例約簡測試用例優(yōu)先級2009-12-136/41測試用例約簡測試用例約簡(Testreduction)能夠滿足給定的測試需求所需測試用例的總開銷盡可能少Fault-basedtesting:假設(shè)可能出現(xiàn)的故障,針對故障設(shè)計測試用例Boolean-specifi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論