精準測試與自動化測試的無縫對接

 現代的專業軟件測試中心,隨着項目的迭代,一般針對每一個系統構建了大量的自動化測試用例集,而啓動一次全量的自動化測試以CI級觸發,使之大比率經過,很是困難。測試工程師們經常須要投入很高的成本,把大量精力花在自動化用例失敗排查上面,然而發現有效BUG的機率很低。在反覆排查無果、心神俱疲的狀況下,幾乎對自動化產生絕望之心,視之爲雞肋,用之無用,棄之惋惜,讓測試中心極爲頭疼。  架構

 如何讓自動化用例發揮它們應有的效用,讓QA工做不那麼沉重呢?星雲測試針對這一難題,進行了精準測試與自動化測試無縫對接的技術方案研發。通過大量企業實施與驗證,精準測試的數據流最終能夠「無感」對接到自動化測試中,極大擴展了自動化測試的優點,完全改進了自動化測試變動管理難的短板。併發

 這一技術方案的推出,就像給自動化測試裝上「精準測試」的眼睛和翅膀,瞬間就具有了多種飛躍功能。好比:  1) 自動化測試用例與源碼自動創建關聯  2) 同步進行智能迴歸用例選取  3) 有效縮小自動化測試執行範圍  4) 即時分析須要進行維護的測試用例集合  5) 全自動追蹤每一個測試用例的執行代碼路徑  6) 當自動化執行結束後可輔助直接定位自動化用例的代碼出錯點  7) 對自動化測試用例集進行分析,例如聚類分析,以及最小用例集合分析等  8) 對測試用例集的優化給出指導意見  9) 給出測試用例集運行的整體覆蓋率信息  10) 協助有效的對用例集進行增補  11) 增量代碼覆蓋率分析等等。框架

 本文重點以星雲精準測試產品與單元測試框架JUnit爲例進行說明。函數

 單元測試通常經過寫測試用例來測試:核心類方法,異常處理,業務邏輯等。實現Junit單元測試與精準測試的無縫對接後,基本能夠確保真正的測試充分性。由於在運行單元測試用例的時候,精準測試系統中將自動生成相應測試用例,並將每一個單元測試的代碼覆蓋狀況詳細的記錄到精準測試系統中,因爲精準測試自帶測試用例與代碼相互追溯以及覆蓋率可視化的特性,你能夠對當前所寫的單元測試是否充分,盡收眼底。單元測試

下圖是精準測試與Junit單元測試無縫對接實現自動化測試的架構示意圖。 測試

  該方案主要特色是:充分利用了JUnit框架的繼承特性,全部精準測試必要的通訊和控制邏輯能夠所有經過基類實現。也就是說,對於原來全部自動化測試用例集,只須要增長一個對於封裝的ParentTest的繼承。即:不須要對原有測試用例的實現代碼作任何改動,就能夠實現與星雲精準測試平臺的對接。對接完成後,JUnit測試的運行過程當中,測試用例會自動的在星雲精準測試系統中建立,而且全自動記錄每一個自動化測試用例的代碼覆蓋信息。

  下面是對ParentTest擴展基類主要方法的描述,該解決方案主要針對Junit框架自身的註解方法進行擴展: @Before:初始化方法對於每個測試方法都要執行一次,在每一個測試方法以前執行,@After:釋放資源,在每一個測試方法以後執行,@BeforeClass:在當前類的全部測試方法以前執行,@AfterClass:在當前類中的全部測試方法以後執行。一個JUnit4的單元測試用例執行順序爲:優化

 @BeforeClass -> @Before -> @Test -> @After -> @AfterClass;網站

 所以可針對這個特性在不一樣註解代碼中進行定製,定製一個公共的類,當其餘的單元測試都繼承自該類時,也運行相同的方法。經過在不一樣註解中添加登陸版本,建立測試用例並開始,結束測試用例以及登出版本命令,併發送至TTFront組件實現與TT的交互,並不影響單元測試自己的測試程序和測試結果。3d

 TTfront在接受到命令後,登陸對應版本並記錄用戶名,建立完成測試用例後當測試用例運行時刻經過軟件示波器實時採集該測試用例對應的覆蓋率數據,將該部分數據經過用戶名匹配到該測試用例。在TT客戶端能夠看到測試用例以及該單元測試對應的函數覆蓋狀況以及代碼覆蓋狀況。cdn

 只須要在建立單元測試的時候類繼承自已經封裝好的ParentTest類,便可與TT無縫對接實現自動化測試。  Junit單元測試與TT對接的實施案例以及效果圖:  一、建立測試用例時繼承自ParentTest類

 二、修改ParentTest中的項目,版本,用戶密碼以及TT服務端IP
 三、對應修改引入的包(以mvn項目爲例),JavaPaser包主要包含了插裝代碼以及ParentTest類必需要的TT處理邏輯須要的庫的引用。
對被測試代碼經過TT進行插裝打包,注意Junit自動化測試用例代碼不須要插裝,只須要插裝Junit測試的業務邏輯代碼便可。  四、開始單元測試,在測試用例執行過程當中,打開TT客戶端示波器組件,顯示實時採集的覆蓋率波形,看到測試用例在TT系統中自動創建。TT客戶端效果圖(生成對應測試用例以及該測試用例的覆蓋狀況)

 以上講述了精準測試系統如何無縫與現有自動化測試框架的對接。除了Junit,其餘自動化測試框架,都可以參照此思路進行實現(登陸星雲網站www.teststars.cc 離線企業測試中心便可免費試用)。精準測試系統與自動化進行對接後,可使沒法看清的黑盒狀態中的自動化測試執行,變得有跡可循。基於精準測試強大的測試分析系統,能夠對自動化測試執行和規劃進程進行持續的優化,這一方案,能夠有效解決自動化測試的投入產出比居高不下的業界難題。
相關文章
相關標籤/搜索