<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            回歸測試最佳實(shí)踐(2)

            發(fā)表于:2014-11-12來(lái)源:uml.org.cn作者:鄧 俊寧點(diǎn)擊數: 標簽:回歸測試
            解決方案 基于對問(wèn)題 1) 和問(wèn)題 2) 的原理分析,我們設計并實(shí)施了回歸測試的解決方案,如下圖所示。它包含了 3 個(gè)主要步驟。一是測試用例的錄入;二是

              解決方案

              基于對問(wèn)題 1) 和問(wèn)題 2) 的原理分析,我們設計并實(shí)施了回歸測試的解決方案,如下圖所示。它包含了 3 個(gè)主要步驟。一是測試用例的錄入;二是對新舊兩個(gè)版本的變更分析;三、通過(guò)測試用例優(yōu)化選擇和覆蓋率分析,得到相應的測試用例優(yōu)化選擇報告,和覆蓋率分析報告。

              圖 5. 回歸測試解決方案

            圖 5. 回歸測試解決方案

              步驟一, Trace Test Case 負責錄制測試用例,并將捕獲到的測試用例的 Runtime Trace 存放到數據庫中;

              測試用例在后臺運行中的 Runtime Trace 是動(dòng)態(tài)分析 (Dynamic Analysis) 中的重要信息。這些實(shí)際的運行信息為測試用例的優(yōu)化選擇和覆蓋率分析創(chuàng )造了條件。下面是測試用例跟蹤的框架圖:

              圖 6. 測試用例跟蹤的框架圖

            圖 6. 測試用例跟蹤的框架圖

              從上圖我們可以看出,測試人員觸發(fā) Trigger 之后,會(huì )啟動(dòng) Agent Controller 。 Agent Controller 一直對 JVM 中的 JVMTI 進(jìn)行監聽(tīng),以獲取部署在 JVM 上的被測應用程序。這些 Agent Controller 還負責將收集到的數據傳輸給 Data Collector 。又 Data Collector 將這些 Runtime Trace 寫(xiě)入如下表所示的數據庫表中。

            Case ID Package Class Method Signature
            001 com.ibm.crl.orts.action DeleteCommodityAction Delete ([Ljava/lang/String;)V
            001 com.ibm.crl.orts.action DeleteOrderAction Delete  
            002 ......      
            003 ...... ...... ...... ......

              注意:函數的 Signature 信息作為函數的參數標識也需要記錄下來(lái)。以區別同名不同參數的函數。

              步驟二, Change Analysis 用于將新舊兩個(gè)版本作比較,得到 Change Report,即程序變更報告,可以精確到 Method 粒度。一般來(lái)說(shuō)代碼變更有 4 種級別,分別為包級別 (Package),類(lèi)級別 (Class),函數級別 (Method) 及語(yǔ)句級別 (Statement) 。

              對于包級別和類(lèi)級別來(lái)說(shuō),比較的力度過(guò)粗,會(huì )影響到回歸測試優(yōu)化的質(zhì)量。而函數級別和語(yǔ)句級別都能起到很好的回歸測試的作用。其中語(yǔ)句級別因為粒度最細,等到的分析結果也最精確,回歸測試質(zhì)量最高。但與函數級別的變更分析相比,回歸測試的質(zhì)量相差很有限,但造成了過(guò)多的執行時(shí)間代價(jià),影響了回歸分析的效率。因此我們采用函數級別的變更分析作為回歸測試的變更粒度。

              確定比較粒度之后,可以選擇分析比較的方法。最簡(jiǎn)單的常用比較方法就是文本比較。包括源代碼和可執行文件 (binary code) 的文本比較。根據 Java 語(yǔ)言面向對象的特點(diǎn),還可以采用基于面向對象分析的比較方法。后者得到的分析粒度更細,但是所花的代價(jià)也越高。

              步驟三, 在通過(guò)測試用例錄制得到測試用例具體的 Runtime Trace 信息,以及通過(guò) Change 分析得到新舊兩個(gè)版本的變更信息之后,我們可以對測試用例優(yōu)化問(wèn)題及覆蓋率分析問(wèn)題進(jìn)行求解。

            原文轉自:http://www.uml.org.cn/Test/200903313.asp

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>