Android測試工具ThreadingTest測試CSDN開源版手機遊戲--捕魚達人實例

產品介紹

Threadingtest(簡稱“TT”)是一款跨平臺、多語言、集測試與輔助開發於一體的智能測試工具平臺

1、智能化:連接開發與測試之間的穿線技術

第五代白盒覆蓋率技術(實現美軍標DO-178B MC/DC白盒結構測試技術,實現100%覆蓋率)

2、可視化:超高速、大型、互動的圖形化系統

實時的示波器級的測試數據檢測

多個版本的代碼比對視圖

3、支持多種語言、平臺和應用:一期已經發布了對J2EE應用的版本以及針對Android應用的版本

二期將發佈蘋果移動應用版本以及c/c++版本

三期向多線程高速運轉的遊戲類應用擴展。

支持Android/MAC OS X/Windows XP/7/2003/vista/Linux/Unix等多個系統環境

4、編譯技術:100%Java語法支持,最高支持Java1.7版本

產品特性

1、連接開發與測試之間的穿線技術

測試用例與程序代碼的雙向穿線

將覆蓋率分析結果作爲穿線連接開發與測試

幫助測試人員可視化開發人員單元測試結果

基於穿線技術實現的智能化迴歸測試用例選取技術

2、第五代覆蓋率技術

多版本的累計覆蓋率技術

無需監管的覆蓋率蒐集

支持在程序結構圖、控制流程圖等多種圖形上顯示覆蓋率

支持分佈式測試

實現美軍標DO-178B MC/DC白盒結構測試技術

3、超高速、大型、互動的圖形化系統

支持百萬圖元級別的超高速圖形繪製技術

支持全屏以及超平滑的放大與縮小技術、平滑的移動技術

支持按照類分組聚集布圖以及按照函數調用關係布圖,層次數量可自由定義

支持逐級的子樹展開和下鑽功能。

4、實時執行邊做測試邊看示波器

實時的被測應用執行監控示波器

被測應用的每一個動作可以被示波器檢測到

可以從執行數據塊數量、函數數量、條件數量等多個指標進行實時的監控

下面就讓我們對CSDN上,Android開源遊戲項目捕魚達人遊戲進行深度的測試演示。


1 Threadingtest安裝和環境變量的配置


(1)安裝JDK並配置JDK環境變量,要求1.6以上版本

配置環境變量 步驟:

a)右擊“我的電腦”-->"高級"-->"環境變量"

     b)在系統變量裏新建JAVA_HOME變量,變量值爲:C:\jdk1.7.0_01(根據自己的安裝路徑填寫)

     c)新建classpath變量,變量值爲:

.;C:\jdk1.7.0_01\lib\dt.jar;C:\jdk1.7.0_01\lib\tools.jar;(程序根據自己的安裝路徑填寫)

 d)在path變量(已存在不用新建)添加變值:

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意變量值之間用“;”隔開)

 

(2)安裝Android SDK並配置其環境變量,Android SDK按照版本依靠測試Android項目所用版本,沒有其他特別要求。

配置環境變量 步驟:

a)右擊“我的電腦”-->"高級"-->"環境變量"

     b)在path變量值添加platform-tools的目錄路徑,例如

E:\android-sdk_r20.0.3-windows\android-sdk-windows\platform-tools

 

(3)安裝TT,完成後申請試用碼,將申請回執右鍵附件的key.key文件放置TT安裝根目錄下,TT的示波器界面可正常使用。

申請key.key表格的填寫:



2智能化的代碼插裝, 編譯Android工程


測試一個工程之前,首先要在TT上編譯被測項目,編譯完成後TT面板上會加載被測項目和項目的相關信息。編譯步驟如下:

1.TT主界面工具欄File->ManageProject,進入多版本管理界面。

2.點擊Add按鈕,添加一個新的項目。

s4這種s4這種




2.繼續點擊Add按鈕,在新建的項目下面添加一個新的版本



4.進入編譯界面,配置編譯選項卡,點擊build進行編譯。



5.點擊build之後會出現編譯輸出信息的窗口,編譯完成之後會彈出Build Finish!的提示窗口,並且在用戶指定的APK安裝包生成的路徑下生成了相應的apk包,這兩個apk包之間是沒有區別的。要跑測試用例,接受測試數據前,應安裝這兩個apk包中的任意一個。



3連接和安裝APK,支持Threadingtest與Android設備之間的多種方式的交互連接


ThreadingTest支持USB連接、wifi熱點以及模擬器三種方式進行測試數據傳輸,您可以選擇以下任何一種方式進行測試體驗。(案例以USB連接方式做簡單介紹)

(1)打開移動設備USB調試(注:移動設備需要打開USB調試,安裝相應的移動設備驅動程序)



(2)確保Android設備於PC機連接正常(您可以採用百度手機助手或者360助手等方便查看連接情況),將上述生成的APK安裝到USB連接的Android設備上。

(3)設置本機IP(注:USB接受數據必須修改ThreadingTest接收端IP爲文件爲本機IP),點擊View菜單點選DTCView進入DTC監控界面點擊設置ip按鈕設置本機ip。



(4)啓動端口映射,完成TT和Android設備連接

第一步:啓動端口映射之前,請先檢查Android SDK是否配置了環境變量

點擊“開始”-->“運行”-->輸入“adb”-->"Enter",如果能正常打印用法說明配置正確可以進行第二步操作,如果沒有配置正確請參考“ThreadingTest Android App Edition安裝配置”進行Android SDK的安裝以及環境變量配置。



第二步:在ThreadingTest的安裝目錄下,查找adb-android.bat文件,點擊執行,啓動端口映射。




4.製作用例、獲取數據,TT率先引入了測試示波器的概念,在實際測試的過程中,測試員可以看到類似於心電圖的數據獲取模式


(1)點擊TT工具欄View->DTCView進入示波器界面




2)在示波器界面的左側,創建測試用例,針對捕魚達人小遊戲設計的測試用例列表如下:

一級測試用例類型

二級測試用例類型

測試用例名稱

測試用例描述

遊戲模式

簡單模式

在界面不做任何操作

不對遊戲界面做操作,時間消耗完結束

***強度爲1進行遊戲

在默認的***強度情況下進行捕魚操作

轉換***強度進行遊戲

測試轉換***強度進行遊戲

遊戲中點擊暫停繼續按鈕

測試捕魚界面的暫停/繼續按鈕

遊戲界面去除音效的設置

測試音效設置

普通模式

在界面不做任何操作

同普通模式

***強度爲1進行遊戲

同普通模式

轉換***強度進行遊戲

同普通模式

遊戲中點擊暫停繼續按鈕

同普通模式

遊戲界面去除音效的設置

同普通模式

困難模式

在界面不做任何操作

同普通模式

***強度爲1進行遊戲

同普通模式

轉換***強度進行遊戲

同普通模式

遊戲中點擊暫停繼續按鈕

同普通模式

遊戲界面去除音效的設置

同普通模式

遊戲設置


音效調節

在遊戲設置選項中,調節音量,做測試

第一步:在TT中建立上述表格中的測試用例結構,右鍵DTCView界面左側,添加測試用例類型,如下截圖:



第二步:在一個測試用例添加完成之後,右擊該測試用例類型,選擇添加測試用例類型或者測試用例,按照設計的測試用例類型結構完成。下圖是測試用例添加窗口





(7)選擇示波器界面中剛建立的用例,選擇start進行數據接收。連接移動設備有USB和熱點等多種方式可以點擊help獲得相關說明。




5.測試數據獲取完畢後,TT超高速、大型、互動的圖形化系統展示

5.1主界面-調用關係視圖





5.2主界面-控制流程視圖




5.3主界面-函數列表視圖


5.4覆蓋率分析

主界面的CallGraph、ControlFlow、ListView三個視圖是可以相互切換的,我們可以通過查看每個函數的各個覆蓋率的數據,如果覆蓋率沒有達到100%的,可以選擇查看函數的那部分代碼或者分支執行的測試用例沒有覆蓋到。

ListView視圖是以列表的形式顯示了項目包含的所有函數的各種覆蓋率信息和複雜度信息的統計數據,支持翻頁、跳轉指定頁,按各列升序排序等功能。


5.4.1段覆蓋


  設置跳轉到CoverageView中的函數調轉,選中的函數的SC0=80% ,SC1=88.9%,SC1+=88.9%,JC0=5, JC1=11,JC1+=9。

例如:SC0塊測試覆蓋。如果程序的所有可見段(程序塊)至少被執行一次,則該段程序的SC0覆蓋率達到了100%。

SC0= 被執行的塊個數/該段程序包含的塊個數(即可見段個數),JC0=一段程序的塊的個數。也就是JC0是SC0的分母。同樣JC1是SC1的分母,JC1+是SC1+的分母。

  (1)以SC0爲例子,怎麼查看那些塊沒有被測試用例組覆蓋到,引導測試人員完善測試用例,達到100%覆蓋。

跳轉到CoverageView界面,如下圖,選擇Coverage->SC0,覆蓋率是80%,該覆蓋塊包含的靜態代碼塊是5,覆蓋到的是4塊,可以看到藍色的Block:978沒有覆蓋到,如果測試用例滿足了if(i<5) 這個條件,那麼Block:978塊就會被覆蓋到。



當然我們也可以在ControlFlow視圖部分看到相應的代碼執行覆蓋情況,如下圖我們可以看到return true;這個語句的執行次數爲0,if(i<10)中的i<10的真分支沒有被執行,只有假分支被執行過。




(2)TT提供的段覆蓋包括SC0,SC1,SC1+,那TT爲什麼光段覆蓋率就會提供三種呢?

  我們都知道普通的段覆蓋被看做最弱的覆蓋率,而大多數軟件測試過程中所提到的段覆蓋就是TT的 SC0覆蓋,這種覆蓋率標準只考慮覆蓋代碼中的執行語句塊,卻不考慮各種語句結構的分支覆蓋情況等,因此往往被看做比較弱的覆蓋,但卻是很必要的一種覆蓋量度。TT考慮到普通的段覆蓋的缺點,因此在SC0的基礎上提出了SC1以及SC1+覆蓋率,都是SC0覆蓋率的加強版。

SC1——標準段測試覆蓋。如果程序的所有頂端不可見段至少被執行一次並且滿足SC0 100%覆蓋,則該程序的一組測試用例滿足SC1 100%覆蓋。

SC1=被執行的代碼塊(包括不可見段0以及不可見段2)/該段程序包含的塊個數(包括不可見段0以及不可見段2)

不可見段0(if和swicth)判斷體結束後的不可見段,即if和switch中條件判定式不滿足的情況,會存在一個不可見段

不可見段2(for、while和do-while)循環體結束後的不可見段,即for、while、do-while循環條件不滿足時,會正常跳出循環,這時會存在一個不可見段。

SC1+——增強標準段測試覆蓋。如果程序的所有低端循環邊界不可見段至少被執行一次並且滿足SC1 100%覆蓋,則該程序的一組測試用例滿足 SC1+ 100%。

SC1+=被執行的代碼塊(包括不可見段0,不可見段2以及不可見段1)/該段程序包含的塊個數(包括不可見段0,以及不可見段2以及不可見段1)

不可見段1(for和while)非正常的結束循環體時的不可見段,也就是指for和while循環體一次都沒有被執行的情況,這時會存在一個不可見段。

 

上述那個例子的覆蓋率信息是SC0=80% ,SC1=88.9%,SC1+=88.9%,SC1和SC1+相同,那這就意味着這個函數代碼中沒有for以及while循環,SC0和SC1不同意味着這個函數代碼中存在條件語句。

 


SC0各段的覆蓋情況




SC1各段的覆蓋情況

上圖中紅色框的爲條件的隱藏段,也就是當條件不滿足時所走的分支,4個隱藏代碼塊都被執行過,也就意味着這4個條件的假分支都至少被執行過一次。可以轉換到ControlFlow視圖部分,這些條件的假分支是都被執行過的。



5.4.2條件判定覆蓋


TT除了提供了幾種段覆蓋率統計,也提供了條件判定的多種覆蓋率,具體的有條件爲真(TURE),條件爲假(FALSE)、條件真假(BOTH)、分支覆蓋又稱判定覆蓋(Branch覆蓋)、條件/判定覆蓋(C/DC)、修正的條件判定/覆蓋(MC/DC)。TT囊括了幾乎所有的條件判定類的覆蓋率。給測試人用提供程序中各種條件判定式中各條件以及各判定的真假分支執行情況以及各種相關複雜度統計數據,直觀、多方位、幾近全面的邏輯表達式的分支覆蓋統計讓繁雜的測試變得容易、簡單、精準。

通過ControlFlow視圖部分,選中代碼中條件判定式,右側窗口會顯示各個條件、條件組合以及整個判定表達式的真假分支被執行的情況,表示執行過、表示沒有被執行。測試人員可以根據執行情況,去補充增加相應的測試用例,完善測試,達到100%覆蓋測試。如果測試人員不能很好的設計補充測試用例,可以和開發人員進行溝通,確定沒被覆蓋的分支如何設計測試用例。通過TT很直觀很準確的定位到那塊代碼或那些分支沒有被覆蓋,讓測試和開發很好的協同工作,減少了溝通時間,同時也減少了溝通障礙。




5.5複雜度分析


在軟件開發過程中,保證代碼質量時,往往會被要求控制代碼複雜度。複雜度稱爲代碼量度是經過了很長的一段歷史經歷的,令大多人熟知的圈複雜度簡稱CC也是這段歷史的產物,每個公司都會有對圈複雜度的一個告警值。

TT通過複雜度分析,給出多種複雜度的計算值,對於高複雜度的模塊應考慮重構。對於高複雜度的模塊,還可以進一步得知其控制流程圖和邏輯框圖的複雜程度。控制好複雜度能有效地增強軟件產品的可維護性,降低bug的發生率,同時也讓軟件產品的測試工作能更好的進行。

TT提供的複雜度除了之前提到的JC0,JC1,JC1+,CC0(包含case語句在內的圈複雜度)、CC1(不包含case在內的圈複雜度)以及JC2(條件-段的測試複雜度)

JC2=所有可見段+不可間段+所有條件判定語句個數。

在ListView裏面我們可以點擊某個複雜度對函數進行升序降序排列,對於高複雜度的,點擊調轉到ControlFlow圖部分查看對應的控制流程圖。可以和開發人員溝通,對模塊進行優化,控制複雜度,使得測試工作更好展開。



6. 詳細直觀的報表能夠快速的彙總測試項目的各項指標信息,以多樣化的表現形式向用戶展示了測試用例執行結果以及源代碼的各項指標


點擊工具欄View->Analyzer Report進入報表界面。



(1)基本信息統計部分




主要是對當前項目的當前版本的行數統計、包數量統計、文件數量統計、類數量統計、函數數量統計以及測試用例數量統計。

(2)覆蓋率扇形圖

TT個人版的目前的覆蓋率的劃分是固定的,劃分了4個區域分別是0%~25%、25%~50%、50%~75%、75%~100%。TT的企業版的這些數據區間是可以自動設置的,企業可以根據項目的要求設定合適的有針對性的覆蓋率區間。

下圖爲本次案例的覆蓋率統計,可以看到設計的測試用例的還是沒有充分測試的,需要有針對性的增加測試用例完善測試。

文件的各個覆蓋率統計扇形圖

類的各個覆蓋率統計扇形圖


函數的各個覆蓋率統計扇形圖

(3)複雜度扇形圖

TT的個人版針對複雜度的劃分區間是根據行業經驗值來劃分的,歷史研究認爲複雜度大於10會存在很大的出錯風險。我們可以看到整個源代碼中絕大多數的函數的複雜度都是<10,只有少數的函數還需要進一步優化改進。



(4)覆蓋率統計

LRV:表示最後一次運行時的覆蓋率

CLV:表示累積覆蓋率

橫座標表示:SC0,SC1,SC1+,TRUE,FALSE,BOTH,BRANCH,CDC,MCDC 九種不同類型的函數覆蓋率;

縱座標表示: 不同類型覆蓋率*100的數值;



(5)覆蓋率按天的增長曲線圖



橫軸表示不同的日期;縱軸表示覆蓋率*100的數值;

***圖形部分表示覆蓋率的變化走勢

(6)排行榜

TT提供的排行榜有

1.函數複雜度排行(顯示複雜度最高的10個函數以及對應的複雜度)

2.函數熱度排行(執行次數最多的10個函數以及執行次數)

3.測試用例貢獻度排行(測試覆蓋率做多的10個測試用例)

4.正向追溯排行(測試覆蓋函數最多的10個測試用例,根據波及到的函數數量排行)

5.逆向追溯排行(波及到的用例數最多的10個函數)

6.扇入扇出最多的函數排行

7.條件複雜度排行(按照子條件的數量排行,列出MC/DC覆蓋率)




7. 支持分佈式測試場景


支持分佈式應用的集成測試

當用戶的系統爲分佈式系統,由多個組件在集成環境下同時對外提供服務的情況下,TT支持對這個分佈式環境的各個組件及其交互的聯合測試。即可以看到一個外部請求,對不多個子系統之間的所有的執行情況。

支持多用戶同時測試與測試數據的有效隔離 

TT允許多個用戶同時對被測應用測試,而不同用戶針對不同用例即時在同一時刻做的測試而產生的測試數據之間也不會發生任何混淆的情況

 

對移動端白盒測試技術或者性能測試感興趣,請加入羣符號執行  339834199

軟件試用申請官網:www.threadingtest.com

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章