一種自動化測試方法及系統的制作方法
【技術領域】
[0001] 本發明涉及智能操作系統及其應用自動化測試領域,特別涉及一種自動化測試方 法及系統。
【背景技術】
[0002] 目前市面上智能操作系統(windows、Linux、MacOS、Android、MacIOS、symbian等) 及其應用的自動化測試常采用主動式測試方法,如圖1所示,其是主動式測試方法的流程。 在主動式測試中,測試執行與結果判斷都由測試執行者主動發起,且測試執行與結果判斷 環環相克,每一步執行動作或者關鍵動作后都需要主動獲取當前執行狀態與數據并判斷。 由于測試執行與結果判斷是相互關聯的,決定了主動式測試只能應用于測試執行步驟固定 的測試,即設計一定步驟,按照每一個步驟進行測試執行。
[0003] 用例測試目前是智能操作系統及其應用在日常測試中最常規的測試。通常根據產 品特性來設計測試用例,測試用例中包含執行步驟。然后按照測試用例的執行步驟執行測 試動作,比如:按鍵、鼠標點擊、字符輸入、觸摸屏點的等。每執行一動作或者關鍵動作,判 斷執行是否正常,如果任何一處異常,則用例執行失敗。在用例測試中需要設計非常多的用 例,來達到常規功能的覆蓋,常常一個產品需要設計上萬條甚至幾萬條測試用例。但是對 于一個復雜且支持多業務并發的系統,通過逐條的用例測試,覆蓋系統的全部業務場景(可 測試點),基本是不可能。常規的做法,只能是提取系統的關鍵性、常規性業務場景作為測試 點,進行用例覆蓋。
[0004] 用例測試采用如上所述主動式測試進行測試判斷,稱之為主動式用例測試。主動 式用例測試的測試結果判斷需要測試執行者發起測試數據收集與結果判斷,也就是說在主 動式自動化用例測試中,需要在腳本中實現對測試數據收集與結果判斷。目前主流的自動 化用例測試軟件都是采用此方式,比如:HCP,Comcat,普天機械手,QTP,按鍵精靈等。但是 主動式用例測試存在以下問題:1)腳本編寫邏輯復雜:每個動作或者關鍵動作后的判斷都 在用例腳本中體現,而每個動作后的判斷點與方式很可能存在差異,往往需要專業的技術 手段,比如陀螺儀模擬、圖片匹配、各類值獲取等,還需要考慮各種并發場景和異常事件,可 以想象這個腳本的邏輯會非常復雜。雖然很多自動化測試只在關鍵的動作進行判斷以簡化 腳本編寫邏輯,但會帶來非關鍵動作無法保證的風險。2)復用性不高:相同步驟的同模塊 腳本可以復用,但用例設計很多是在同一模塊有多個不同的操作步驟用例,很難做到復用。 3)腳本的編寫和維護工作量大:復雜的腳本邏輯必然會帶來巨大的腳本編寫工作,當被測 試系統版本更新后,需投入腳本更改工作以適應新的系統,腳本越復雜、復用性越差,腳本 更改工作量越大。
[0005] 隨機測試也是智能操作系統及其應用在日常測試中常規的測試。隨機測試是在一 定范圍隨機執行動作,比如:按鍵、命令輸入、鼠標點擊、其他傳感器數據輸入等,這些動作 觸發系統或者應用事件。動作完成后,只能判斷系統與應用是否存在異常(比如:崩潰、無響 應等),如果出現異常,判定執行失敗。基此,隨機測試不判斷測試結果,只是響應異常信息, 不屬于主動式測試。隨機測試一般都用自動化方式實現,隨機自動化測試一般只能判斷系 統與應用是否出現異常,因為未預先設定具體的測試步驟,所以無法進行業務測試的判斷 是否成功。比如Android手機,Monkey只能判斷系統與應用是否異常,無法判斷電話是否 撥打成功,無法判斷通訊模塊是否出現異常。隨機自動化測試具有測試覆蓋點多、強度大的 優點,可以很好的彌補用例測試的不足;但缺點是,可復現性差、很難系統規劃、很容易造成 測試遺漏,所以隨機自動化測試一般只能作為輔助測試。
【發明內容】
[0006]為解決上述技術問題,本發明提供一種自動化測試方法,包括:
[0007]獲取業務狀態數據及業務動作;獲取自定義業務判斷標準;
[0008]根據所述業務狀態數據及業務動作和所述自定義業務判斷標準進行匹配運算,判 斷業務是否成功生成業務判斷結果,將業務判斷結果LOG輸出至第三方應用;
[0009]獲取各類異常的捕獲;獲取異常捕獲的適配管理;
[0010] 根據各類異常的捕獲和異常捕獲的適配管理,生成捕獲的異常。
[0011] 優選的,在所述的自動化測試方法中,在獲取所述自定義業務判斷標準的步驟中, 所述自定義業務判斷標準由業務判斷數據組成,所述業務判斷數據包括狀態、狀態參數和 狀態動作。
[0012] 優選的,在所述的自動化測試方法中,所述狀態參數包括參數名稱、參數標識和參 數類型。
[0013]優選的,在所述的自動化測試方法中,所述狀態動作包括動作名稱、動作標識和判 斷條件。
[0014]優選的,在所述的自動化測試方法中,在所述獲取異常捕獲的適配管理中,所述異 常的類型包括系統異常、應用異常、通訊異常、網絡連接異常、物理層異常和外設異常。
[0015]優選的,在所述的自動化測試方法中,在生成捕獲的異常步驟后,還包括將生成捕 獲的異常LOG輸出至一第三方應用。
[0016]優選的,在所述的自動化測試方法中,在生成捕獲的異常步驟后,還包括第三方應 用通過一接口調用所述捕獲的異常。
[0017]相應的,本發明還提供一種自動化測試系統,包括:
[0018]業務狀態動作監控模塊,用于獲取業務狀態數據及業務動作;
[0019]業務判斷管理模塊,用于獲取自定義業務判斷標準;
[0020] 業務判斷模塊,用于根據所述業務狀態動作監控模塊和業務判斷管理模塊判斷業 務是否成功生成業務判斷結果;
[0021]業務結果輸出模塊,用于將業務判斷結果LOG輸出至第三方應用;
[0022] 異常管理模塊,用于獲取異常捕獲的適配管理;
[0023]異常捕獲模塊,用于獲取各類異常的捕獲;
[0024]異常捕獲輸出模塊,用于根據所述異常管理模塊和異常捕獲模塊生成捕獲的異 堂 巾。
[0025]優選的,在所述的自動化測試系統中,在所述業務判斷管理模塊中,所述自定義業 務判斷標準由業務判斷數據組成,所述業務判斷數據包括狀態、狀態參數和狀態動作。
[0026] 優選的,在所述的自動化測試系統中,所述狀態參數包括參數名稱、參數標識和參 數類型。
[0027] 優選的,在所述的自動化測試系統中,所述狀態動作包括動作名稱、動作標識和判 斷條件。
[0028] 優選的,在所述的自動化測試系統中,在所述異常管理模塊中,所述異常的類型包 括系統異常、應用異常、通訊異常、網絡連接異常、物理層異常和外設異常。
[0029]優選的,在所述的自動化測試系統中,所述異常捕獲輸出模塊還用于將生成捕獲 的異常LOG輸出至一第三方應用。
[0030] 優選的,在所述的自動化測試系統中,還包括第三方應用,所述第三方應用通過一 接口調用所述捕獲的異常。
[0031] 本發明提供的自動化測試方法及系統,具有以下有益效果:本發明支持自定義業 務判斷標準,根據自定義業務判斷標準,可被動式智能判斷并反饋業務結果,無需依賴指定 的測試步驟;此外,本發明支持各類異常集中管理、集中呈現與輸出。進一步的,本發明支持 測試執行與測試結果判斷相互獨立,測試執行程序(包括第三方程序)可以非常輕松獲取測 試結果,讓測試執行程序腳本簡單化。
【附圖說明】