ThreadingTest(簡稱TT)第一期是一款Android白盒測試工具,使用離線檢測的方式,在保護用戶源代碼的基礎上,運用插裝、第五代覆蓋率等技術,爲開發工程師與測試工程師提供一套高效可量化、可視化的交流工具。對比其它測試工具,TT在自動化測試時,會對應測試用例自動生成測試用例和代碼之間的關係以及函數覆蓋率,而且以TT自帶的雙向追溯圖進行展現,在整個自動化測試進行過程當中,TT還會以示波器界面可視化的監控整個自動化測試中每時每刻獲取的測試數據。網絡
基於其它測試工具測試時,TT還開放了API接口進行整合,使本來的自動化操做不用進行任何的改變,經過TT的API接口鏈接,TT示波器獲取其它測試工具的測試數據,並生成會對應測試用例自動生成測試用例和代碼之間的關係以及函數覆蓋率。目前開放的Java語言的API,直接使用Java語言做爲腳本預言的單元測試工具,自動化測試工具均可以經過該接口與TT進行整合。這樣就能夠實如今運行測試用例的同時,在TT中記錄用例所對應的代碼執行邏輯信息。ide
演示:測試場景說明:函數
當使用其它測試工具進行自動化測試時,若是在測試過程當中出現沒法干預或正在進行的自動化測試過程時,須要對測試過程進行測試用例的區分,例如登陸和退出,在運行一次自動化測試時,同時執行了這兩個測試用例,就能夠在程序中,添加這兩個測試用例的開始和結束點,從而達到區分兩個測試用例的目的。這樣就能夠經過TT來實現測試用例與源代碼的關係的自動創建,例如本例子中將創建登錄操做對應的代碼以及退出動做所對應的代碼。工具
測試步驟:性能
以登陸退出爲例,若存在如下代碼結構:單元測試
…測試
classHomePage {spa public void login(){orm … // 登陸的相關操做接口 }
public void logout(){ … // 退出的相關操做 } } |
一、將JavaParser-Android.jar包引入到工程中;
二、import com.zoa.writeToMQ.UnitTest;
三、添加開始結束標識。
在login函數的開始添加登陸測試用例開始的標記,在函數結束前添加登陸測試用例結束的標識;一樣,在logout函數的開始和結束也能夠添加相應的標識。添加後的代碼爲:
… import com.zoa.writeToMQ.UnitTest;
classHomePage { public void login(){ UnitTest testLogin = new UnitTest(「HomePage/login」); … // 登陸的相關操做 testLogin.close(); }
public void logout(){ UnitTest testLogout = new UnitTest(「HomePage/logout」); … // 退出的相關操做 testLogout.close(); } } |
四、使用TT對程序進行插樁並測試,詳見:http://www.threadingtest.com/xwiki/bin/view/ZOA%7C4.演示/Android+程序測試配置
手動使用TT測試基本原理:
爲了讓讀者理解TT的接口調用,咱們這裏說明下在手動模式下TT是如何錄製用例的代碼執行邏輯與覆蓋率信息的。
在TT中,區別測試用例是經過使用不一樣的測試用例Id進行劃分的。在測試的開始添加測試開始標識並在結束添加結束標識,其目的爲,開始標識會經過一個網絡鏈接或USB鏈接,經過一個字符串從TT獲取一個測試用例Id,而後經過先前TT對源代碼的插樁,被測程序內部會不斷地向TT示波器發送數據,而且會在消息中使用從TT獲取到的測試用例Id,從而作到區分測試用例。
當調用發送結束標識後,發送的消息將會使用默認的測試用例Id,TT接收到後,會將收到的數據存儲到默認勾選的測試用例中,從而不會與以前的測試用例混合。
例如在進行一個單元測試時,每個單元測試對應一個測試用例,從而生成多個測試用例,過程以下:
一、打開TT實時監控示波器界面,勾選一個測試用例。
二、點擊開始,而後運行測試。
運行時,數據波形圖顯示接收到的被測程序發送的數據。
三、測試結束後,點擊中止,刷新測試用例樹,便可出現劃分的測試用例。
一、單元測試開始標記
com.zoa.writeToMQ.UnitTest.UnitTest(String unitName)
publicUnitTest(String unitName)
當調用這個構造函數時,即標誌着一個單元測試的開始。建立一個新的單元測試的測試用例。
此函數會發送一個unitName到TT,由TT根據名稱建立一個測試用例和測試類型。通訊過程爲一個阻塞過程,只有當通訊結束或發生嚴重錯,函數纔會返回。
進行單元測試時,必須在TT端選中一個測試用例,生成的單元測試用例組會首先生成一個與選中的測試用例同名的測試類型,而後根據unitName生成的測試用例和測試類型都生成到該測試類型下。
參數:
unitName–測試用例名稱,名稱以「/」進行分割,最後一部分爲測試用例名,前面部分爲測試類型路徑,如「ThreadingTest/Android/Unittest」其生成的測試用例結構爲:
— ThreadingTest 測試類型
|— Android 測試類型
|—Unittest測試用例
二、單元測試結束標記
voidcom.zoa.writeToMQ.UnitTest.close() throws IOException
public void close() throws IOException
結束單元測試,一個單元測試只能調用一次該函數。
參數:
返回值:
ThreadingTest官網:www.threadingtest.com
對移動端白盒測試技術或者性能測試感興趣,請加入羣符號執行 339834199
ThreadingTest官網:www.threadingtest.com
對移動端白盒測試技術或者性能測試感興趣,請加入羣符號執行 339834199