專利名稱:用于由計算機控制的電子產品的自動測試方法
技術領域:
本發明涉及一種自動測試方法,特別是用于由計算機控制的電子產品的自動測試方法。
背景技術:
目前對由計算機控制的電子產品的自動測試技術的缺陷是只能重復預先定義好的運行模式,而不能自動產生新的測試變異和擴展。若要測試覆蓋電子產品真實實際的運行條件,那就必須預先準備好巨量的測試案例,一一在電子產品上重復運行。即便這樣,由于這需要巨大的人力資源來準備和設計測試案例,電子產品實際的測試覆蓋率非常有限。
發明內容
發明目的針對上述現有存在的問題和不足,本發明的目的是提供一種用于由計算機控制的電子產品的自動測試方法,該方法能根據人工定義有限的測試案例,在自動測試過程中自動衍生出無限的組合測試案例。技術方案為實現上述發明目的,本發明采用的技術方案為一種用于由計算機控制的電子產品的自動測試方法,包括如下步驟(1)進行自動測試前的準備工作將測試自動機設為空閑設置狀態;測試案例開始;根據待測電子產品的一種使用模式人工輸入所需的鍵盤操作序列,所述測試自動機記錄人工輸入的鍵碼和按鍵的發生時間;判斷測試案例是否結束,若是,生成一系列鍵碼和按鍵發生時間的測試記錄,該測試記錄為誘導測試案例,若否,繼續記錄人工輸入的鍵碼和按鍵的發生時間;(2)開始自動測試,包括如下步驟(A)所述測試自動機進入空閑設置狀態;(B)裝入步驟(1)中的誘導測試案例;(C)重播步驟(1)記錄的人工輸入的鍵碼;(D)所述測試自動機根據步驟(1)中按鍵發生時間的測試記錄,算出輸入鍵碼的間隔時間,作為鍵盤輸入回放的延遲,或隨機產生一個新時間作為鍵碼回放的延遲,產生一個新的衍生案例;(E)判斷測試案例是否執行完畢,若否,返回步驟(C)繼續重播下一個鍵碼,若是, 停止測試案例。所述步驟(D)中的每個衍生案例可存儲在外存儲器上。所述步驟(D)中隨機產生的新時間延遲可為事先設定的時間區段O-T內。所述步驟(C)中測試自動機可自動記錄鍵碼輸入順序。所述步驟(D)中的時間延遲可由智能延時控制器模塊根據用戶設置來決定。在執行所述步驟(C)鍵碼重播的同時,所述測試自動機的多進程控制器還可加載不同優先級的并行任務。
在執行所述并行任務時,執行隨機延遲。有益效果提高產品測試的覆蓋率本發明能根據人工定義有限的測試案例,在自動測試過程中自動衍生出無限的組合測試案例,以此更廣泛地覆蓋產品的實際使用狀況;減少人工成本采用本發明,用戶可以大量節省人工,只需開發有限量的代表性產品測試案例就可以獲得實現產品的有效測試。提高產品測試效率本發明自動測試機可以無需人工干涉,自動執行和完成全部產品測試。本發明可以很方便地引進各種加壓和強化測試條件,以提早發現產品的設計和制
造缺陷。本發明只需很少的資源,可以消除由上市產品與測試產品的不一性而產生的質量漏洞。
圖1為典型的微處理器電子產品系統框圖;圖2為測試誘導案例的鍵代碼和按鍵時間記錄生成流程圖;圖3為測試自動機的工作流程圖;圖4為測試自動機的并行任務執行流程圖。
具體實施例方式下面結合附圖和具體實施例,進一步闡明本發明,應理解這些實施例僅用于闡述本發明而不代表本發明的應用范圍,在閱讀了本發明之后,本領域技術人員對本發明的各種等價形式的修改均落于本申請所附權利要求所限定的范圍。本發明可用于計算機應用軟件和由計算機控制的電子產品。典型的系統如圖1所示,通常包括微處理器,計時器,用戶輸入和顯示,內存,外存儲盤,示蹤模塊和執行軟件等幾大部分。典型的此類電子產品有手機,個人電腦,音樂播放器等。這類產品在出廠上市之前,需要經過嚴格的質量檢驗。測試通常是通過人工操作 (鍵盤)輸入來模擬電子產品使用以期發現產品的缺陷。本發明是將該測試過程自動化并通過有限的引導性測試案例,來自動生成無限的衍生案例來有效的提高產品測試的覆蓋率。原理如下首先將本發明的測試自動機設置到記錄模式,然后根據產品的某種使用案例,人工輸入所需的鍵盤操作序列。在此操作過程中,測試自動機會記錄下用戶輸入的鍵代碼和按鍵的時間戳。在人工測試完成后,測試自動機便會生成一系列鍵代碼和按鍵時刻的記錄 (見下表)。
測試誘導案例代碼和日期(案例文件頭)輸入鍵碼1kkkkkkkk(鍵碼發生時間)輸入鍵碼—2ΠΙΠΙΠΙΠΙΠΙΠΙΠΙΠΙ (鍵碼發生時間)輸入鍵碼—ηnnnnnnnn(鍵碼發生時間)
該測試記錄被稱為誘導測試案例。測試自動機將利用誘導測試案例自動產生無數的衍生案例。在產品的不同使用模式和操作條件下,重復該記錄過程,就可得到一些有代表性的產品衍生案例集合。每個衍生案例可以作為單獨的計算機文件記錄,存在系統的外暫存器上(如硬盤或數碼卡等)。在開始記錄測試案例前,自動機會先進入一個“空閑設置狀態”。所有的測試案例記錄都是從該起始狀態開始執行。圖2給出了測試自動機誘導測試案例生成的流程圖測試案例開始后,記錄輸入的鍵碼和發生時間,然后判斷測試案例是否結束,如沒有結束則繼續記錄輸入的鍵碼和發生時間,如已經結束則生成誘導測試案例文件, 最后結束案例記錄。如圖3所示,測試自動機在終結一個誘導測試案例和開始一個新誘導測試案例時,會首先進入空閑設置狀態,在該狀態下,裝入新誘導測試案例開始執行。測試自動機的控制軟件將會調用每個誘導測試案例,重播記錄的人工(鍵盤)輸入,以實現產品的自動測試。在自動測試模式時,測試自動機有兩個工作模式1)重復工作模式;2)隨機工作模式。在重復工作模式時,自動機會根據誘導測試案例的鍵碼的順序時間記錄,算出輸入鍵的間隔時間,作為鍵盤輸入回放的延遲。該測試模式可以完整地重復和再現之前的人工測試操作實驗環境。在隨機工作模式時,自動機在回放誘導測試案例的鍵碼的順序記錄時,不再根據原記錄的時間計算延遲,代之以事先設定的(O-T)的時間區段內,隨機地產生一個新時間作為鍵碼回放的新延遲。這樣,在隨機工作模式下,即使測試自動機重復同一個誘導測試案例,由于每次隨機產生的不同的新的延時,自動機可以自動地衍生出無數的新測試案例。測試自動機在重播用戶輸入的測試案例時,會自動記錄下鍵碼輸入的順序和隨機的延時時間,存于測試產生的衍生案例文件中,供以后產品缺陷分析時回放。測試自動機的重復工作模式和隨機工作模式由智能延時控制器模塊根據用戶設置來決定,從而產生相應的時間延遲。除了利用鍵碼重播時的隨機延時來衍生不同的測試案例外,自動機還可以在測試過程中,對被測產品制造不同的隨機負載來暴露產品的潛在缺陷。當測試自動機在播放誘導測試案例的同時,其多進程控制器可同時發動一系列不同優先級的并行背景任務。通常選用3個不同優先級的任務。這些并行任務背景執行預先設置的過程,與誘導測試案例并行執行,從而為產品施加不同的負載。整個過程由圖4所示。其中,每一個背景任務,在執行其循環任務時,會定期地執行隨機延遲,以此來為系統帶來負載的變化和不確定性,以此來提高測試的覆蓋率。以下以手機為例,描述本發明的實際應用。選擇打電話作為范例的誘導測試案例。首先將手機中嵌入的測試自動機設置到記錄模式。然后,人工操作手機鍵盤正常外撥對方電話號碼。在電話接通后,保持規定的通話時間,然后按鍵中斷通話,完成測試誘導測試案例。在整個人工測試過程中,測試自動機截錄鍵盤碼和按鍵時間,生成打電話測試誘導測試案例記錄,存在手機文件系統內。在手機自動測試模式下,測試自動機將主屏選為“空閑設置狀態”。在此狀態下,裝入“打電話測試誘導測試案例記錄”,開始執行,回放同樣的人工輸入鍵順序。特別在“隨機工作模式”下,兩按鍵之間的間隔,由自動機隨機產生。在測試自動機重播打電話測試案例的同時,測試自動機可以同時啟動3個優先級分別為高中低的并行背景任務讓高優先級的任務做一些簡單簡短的虛設性的循環計算;讓中優先級的任務連續的播放MP3音樂;讓最低優先級的任務從網上下載文件或電子郵件等,配以自動機的隨機延遲等候,來為被測手機施加變化性的隨機負載。在完成整個打電話測試案例后,自動機可以選擇回到主屏空閑設置狀態,重復執行整個打電話測試案例;或從手機文件系統中,裝入一個不同功能的新誘導測試案例運行。即便自動機重復同一個打電話的誘導測試案例,由于輸入鍵發生時刻的隨機性, 導致每次測試運行的實際條件都有新的變化,以此來增加測試的覆蓋率,來挖掘出潛在的產品缺陷。
權利要求
1.一種用于由計算機控制的電子產品的自動測試方法,其特征在于包括如下步驟(1)進行自動測試前的準備工作將測試自動機設為空閑設置狀態;測試案例開始;根據待測電子產品的一種使用模式人工輸入所需的鍵盤操作序列,所述測試自動機記錄人工輸入的鍵碼和按鍵的發生時間;判斷測試案例是否結束,若是,生成一系列鍵碼和按鍵發生時間的測試記錄,該測試記錄為誘導測試案例,若否,繼續記錄人工輸入的鍵碼和按鍵的發生時間;(2)開始自動測試,包括如下步驟(A)所述測試自動機進入空閑設置狀態;(B)裝入步驟(1)中的誘導測試案例;(C)重播步驟(1)記錄的人工輸入的鍵碼;(D)所述測試自動機根據步驟(1)中按鍵發生時間的測試記錄,算出輸入鍵碼的間隔時間,作為鍵盤輸入回放的延遲,或隨機產生一個新時間作為鍵碼回放的延遲,產生一個新的衍生案例;(E)判斷測試案例是否執行完畢,若否,返回步驟(C)繼續重播下一個鍵碼,若是,停止測試案例。
2.根據權利要求1所述用于由計算機控制的電子產品的自動測試方法,其特征在于 所述步驟(D)中的每個衍生案例存儲在外存儲器上。
3.根據權利要求1所述用于由計算機控制的電子產品的自動測試方法,其特征在于 所述步驟(D)中隨機產生的新時間延遲為事先設定的時間區段O-T內。
4.根據權利要求1所述用于由計算機控制的電子產品的自動測試方法,其特征在于 所述步驟(C)中測試自動機自動記錄鍵碼輸入順序。
5.根據權利要求1所述用于由計算機控制的電子產品的自動測試方法,其特征在于 所述步驟(D)中的時間延遲由智能延時控制器模塊根據用戶設置來決定。
6.根據權利要求1所述用于由計算機控制的電子產品的自動測試方法,其特征在于 在執行所述步驟(C)鍵碼重播的同時,所述測試自動機的多進程控制器還加載不同優先級的并行任務。
7.根據權利要求6所述用于由計算機控制的電子產品的自動測試方法,其特征在于 在執行所述并行任務時,執行隨機延遲。
全文摘要
本發明公開了一種用于由計算機控制的電子產品的自動測試方法,包括如下步驟測試自動機進入空閑設置狀態;裝入誘導測試案例;重播早先記錄的人工鍵碼輸入;測試自動機根據(按鍵)輸入發生時間的測試記錄,算出輸入鍵碼的間隔時間,作為鍵盤輸入回放的延遲,或隨機產生一個新時間作為鍵碼回放的延遲,由此產生一個新的衍生案例;判斷測試案例是否執行完畢,若否,繼續重播下一個鍵碼,若是,停止測試案例。本發明只需很少的資源,能根據人工產生的有限的測試案例,在自動測試過程中自動衍生出無限的組合測試案例,以此更廣泛地覆蓋產品的實際使用狀況;本發明能夠減少人工成本,提高產品測試效率,提早發現產品的設計和制造缺陷。
文檔編號G06F11/22GK102591754SQ201110020689
公開日2012年7月18日 申請日期2011年1月18日 優先權日2011年1月18日
發明者林野 申請人:智比特信息技術(鎮江)有限公司