標籤:測試軟體 android測試 Mobile Testing
ThreadingTest(簡稱TT)第一期是一款Android白盒測試載入器,使用離線檢測的方式,在保護使用者原始碼的基礎上,運用插裝、第五代覆蓋率等技術,為開發工程師與測試工程師提供一套高效可量化、可視化的交流工具。對比其它測試載入器,TT在自動化測試時,會對應測試案例自動產生測試案例和代碼之間的關係以及函數覆蓋率,並且以TT內建的雙向追溯圖進行展示,在整個自動化測試進行過程中,TT還會以示波器介面可視化的監控整個自動化測試中每時每刻擷取的測試資料。
基於其它測試載入器測試時,TT還開放了API介面進行整合,使原本的自動化操作不用進行任何的改變,通過TT的API介面串連,TT示波器擷取其它測試載入器的測試資料,並產生會對應測試案例自動產生測試案例和代碼之間的關係以及函數覆蓋率。目前開放的Java語言的API,直接使用Java語言作為指令碼預言的單元測試工具,自動化測試載入器都可以通過該介面與TT進行整合。這樣就可以實現在運行測試案例的同時,在TT中記錄用例所對應的代碼執行邏輯資訊。
示範:測試情境說明:
當使用其它測試載入器進行自動化測試時,如果在測試過程中出現無法幹預或進行中的自動化測試過程時,需要對測試過程進行測試案例的區分,例如登入和退出,在運行一次自動化測試時,同時執行了這兩個測試案例,就可以在程式中,添加這兩個測試案例的開始和結束點,從而達到區分兩個測試案例的目的。這樣就可以通過TT來實現測試案例與原始碼的關係的自動建立,例如本例子中將建立登陸操作對應的代碼以及退出動作所對應的代碼。
測試步驟:
以登入退出為例,若存在以下代碼結構:
… classHomePage { public void login(){ … // 登入的相關操作 } public void logout(){ … // 退出的相關操作 } } |
1、將JavaParser-Android.jar包引入到工程中;
2、import com.zoa.writeToMQ.UnitTest;
3、添加開始結束標識。
在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(); } } |
4、使用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接收到後,會將收到的資料存放區到預設勾選的測試案例中,從而不會與之前的測試案例混合。
例如在進行一個單元測試時,每一個單元測試對應一個測試案例,從而產生多個測試案例,過程如下:
1、開啟TT即時監控示波器介面,勾選一個測試案例。
650) this.width=650;" src="http://img.blog.csdn.net/20140817191725430?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGhyZWFkaW5ndGVzdDIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />
2、點擊開始,然後運行測試。
650) this.width=650;" src="http://img.blog.csdn.net/20140817191549671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGhyZWFkaW5ndGVzdDIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />
運行時,資料波形圖顯示接收到的被測程式發送的資料。
3、測試結束後,點擊停止,重新整理測試案例樹,即可出現劃分的測試案例。
650) this.width=650;" src="http://img.blog.csdn.net/20140817191612656?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGhyZWFkaW5ndGVzdDIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />
650) this.width=650;" src="http://img.blog.csdn.net/20140817191819999?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGhyZWFkaW5ndGVzdDIwMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />
1、單元測試開始標記
com.zoa.writeToMQ.UnitTest.UnitTest(String unitName)
publicUnitTest(String unitName)
當調用這個建構函式時,即標誌著一個單元測試的開始。建立一個新的單元測試的測試案例。
此函數會發送一個unitName到TT,由TT根據名稱建立一個測試案例和測試類型。通訊過程為一個阻塞過程,只有當通訊結束或發生嚴重錯,函數才會返回。
進行單元測試時,必須在TT端選中一個測試案例,產生的單元測試用例組會首先產生一個與選中的測試案例同名的測試類型,然後根據unitName產生的測試案例和測試類型都產生到該測試類型下。
參數:
unitName–測試案例名稱,名稱以“/”進行分割,最後一部分為測試案例名,前面部分為測試類型路徑,如“ThreadingTest/Android/Unittest”其產生的測試案例結構為:
— ThreadingTest 測試類型
|— Android 測試類型
|—Unittest測試案例
2、單元測試結束標記
voidcom.zoa.writeToMQ.UnitTest.close() throws IOException
public void close() throws IOException
結束單元測試,一個單元測試只能調用一次該函數。
參數:
傳回值:
ThreadingTest官網:www.threadingtest.com
對移動端白盒測試技術或者效能測試感興趣,請加入群符號執行 339834199
ThreadingTest官網:www.threadingtest.com
對移動端白盒測試技術或者效能測試感興趣,請加入群符號執行 339834199