一级国产20岁美女毛片,久久97久久,久久香蕉网,国产美女一级特黄毛片,人体艺术美女视频,美女视频刺激,湿身美女视频

免費咨詢電話:400 180 8892

您的購物車還沒有商品,再去逛逛吧~

提示

已將 1 件商品添加到購物車

去購物車結(jié)算>>  繼續(xù)購物

您現(xiàn)在的位置是: 首頁 > 免費論文 > 會計論文 > 基于軟件架構(gòu)的回歸測試

基于軟件架構(gòu)的回歸測試

1 回歸測試背景
  首先由于軟件總在時刻變化著,軟件的不斷演化,例如軟件的開發(fā)、維護、升級都需要修改一些軟件的結(jié)構(gòu)和代碼,而人類對軟件的要求也從未停止過。軟件的每次改變都會引入潛在的風(fēng)險,這是軟件演化的缺陷。其次,人類對軟件變化有了一些新的要求,關(guān)心軟件修改后的功能是否達到預(yù)期以及原有的功能是否被損害[1-3]。
  針對以上要求,選擇使用回歸測試來解決。回歸測試是一種驗證已變更系統(tǒng)的完整性與正確性的測試技術(shù)。
  2 回歸測試的定義及意義
  回歸測試是對之前已測試過、經(jīng)過修改的程序進行重新測試,以保證該修改沒有引入新的錯誤或者由于更改而發(fā)現(xiàn)之前沒有發(fā)現(xiàn)的錯誤。
  回歸測試的意義是:(1) 保證軟件維護時未更改的代碼功能不會受到影響。(2) 保證軟件模塊區(qū)域和持續(xù)維護過程與回歸測試的協(xié)作關(guān)系,使得回歸測試成為一個每月、每周、每日的常規(guī)活動。(3) 實現(xiàn)軟件整個生命周期的測試。
  3 回歸測試
  首先簡單介紹傳統(tǒng)的基于代碼的回歸測試選擇方法的作用,以便了解軟件架構(gòu)回歸測試選擇方法的基礎(chǔ)。關(guān)注于選擇性的回歸測試方法,然后再重新采用相同的邏輯步驟來提出一種基于軟件架構(gòu)的回歸測試方法(在第四部分提出)。
  回歸測試的目的在于驗證修改的軟件并確定不會在先前測試的代碼中出現(xiàn)新的錯誤。傳統(tǒng)的方法是把它分解為兩個階段。(1) 測試軟件P相對于一種指定的測試集T。(2) 當(dāng)推行了一種新版本P′時,對已修改的版本P′的回歸測試提出P′相對于測試組T′是正確的可靠性。
  在最簡單的回歸測試方法中,有一種叫做復(fù)制所有的測試。T′中包含T中的所有在T中的測試用例,并且P′ 運行在T′上。在回歸測試選擇方法上,T′被選出作為一種跟T相關(guān)的子集,假設(shè)有t∈T,t包含于T′,如果它有可能在P′中生成的結(jié)果與在P中不同。對不同回歸測試選擇方法的實證研究和分析在文獻[4]中提出,加上對不同行為的識別需求。
  本文著重研究如何為P′選擇一種相關(guān)的測試用例子集,又叫做回歸測試選擇問題,描述一種回歸測試選擇方法,它是在軟件架構(gòu)層面上而不是在代碼層面上。換句話說,用選擇架構(gòu)化的層面測試用例代替選擇代碼層面的測試用例。
 ?。?基于軟件架構(gòu)的回歸測試
  基于軟件架構(gòu)的回歸測試包含以下兩個階段:(1) 基于軟件架構(gòu)的測試。特別地,應(yīng)用一種基于軟件架構(gòu)的一致性測試方法。(2) 基于軟件架構(gòu)的回歸測試選擇。這個階段被分解以滿足目的1和目的2。
  圖1總結(jié)了基于軟件架構(gòu)一致性和回歸測試所需要的行為。本文主要研究基于軟件架構(gòu)的回歸測試。
  4.1 基于軟件架構(gòu)的一致性測試
  這項工作是基于軟件架構(gòu)一致性測試的一般框架的,目的是測試已給出的軟件架構(gòu)實施的一致性。
  這個框架分為5個步驟,如圖1中間的部分所示。
  第0步:它開始于軟件架構(gòu)規(guī)范的拓撲學(xué)和行為學(xué),這里的行為通過一種基于機器的形式體系狀態(tài)來模仿。下面,利用標(biāo)簽的過渡(LTS)來模仿組件的行為。
  第1步:提出了一個通過觀測得到的方法為了實現(xiàn)一種測試標(biāo)準(zhǔn),這種標(biāo)準(zhǔn)來源于與測試目的相關(guān)視角在軟件架構(gòu)中,而是把無關(guān)的行為從這個視角中隱藏起來。標(biāo)簽的過渡(LTS)模型被提取出來,就產(chǎn)生了一種抽象標(biāo)簽的過渡(ALTS),用來說明只有這樣高層的行為/組件是需要測試的。
  第2步:一種基于架構(gòu)層面的測試用例(ATC)以架構(gòu)事件的有序序列被定義了,這種事件是當(dāng)一個確定的初始事件執(zhí)行的時候期望發(fā)生的架構(gòu)事件。此定義分解為兩個關(guān)鍵詞:行為序列,它代表了所期望的行為和初始事件,它是允許發(fā)生的結(jié)構(gòu)化輸入。獲得一個ATCs充分集合需要得到一個合適的包含了ALTS完整路徑的集合[5]。
  第3步:自然地,這樣的ATCs與可執(zhí)行的代碼層面測試用例截然不同,因為在軟件架構(gòu)和代碼之間的差距。處理這個問題通過一種“繪圖”方法,它能夠?qū)④浖用婧瘮?shù)的測試轉(zhuǎn)化為代碼層面測試用例。
  第4步:最后,代碼運行在可識別的測試用例上。通過分析執(zhí)行的蹤跡來決定系統(tǒng)在所選擇的結(jié)構(gòu)測試中實施得是否正確,采用結(jié)構(gòu)化的模型作為一種測試數(shù)據(jù)庫來識別代碼用例成功或失敗。
  這樣的方法已經(jīng)得到公認,但是重復(fù)的測試行為對于系統(tǒng)的發(fā)展而言無疑花銷太大了,因此需要以更少花銷開發(fā)一種基于軟件架構(gòu)的測試方法。本文提出一種方法來處理系統(tǒng)的發(fā)展,重復(fù)使用原始的測試結(jié)果來重新測試已修改的結(jié)構(gòu)并以更少的花銷來完成。
 ?。矗?目的1:測試對于初始軟件架構(gòu)P′的一致性
  讓假設(shè)基于軟件架構(gòu)一致性的測試已經(jīng)提出P符合已給出的軟件架構(gòu)的一致性。當(dāng)P進化到P′之后,如何來測試P′對于相同架構(gòu)的一致性。采用的方法是將基于軟件架構(gòu)測試方法和現(xiàn)存的基于代碼的回歸測試方法相融合的。通過一種行為圖表,代碼層面的回歸測試能夠與基于軟件層面的一致性測試相融合來選擇一個新的測試套組T′:



 ?。粒?產(chǎn)生圖表P,大多數(shù)普通的用于代碼回歸測試的方法是為了通過圖表來結(jié)構(gòu)化地表達P。在修改之后,P′也被描述成一張圖表。在軟件架構(gòu)中,圖表也通過組合成分行為的LTS模型來獲得,同時在結(jié)構(gòu)中結(jié)構(gòu)化那些成分組織。
 ?。拢喊眩牵泻停牵小湎啾容^,在基于回歸測試的傳統(tǒng)代碼中,通過比較P和P′的代碼圖表,識別代碼的改變怎樣影響到圖表中。在軟件架構(gòu)中,這種改變根據(jù)在LTS中節(jié)點和邊來識別。
 ?。茫河涗浉采w范圍,通過測試用例的執(zhí)行測試歷史記錄被構(gòu)建出來。通過測試用例在P上執(zhí)行代碼的過程,記錄一連串的節(jié)點/電弧。
 ?。模簻y試用例選擇P′。從測試歷史和圖表比較中積累的信息被應(yīng)用于識別將要在P′中再次運行的T中的測試用例。如果在t∈T中P的執(zhí)行包含了在P′中修改的節(jié)點,那么t需要在P′中重新運行。
  一旦T′被選擇了,t′∈T′就在P′中運行并把結(jié)果收集起來,然后和一種數(shù)據(jù)庫相比較來確定測試是失敗還是成功。與基于傳統(tǒng)代碼方法的一種主要的區(qū)別是,在基于軟件架構(gòu)回歸測試的數(shù)據(jù)庫是軟件結(jié)構(gòu)自己本身。事實上,當(dāng)t′在P′中運行的時候,如果它的執(zhí)行不允許所期望的情況再次出現(xiàn),那么測試會失敗。更多情況,代碼層面的測試用例總是被形式化的函數(shù)和結(jié)構(gòu)化的需求驅(qū)動得很好。
  期望從這個方法中得到的好處有兩層:(1) 作為傳統(tǒng)的回歸測試,為P′減少了測試套組的規(guī)模,剪掉了所有在P′中不需要被再次應(yīng)用的那些測試。(2) 當(dāng)發(fā)現(xiàn)了一致性錯誤的時候,能夠搜集關(guān)于如何來適應(yīng)初始架構(gòu)的信息。
 ?。矗?目的2:測試進化得到的架構(gòu)的一致性
  讓再次假設(shè)基于軟件架構(gòu)一致性測試已經(jīng)聲明了P的實施應(yīng)符合已給出的軟件架構(gòu)。采用的方法是根據(jù)比較兩者的架構(gòu)的規(guī)范來識別軟件結(jié)構(gòu)改變/未改變的位置。結(jié)構(gòu)和行為的改變都被考慮在內(nèi)。特別的,對于S和S″的LTSs被比較之后的區(qū)別通過兩張圖表(利用一種“diff”算法)來識別。在一次與基于回歸測試傳統(tǒng)代碼相似的改革中,無論什么時候一個ATC在S″中被修改的LTS軟件架構(gòu)中遍歷一次的時候,它需要在S″中重新測試。圖1(最左邊)總結(jié)了目的2如何通過不同的行為被意識到。
 ?。幔?新的軟件架構(gòu)規(guī)則。演變的系統(tǒng)S″被結(jié)構(gòu)化的規(guī)則提出。
  b: 測試標(biāo)準(zhǔn)。測試標(biāo)準(zhǔn)(之前應(yīng)用在S中)被用在S″上。
 ?。悖?比較。架構(gòu)的規(guī)則與識別出的拓撲改變相比較(也就是增加的/刪除的組件或修改的配置)和行為的改變(也就是經(jīng)過改變的部件)
 ?。洌簽椋印暹x擇結(jié)構(gòu)化的測試用例。那些來自于軟件架構(gòu)的被結(jié)構(gòu)的改變影響的ATCs被選擇在P″上重新測試,為了S″的實施。注意到任何在這步丟棄的ATC都可以代表很多被消除的代碼層面的測試用例,因此很大程度上減少了重復(fù)測試的花銷。
 ?。澹?識別代碼層面測試用例。一旦已經(jīng)識別了需要用在S″中的回歸測試ATCs,為了S″需要把架構(gòu)的測試用例轉(zhuǎn)化到代碼層面的測試用例,以便為了P″選擇T″。這一步類似于在第三步中基于軟件架構(gòu)的測試。
 ?。妫?測試執(zhí)行。在T″已經(jīng)被S″選擇之后,需要在P″中運行T″然后評估執(zhí)行基于軟件架構(gòu)回歸測試的結(jié)果。這一步跟第四步中基于軟件架構(gòu)的測試很相似。

服務(wù)熱線

400 180 8892

微信客服