專利名稱:終端系統(tǒng)的錄制回放模式自動化測試方法
終端系統(tǒng)的錄制回放模式自動化測試方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種嵌入式系統(tǒng)的功能測試,特別是指 一種可以測試嵌入
式系統(tǒng)的GUI功能的錄制回放模式自動化測試方法。背景技術(shù):
嵌入式系統(tǒng)的測試中,功能測試占90%以上的比重。因此,實現(xiàn)功能測 試的自動化,對于降低測試成本,提高產(chǎn)品的質(zhì)量起著舉足輕重的作用。
功能自動化測試方法是相對手工測試而言的,主要是通過軟件測試工具、 腳本等來實現(xiàn),具有良好的可操作行性、可重復(fù)性和高效性等特點。目前的 功能測試軟件只實現(xiàn)了對C/S (客戶端/服務(wù)器端)、B/S (服務(wù)器端/客戶端) 及WEB(互聯(lián)網(wǎng))等軟件功能測試,且都是基于在特定的Windows平臺或Linux 平臺上實現(xiàn)的,不適合嵌入式系統(tǒng)如WindowsCE的功能測試。此外,所有功 能測試工具均不支持任何協(xié)議,無法滿足對終端嵌入式系統(tǒng)的RDP、 ICA、 Telnet等協(xié)議的功能測試。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供從嵌入式系統(tǒng)的功能測試入手,能 滿足嵌入式系統(tǒng)的RDP、 ICA、 Telnet等協(xié)議的功能測試的終端系統(tǒng)的錄制回 放模式自動化測試方法。
本發(fā)明是通過以下技術(shù)方案解決上述技術(shù)問題的 一種終端系統(tǒng)的錄制 回放模式自動化測試方法,包括依次進行的下述步驟
步驟10:對用戶的實際操作進行錄制,該實際操作包括鼠標操作,鍵盤 操作,然后自動生成用戶容易理解的腳本,腳本可手工編輯;
步驟20:步驟10錄制的過程中,插入檢查點,自動測試時需檢查此點的 狀態(tài);
步驟30:將步驟10生成的腳本回放,并自動執(zhí)行測試,記錄檢查點的狀態(tài);
步驟40:腳本回放完畢,對記錄的檢查點狀態(tài)進行分析,并匯總 測試結(jié)果,自動生成測試4艮告。 該發(fā)明進一步具體為 所述步驟10具體包括依次進行的下述步驟 程序開始于步驟102;
步驟104:用戶開始實際操作,進行錄制,當用戶對對象進行操作時,每 個服務(wù)端都將會產(chǎn)生相應(yīng)的窗口事件,使用該窗口事件向客戶端通知應(yīng)用程 序用戶界面中的更改;
步驟106:服務(wù)端發(fā)送窗口事件給客戶端;
步驟108:執(zhí)行步驟104的同時客戶端啟動事件通知掛鉤,監(jiān)視服務(wù)端發(fā) 送窗口事件給客戶端的窗口事件通知,客戶端通過事件通知掛鉤選擇接收的 窗口事件,并對選擇的事件進行相應(yīng)的處理,通過對象接口獲取的服務(wù)端的 信息,同時進入步驟110及步驟112;
步驟110:生成腳本,然后進入步驟114;
步驟112:生成影射文件,然后進入步驟114;
程序結(jié)束于步驟114。
所述步驟106中,具體包括下述步驟服務(wù)端發(fā)送窗口事件,將窗口事件 通知廣播給所有感興趣的客戶端,服務(wù)端將會調(diào)用事件通知函數(shù),并傳遞標 識事件類型的信息和應(yīng)用該事件的UI元素,客戶端可以使用此信息來檢索UI 元素的一個對象,并收集更多信息。
所述步驟108中,當事件的生成匹配指定的條件時,服務(wù)端將調(diào)用客戶端 的回調(diào)函數(shù),此時客戶端采用回調(diào)函數(shù)來接收事件通知,并處理事件。
所述步驟112具體包括下述步驟在窗口事件桂鉤的回調(diào)函數(shù)內(nèi),獲取發(fā) 出窗口事件通知的對象接口,并獲取對象的屬性,將這些屬性傳到映射生成 器內(nèi)生成映射文件。
所述映射文件包含了對象的詳細信息及對象的序號。
所述步驟110具體包括下述步驟在窗口事件掛鉤的回調(diào)函數(shù)內(nèi),獲取發(fā)出窗口事件通知的對象接口,并獲取對象的屬性,同樣將這些屬性及對對象 的操作傳送到腳本生成器中,腳本生成器實現(xiàn)腳本語句的生成及輸出。
所述腳本語句的生成采用了兩種腳本生成方法線性腳本生成方法和關(guān) 鍵字驅(qū)動腳本生成方法。
所述步驟30具體包括依次進行的下述步驟
步驟302:腳本解析器把腳本語句從腳本文件中解析出來,分析出腳本語 句的各個分量,如控件名稱和序號,事件類型等等相關(guān)信息;
步驟304:映射解析器用從腳本語句中得到的控件名稱和序號在映射文件 中查找到該控件的詳細屬性信息和控件的唯一標識;
步驟306:將控件的唯一標識,控件的屬性信息及對控件的操作傳遞給事 件回放器,事件回放器根據(jù)控件的唯一標識找到控件的接口,并根據(jù)控件的 操作對控件發(fā)出相應(yīng)的操作消息,同時可插入控件的屬性檢查點;
步驟308:模擬鍵盤和鼠標輸入,當遇到不完全支持Windows消息和接口 方法的控件,可以采用模擬鍵盤和鼠標的輸入;
程序結(jié)束于步驟310。
所述步驟40具體包括依次進行的下述步驟
步驟402:記錄測試運行時系統(tǒng)當前時間、操作者及測試總運行時間; 步驟404:當腳本回放失敗時,記錄錯誤信息,可定位到腳本的位置; 步驟406:統(tǒng)計;險查點狀態(tài),當^r查點^r證失敗時,記錄4普誤信息,并記 錄預(yù)期與實際的結(jié)果對比;
步驟408:統(tǒng)計每條腳本運行的狀態(tài)、運行結(jié)果及運行的時間; 步驟410:顯示最后測試結(jié)果成功或失??;
步驟412:將上述測試結(jié)果以文本的形式顯示,并用一定的顏色加以區(qū)分, 支持打印結(jié)果。
本發(fā)明終端系統(tǒng)的錄制回放^^式自動化測試方法的優(yōu)點在于由于這種 方法基于顯示控件操作實現(xiàn)自動化測試,而與操作系統(tǒng)無關(guān),所以可適用于 終端嵌入式系統(tǒng)、也可以適用于非嵌入式系統(tǒng)的自動化功能測試;采用自動 生成腳本方式,測試的操作以腳本的形式存在,同時為測試結(jié)果提供有力的檢查點;ICA、 RDP是基于圖像的傳輸協(xié)議,將服務(wù)器的圖像資源以偵的方式 傳遞到客戶端使用,而本方法是將服務(wù)器的圖像資源以偵的方式傳遞到客戶 端使用,而這種方法也是基于顯示控件實現(xiàn)自動化操作的,所以該測試方法 支持ICA、 RDP等協(xié)議功能的測試;對于GUI功能的測試提供可靠的檢查點; 功能自動化測試能節(jié)省測試的時間,避免手工測試造成的4昔誤,從而縮短了 開發(fā)的周期并確保了產(chǎn)品的質(zhì)量。
下面參照附圖結(jié)合實施例對本發(fā)明作進一 步的描述。 圖l是本發(fā)明終端系統(tǒng)的錄制回放模式自動化測試方法的流程圖。 圖2是圖1中步驟10的具體流程圖。 圖3是圖1中步驟30的具體流程圖。 圖4是圖1中步驟40的具體流程圖。
具體實施方式
請參閱圖1,本發(fā)明終端系統(tǒng)的錄制回放模式自動化測試方法包括依次進 行的下述步驟
步驟10:對用戶的實際操作進行錄制,該實際操作包括鼠標操作,鍵盤 操作,然后自動生成用戶容易理解的腳本,腳本可手工編輯;
步驟20:步驟10錄制的過程中,插入檢查點,自動測試時需檢查此點的 狀態(tài);
步驟30:將步驟10生成的腳本回放,并自動執(zhí)行測試,記錄檢查點的狀
態(tài);
步驟40:腳本回放完畢,對記錄的檢查點狀態(tài)進行分析,并匯總測試結(jié) 果,自動生成測試^^告。
請參閱圖2,所述步驟10具體包括依次進行的下述步驟 程序開始于步驟102。
步驟104:用戶開始實際操作,進行錄制,當用戶對對象進行操作時,每 個對象/窗口 (也稱服務(wù)端)都將會產(chǎn)生相應(yīng)的窗口事件(WinEvent),使用 該窗口事件向客戶端通知應(yīng)用程序用戶界面中的更改,例如,創(chuàng)建并部署對象,或者更改UI元素的名稱、狀態(tài)或值; 步驟106:服務(wù)端發(fā)送窗口事件給客戶端;
步驟108:執(zhí)行步驟104的同時客戶端啟動事件通知掛鉤(Windows Hook),監(jiān)視服務(wù)端發(fā)送窗口事件給客戶端的窗口事件通知,客戶端通過事 件通知掛鉤選擇接收的窗口事件,并對選擇的事件進行相應(yīng)的處理,通過對 象接口獲取的服務(wù)端的信息,同時進入步驟110及步驟112;
步驟110:生成腳本,然后進入步驟114;
步驟112:生成映射文件,然后進入步驟114;
程序結(jié)束于步驟114。
所述步驟106中,具體包括下述步驟服務(wù)端發(fā)送窗口事件,將窗口事件 通知廣播給所有感興趣的客戶端,服務(wù)端將會調(diào)用事件通知函數(shù),并傳遞標 識事件類型的信息和應(yīng)用該事件的UI元素,客戶端可以使用此信息來檢索UI 元素的一個對象,并收集更多信息。
所述步驟108中,客戶端接收窗口事件時,#4居測試對象的不同,用 戶可以自己去選擇接收有效事件,有以下幾種選擇接收所有事件或一組 特殊事件;接收來自所有線程或某個特定線程的事件;接收來自所有進程或 某個特定進程的事件;處理進程中或進程外的事件。
當事件的生成匹配指定的條件時,服務(wù)端將調(diào)用客戶端的回調(diào)函數(shù),此 時客戶端采用回調(diào)函數(shù)來接收事件通知,并處理事件。
所述步驟112具體包括下述步驟
在窗口事件掛鉤的回調(diào)函數(shù)內(nèi),獲取發(fā)出窗口事件通知的對象接口,并 獲取對象的名稱、類型......等屬性,將這些屬性傳到映射生成器內(nèi)生成映射文件。
映射文件為形如F^N, V, R, S, L, D, K, A, P, C......, n〃的集
合,其中N名稱,V值,R角色,S狀態(tài),L位置,D描述,K快捷4建,A默認動 作,P父窗口, C類,n序號等。文件結(jié)構(gòu)包含了對象的詳細信息及對象的序 號。
對象唯一標識的方法首先激活對象所在的窗口,對于同一窗口的對象,通過"角色-名字"識別,而當遇到同類同名對象時,再通過生成對象序號來識 別,序號從0開始,依次加l。
所述步驟110具體包括下述步驟
在窗口事件掛鉤的回調(diào)函數(shù)內(nèi),獲取發(fā)出窗口事件通知的對象接口,并 獲取對象的名稱、類型......等屬性,同樣將這些屬性及對對象的操作傳送到
腳本生成器中,腳本生成器實現(xiàn)腳本語句的生成及輸出。
所述腳本語句的生成采用線性腳本生成方法。
線性腳本生成方法線性腳本是錄制手工執(zhí)行的測試時得到的腳本,這 種線性腳本包含所有的擊鍵、功能鍵、控制測試軟件的控制鍵及輸入數(shù)據(jù)的 數(shù)字鍵等。將錄制的事件和對象的屬性以及從映射文件查找到的接收該事件 的對象序號轉(zhuǎn)化為腳本語句,且每條腳本語句都應(yīng)對其設(shè)置當前窗口,方便 步驟30中腳本回放的應(yīng)用。
步驟20中插入檢查點的類型包括下述幾種
文本檢查點可獲取檢查點從單行或多行編輯框及其他對象中捕獲并比 較字母、文字和數(shù)字的值。包括CheckBox、 Generic GroupBox、 Label、 PushButton、 RadioButton、 ToolBar、 Window等;
對象數(shù)據(jù)檢查點對對象中的數(shù)據(jù)進行驗證;
對象屬性檢查點添加此類檢查點后,將顯示出被捕獲的對象及其相應(yīng) 屬性的列表,然后從對象的列表中選擇想要檢查的屬性;
位圖檢查點可分析對比屏幕和屏幕區(qū)域圖像;
窗口存在檢查點對窗口是否如預(yù)期出現(xiàn)進行驗證;
音頻檢查點對預(yù)期出現(xiàn)的音頻頻率進行驗證。
請參閱圖3,所述步驟30具體包括依次進行的下述步驟
步驟302:腳本解析器把腳本語句從腳本文件中解析出來,分析出腳本語 句的各個分量,如控件名稱和序號,事件類型等等相關(guān)信息;
步驟304:映射解析器用/人腳本語句中得到的控件名稱和序號在映射文件 中查找到該控件的詳細屬性信息和控件的唯一標識;
步驟306:將控件的唯一標識,控件的屬性信息及對控件的操作傳遞給事
10件回放器,事件回放器根據(jù)控件的唯一標識找到控件的接口,并根據(jù)控件的
操作對控件發(fā)出相應(yīng)的操作消息,同時可插入控件的屬性檢查點;
步驟308:模擬鍵盤和鼠標輸入,當遇到不完全支持Windows消息和接口 方式的控件,可以采用模擬鍵盤和鼠標的輸入,GUI控件一般有兩種,一 種控件可以支持W i n d o w s直接發(fā)消息進行控制,或W i n d o w s有提供此 控件的接口函數(shù)進行控制,我們要通過程序自動操作這種控件,只需 要找準此控件的唯一標識,并針對它發(fā)送消息或調(diào)用Windows提供的 接口函數(shù),另外一種控件不支持Windows消息和接口方式,而鍵盤和 鼠標作為輸入方式,只能模擬鍵盤和鼠標的操作,才能通過程序自動 操作這種控件,如鼠標在屏幕的某某坐標執(zhí)行了點擊操作,將此操作 錄制到腳本中,下次運行時直接按此操作執(zhí)行; 程序結(jié)束于步驟310。
請參閱圖4,所述步驟40具體包括依次進行的下述步驟
步驟402:記錄測試運行時系統(tǒng)當前時間、操作者及測試總運行時間;
步驟404:當腳本回放失敗時,記錄錯誤信息,可定位到腳本的位置;
步驟406:統(tǒng)計4企查點狀態(tài),當檢查點-驗證失敗時,記錄錯誤信息,并記 錄預(yù)期與實際的結(jié)果對比;
步驟408:統(tǒng)計每條腳本運行的狀態(tài)、運行結(jié)果及運行的時間; 步驟410:顯示最后測試結(jié)果成功或失??;
步驟412:將上述測試結(jié)果以文本的形式顯示,并用一定的顏色加以區(qū)分, 支持打印結(jié)果。
雖然以上描述了本發(fā)明的具體實施方式
,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人 員應(yīng)當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā) 明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的 修飾以及變化,都應(yīng)當涵蓋在本發(fā)明的權(quán)利要求所保護的范圍內(nèi)。
權(quán)利要求
1.一種終端系統(tǒng)的錄制回放模式自動化測試方法,其特征在于包括依次進行的下述步驟步驟10對用戶的實際操作進行錄制,該實際操作包括鼠標操作,鍵盤操作,然后自動生成用戶容易理解的腳本,腳本可手工編輯;步驟20步驟10錄制的過程中,插入檢查點,自動測試時需檢查此點的狀態(tài);步驟30將步驟10生成的腳本回放,并自動執(zhí)行測試,記錄檢查點的狀態(tài);步驟40腳本回放完畢,對記錄的檢查點狀態(tài)進行分析,并匯總測試結(jié)果,自動生成測試報告。
2. 如權(quán)利要求1所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特征 在于所述步驟10具體包括依次進行的下述步驟程序開始于步驟102;步驟104:用戶開始實際操作,進行錄制,當用戶對對象進行操作時,每 個服務(wù)端都將會產(chǎn)生相應(yīng)的窗口事件,使用該窗口事件向客戶端通知應(yīng)用程 序用戶界面中的更改;步驟106:服務(wù)端發(fā)送窗口事件給客戶端;步驟108:執(zhí)行步驟104的同時客戶端啟動事件通知掛鉤,監(jiān)視服務(wù)端發(fā) 送窗口事件給客戶端的窗口事件通知,客戶端通過事件通知掛鉤選擇接收的 窗口事件,并對選擇的事件進行相應(yīng)的處理,通過對象接口獲取的服務(wù)端的 信息,同時進入步驟110及步驟112;步驟110:生成腳本,然后進入步驟114;步驟112:生成影射文件,然后進入步驟1W;程序結(jié)束于步驟114。
3. 如權(quán)利要求2所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特 征在于所述步驟106中,具體包括下述步驟服務(wù)端發(fā)送窗口事件,將窗口事件通知廣播給所有感興趣的客戶端,服務(wù)端將會調(diào)用事件通知函數(shù),并 傳遞標識事件類型的信息和應(yīng)用該事件的UI元素,客戶端可以使用此信息 來檢索UI元素的一個對象,并收集更多信息。
4. 如權(quán)利要求3所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特征 在于所述步驟108中,當事件的生成匹配指定的條件時,服務(wù)端將調(diào)用客戶 端的回調(diào)函數(shù),此時客戶端采用回調(diào)函數(shù)來接收事件通知,并處理事件。
5. 如權(quán)利要求2所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特征 在于所述步驟112具體包括下述步驟在窗口事件掛鉤的回調(diào)函數(shù)內(nèi),獲取 發(fā)出窗口事件通知的對象接口,并獲取對象的屬性,將這些屬性傳到映射生 成器內(nèi)生成映射文件。
6. 如權(quán)利要求5所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特征 在于所述映射文件包含了對象的詳細信息及對象的序號。
7. 如權(quán)利要求2所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特征 在于所述步驟110具體包括下述步驟在窗口事件掛鉤的回調(diào)函數(shù)內(nèi),獲取 發(fā)出窗口事件通知的對象接口,并獲取對象的屬性,同樣將這些屬性及對對 象的操作傳送到腳本生成器中,腳本生成器實現(xiàn)腳本語句的生成及輸出。
8. 如權(quán)利要求2所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特征 在于所述步驟30具體包括依次進行的下述步驟步驟302:腳本解析器把腳本語句從腳本文件中解析出來,分析出腳本語 句的各個分量,如控件名稱和序號,事件類型等等相關(guān)信息;步驟304:映射解析器用從腳本語句中得到的控件名稱和序號在映射文件 中查找到該控件的詳細屬性信息和控件的唯一標識;步驟306:將控件的唯一標識,控件的屬性信息及對控件的操作傳遞給事 件回放器,事件回放器根據(jù)控件的唯一標識找到控件的接口,并根據(jù)控件的 操作對控件發(fā)出相應(yīng)的操作消息,同時可插入控件的屬性檢查點;步驟308:模擬鍵盤和鼠標輸入,當遇到不完全支持Windows消息和接口 方法的控件,可以采用模擬鍵盤和鼠標的輸入;程序結(jié)束于步驟310。
9.如權(quán)利要求8所述的終端系統(tǒng)的錄制回放模式自動化測試方法,其特 征在于所述步驟40具體包括依次進行的下述步驟步驟402:記錄測試運行時系統(tǒng)當前時間、操作者及測試總運行時間; 步驟404:當腳本回放失敗時,記錄錯誤信息,可定位到腳本的位置; 步驟406:統(tǒng)計檢查點狀態(tài),當檢查點驗證失敗時,記錄錯誤信息,并記 錄預(yù)期與實際的結(jié)果對比;步驟408:統(tǒng)計每條腳本運行的狀態(tài)、運行結(jié)果及運行的時間; 步驟410:顯示最后測試結(jié)果成功或失敗;步驟412:將上述測試結(jié)果以文本的形式顯示,并用一定的顏色加以區(qū) 分,支持打印結(jié)果。
全文摘要
一種終端系統(tǒng)的錄制回放模式自動化測試方法,包括依次進行的下述步驟步驟10對用戶的實際操作進行錄制,該實際操作包括鼠標操作,鍵盤操作,然后自動生成用戶容易理解的腳本,腳本可手工編輯;步驟20步驟10錄制的過程中,插入檢查點,自動測試時需檢查此點的狀態(tài);步驟30將步驟10生成的腳本回放,并自動執(zhí)行測試,記錄檢查點的狀態(tài);步驟40腳本回放完畢,對記錄的檢查點狀態(tài)進行分析,并匯總測試結(jié)果,自動生成測試報告。本發(fā)明的優(yōu)點在于可適用于終端嵌入式系統(tǒng)及非嵌入式系統(tǒng)的自動化功能測試;且支持ICA、RDP等協(xié)議功能的測試;對于GUI功能的測試提供可靠的檢查點;節(jié)省測試的時間。
文檔編號G06F11/36GK101620564SQ200810071298
公開日2010年1月6日 申請日期2008年6月30日 優(yōu)先權(quán)日2008年6月30日
發(fā)明者偉 羅 申請人:福建升騰資訊有限公司