一種基于模板的自動化測試工具及方法
【專利摘要】本發(fā)明涉及一種基于模板的自動化測試工具及方法。該測試工具包括:模板庫,用于存儲測試用的模板,所述模板包含源數(shù)據(jù)和比對模板;模板分發(fā)模塊,用于將模板庫中的源數(shù)據(jù)提交給被測系統(tǒng);文件讀取模塊,用于讀取被測系統(tǒng)(或稱被測程序)輸出的數(shù)據(jù)文件;數(shù)據(jù)比對模塊,用于將被測系統(tǒng)輸出的結(jié)果與模板庫中相應(yīng)的比對模板進(jìn)行比對;測試結(jié)果生成模塊,用于根據(jù)數(shù)據(jù)比對模塊的比對結(jié)果生成測試結(jié)果。本發(fā)明對被測系統(tǒng)功能的正確性是由事先準(zhǔn)備好的模板與其輸出的數(shù)據(jù)進(jìn)行比對而確定的,當(dāng)被測系統(tǒng)產(chǎn)生變更時,不需要對工具進(jìn)行修改,凡是具有特定格式并以文本文件作為輸入、輸出的系統(tǒng)均可以使用本發(fā)明的自動化測試工具進(jìn)行測試,應(yīng)用廣泛。
【專利說明】 一種基于模板的自動化測試工具及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件測試領(lǐng)域,具體地說,是一種基于模板進(jìn)行自動化測試的工具,以及采用該工具進(jìn)行測試的方法。
【背景技術(shù)】
[0002]軟件測試是用于驗證軟件質(zhì)量的活動。驗證的內(nèi)容包括軟件的功能特性以及包括性能以及安全等非功能特性。軟件測試的方法主要分手工測試與自動化測試兩種,后者高度依賴于自動化測試工具。自動化測試是軟件測試部門的一項日常工作,工具的選擇是自動化測試成敗的一項關(guān)鍵因素。在實踐中,針對自動化測試工具,測試部門通常有三種選項:自行開發(fā)、購買商業(yè)產(chǎn)品及采用開源工具。但是,針對單個測試項目自行開發(fā)測試工具通常費時費力,而商業(yè)產(chǎn)品和開源工具通常具有局限性,存在許多不能使用的測試場合。
[0003]現(xiàn)有技術(shù)中,還未見有使用基于模板進(jìn)行自動化測試的產(chǎn)品、設(shè)備和方法。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種基于模板的自動化測試工具及方法,測試以文本文件作為輸入輸出的系統(tǒng)。無論被測軟件輸出哪一種格式的文本文件,本發(fā)明均能對其進(jìn)行自動化測試,測試其功能的正確性。
[0005]為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0006]—種基于模板的自動化測試工具,其包括:
[0007]模板庫,用于存儲測試用的模板,所述模板包含源數(shù)據(jù)和比對模板;
[0008]模板分發(fā)模塊,用于將模板庫中的源數(shù)據(jù)提交給被測系統(tǒng);
[0009]文件讀取模塊,用于讀取被測系統(tǒng)(或稱被測程序)輸出的數(shù)據(jù)文件;
[0010]數(shù)據(jù)比對模塊,用于將被測系統(tǒng)輸出的結(jié)果與模板庫中相應(yīng)的比對模板進(jìn)行比對;
[0011]測試結(jié)果生成模塊,用于根據(jù)數(shù)據(jù)比對模塊的比對結(jié)果生成測試結(jié)果。
[0012]進(jìn)一步地,所述自動化測試工具還包括:
[0013]配置文件讀取模塊,用于讀取配置文件,并對配置文件的合法性進(jìn)行校驗;所述配置文件包含與模板相關(guān)的路徑信息,被測系統(tǒng)的相關(guān)輸入、輸出路徑信息,監(jiān)視被測系統(tǒng)輸出目錄的超時時長,發(fā)現(xiàn)被測系統(tǒng)輸出文件后等待的時長,以及生成日志時的相關(guān)信息;
[0014]菜單打印模塊,用于在所述配置文件讀取模塊對配置文件的合法性校驗通過后,將模板庫中支持的列表打印到標(biāo)準(zhǔn)輸出中供測試人員選擇。
[0015]進(jìn)一步地,所述自動化測試工具還包括:日志生成模塊,用于生成日志,以記錄數(shù)據(jù)比對模塊輸出的被測系統(tǒng)的輸出結(jié)果與比對模板的差異數(shù)據(jù)的相關(guān)信息。
[0016]進(jìn)一步地,所述測試結(jié)果生成模塊在比對結(jié)束后將比對結(jié)果生成測試報告,并存放在特定目錄中,供測試人員查看自動化測試結(jié)果和定位到出現(xiàn)異常的數(shù)據(jù)。
[0017]一種采用上述述測試工具的基于模板的自動化測試方法,其步驟包括:
[0018]I)將模板庫拷貝到部署有被測系統(tǒng)的服務(wù)器中,所述模板庫中的模板包含源數(shù)據(jù)和比對模板;
[0019]2)將模板庫中的源數(shù)據(jù)拷貝至被測系統(tǒng)的輸入目錄,同時將比對模板拷貝至一工程目錄,待被測系統(tǒng)輸出結(jié)束后與其進(jìn)行比對;
[0020]3)監(jiān)視被測系統(tǒng)的輸出目錄,待輸出結(jié)束后將該輸出目錄中的輸出文件拷貝至所述工程目錄,與所述工程目錄中的比對模板進(jìn)行比對;若兩者一致則認(rèn)為測試通過,若兩者不一致則測試不通過。
[0021]進(jìn)一步地,在被測系統(tǒng)啟動前,將模板庫與被測系統(tǒng)的輸入、輸出路徑填寫到配置文件中,所述配置文件包含與模板相關(guān)的路徑信息,被測系統(tǒng)的相關(guān)輸入、輸出路徑信息,監(jiān)視被測系統(tǒng)輸出目錄的超時時長,發(fā)現(xiàn)被測系統(tǒng)輸出文件后等待的時長,以及生成日志時的相關(guān)信息;同時對配置文件的合法性進(jìn)行校驗,在校驗通過后,將模板庫中支持的列表打印到標(biāo)準(zhǔn)輸出中供測試人員選擇。
[0022]進(jìn)一步地,步驟3)監(jiān)視被測系統(tǒng)的輸出目錄時,等待被測程序輸出的時長根據(jù)配置文件中設(shè)置的超時時間而定,在時間范圍內(nèi),若發(fā)現(xiàn)被測程序的輸出目錄中有文件生成,則中斷超時計時,轉(zhuǎn)而等待輸出完成。
[0023]進(jìn)一步地,步驟3)若被測系統(tǒng)輸出的結(jié)果與所述比對模板比對存在差異,則將兩者存在差異之處輸出,通過日志記錄出現(xiàn)差異數(shù)據(jù)的相關(guān)信息。
[0024]進(jìn)一步地,步驟3)在比對結(jié)束后將比對結(jié)果生成測試報告,并存放在特定目錄中,供測試人員查看自動化測試結(jié)果和定位到出現(xiàn)異常的數(shù)據(jù)。
[0025]本發(fā)明的優(yōu)點和積極效果:
[0026]由于本發(fā)明中,對被測系統(tǒng)功能的正確性是由事先準(zhǔn)備好的模板與其輸出的數(shù)據(jù)進(jìn)行比對而確定的。因此當(dāng)被測系統(tǒng)產(chǎn)生變更時,不需要對工具進(jìn)行修改,僅對相當(dāng)于預(yù)期結(jié)果的比對模板進(jìn)行修改便能適應(yīng)被測系統(tǒng)的變更,使自動化測試維護(hù)的技術(shù)門檻變低,更易于維護(hù)。同時比對模板的內(nèi)容無指定格式,凡是具有特定格式并以文本文件作為輸入、輸出的系統(tǒng)均可以使用本發(fā)明的自動化測試工具進(jìn)行測試,應(yīng)用廣泛。
【專利附圖】
【附圖說明】
[0027]圖1是本發(fā)明的自動化測試工具的數(shù)據(jù)流圖;
[0028]圖2是模板分發(fā)模塊的處理流程圖;
[0029]圖3是數(shù)據(jù)比對模塊的處理流程圖。
【具體實施方式】
[0030]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面通過具體實施例和附圖,對本發(fā)明做進(jìn)一步說明。
[0031]圖1是本發(fā)明的自動化測試工具的數(shù)據(jù)流圖。從圖1中可以看出,本發(fā)明的自動化測試工具包括:模板庫、配置文件讀取模塊、菜單打印模塊、模板分發(fā)模塊、文件讀取模塊、數(shù)據(jù)比對模塊、日志生成模塊與測試結(jié)果生成模塊。其中菜單打印模塊、模板分發(fā)模塊、文件讀取模塊與用戶和被測系統(tǒng)產(chǎn)生交互。
[0032]圖1中的模板庫中存儲測試用的模板,模板分為源數(shù)據(jù)和比對模板。源數(shù)據(jù)用于提交給被測系統(tǒng),被測系統(tǒng)根據(jù)同一批源數(shù)據(jù)處理出的結(jié)果應(yīng)相同或具有相同的特性。比對模板用于對被測系統(tǒng)輸出數(shù)據(jù)進(jìn)行測試,為該次測試的預(yù)期結(jié)果。
[0033]根據(jù)被測程序不同,源數(shù)據(jù)可為任何可被被測系統(tǒng)接收的文件。文件可由測試人員手工創(chuàng)建,或由其他與被測程序存在接口關(guān)系的系統(tǒng)生成。當(dāng)被測系統(tǒng)發(fā)生版本變更時,若被測系統(tǒng)與產(chǎn)生源數(shù)據(jù)的系統(tǒng)之間的接口沒有發(fā)生改變,無需對源數(shù)據(jù)中的文件進(jìn)行修改,可直接使用之前的源數(shù)據(jù)文件進(jìn)行新版本的測試;若被測系統(tǒng)與產(chǎn)生源數(shù)據(jù)的系統(tǒng)之間的接口發(fā)生改變,則需要根據(jù)變更內(nèi)容對源數(shù)據(jù)文件進(jìn)行手工更新,或由新的接口系統(tǒng)生成新的源數(shù)據(jù)文件。
[0034]比對模板為文本格式的文件。作為測試被測程序的預(yù)期結(jié)果,比對模板為被測系統(tǒng)在不發(fā)生異常的情況下產(chǎn)生的輸出,因此需要與源數(shù)據(jù)存在對應(yīng)關(guān)系。比對模板可以由測試人員根據(jù)被測系統(tǒng)的處理邏輯手工創(chuàng)建,也可將源數(shù)據(jù)交由被測程序處理,在保證處理結(jié)果正確的情況下,將輸出結(jié)果作為比對模板供后續(xù)版本測試使用。若被測程序版本發(fā)生變更,可根據(jù)變更內(nèi)容手動修改比對模板文件,使其能夠適應(yīng)新版本的被測程序的測試需要。
[0035]圖1中的配置文件讀取模塊與菜單打印模塊在工具初始化時完成,配置文件中包括模板相關(guān)的路徑信息,被測系統(tǒng)的相關(guān)輸入、輸出路徑信息,監(jiān)視被測系統(tǒng)輸出目錄的超時時長,發(fā)現(xiàn)被測系統(tǒng)輸出文件后等待的時長,以及生成日志時的相關(guān)信息。工具啟動后,配置文件讀取模塊會對配置文件的合法性進(jìn)行校驗,校驗通過后,會將模板庫中支持的列表通過菜單打印模塊打印到標(biāo)準(zhǔn)輸出中供測試人員選擇。若校驗不合法則直接提示異常,將異常存入日志文件后工具退出。
[0036]測試人員(即圖中“用戶”)從標(biāo)準(zhǔn)輸入中選擇需要測試的內(nèi)容后,進(jìn)入模板分發(fā)模塊。模板分發(fā)模塊的處理流程圖如圖2所示。本發(fā)明在分發(fā)模板之前會檢查被測程序輸入路徑的相關(guān)目錄是否存在,若不存在則創(chuàng)建目錄,若存在則繼續(xù)檢查目錄是否為空。為保證測試的準(zhǔn)確性,若目錄不為空,則清空目錄,若為空則將源數(shù)據(jù)輸入該目錄中,即輸入給被測程序,同時等待被測程序輸出。等待被測程序輸出的時長根據(jù)配置文件中設(shè)置的超時時間而定,在時間范圍內(nèi),若發(fā)現(xiàn)被測程序的輸出目錄中有文件生成,則中斷超時計時,轉(zhuǎn)而等待輸出完成,該時間也在配置文件中進(jìn)行配置。在輸出等待時間結(jié)束后,本發(fā)明將被測程序輸出數(shù)據(jù)與預(yù)先準(zhǔn)備好的比對模板拷貝至本發(fā)明的工程目錄中,由數(shù)據(jù)比對模塊進(jìn)行后續(xù)的比對操作。
[0037]比對流程如圖3所示,具體如下:
[0038](I)將被測程序的輸出數(shù)據(jù)與比對模板數(shù)據(jù)讀入內(nèi)存中,根據(jù)數(shù)據(jù)的條數(shù)分別實例化(實例化是指將類轉(zhuǎn)化為一個實體,以便對類進(jìn)行一系列相關(guān)的操作)一個相同類的兩個對象數(shù)組,數(shù)組的元素個數(shù)與數(shù)據(jù)的條數(shù)相等,并將所有對象的成員flag初始化為O。Flag的意義在于標(biāo)識該條數(shù)據(jù)是否參與過比對。
[0039](2)根據(jù)被測程序輸出數(shù)據(jù)中的唯一標(biāo)識在預(yù)先準(zhǔn)備好的比對樣本即比對模板中遍歷,尋找唯一標(biāo)識相同的數(shù)據(jù),即圖中的“根據(jù)數(shù)據(jù)中的唯一標(biāo)識遍歷比對樣本中secflag不為I的數(shù)據(jù)”,其中secf lag表示是否對被測系統(tǒng)輸出的數(shù)據(jù)進(jìn)行模糊匹配,當(dāng)secflag為I時表示需要模糊匹配,反之為不需要。找到匹配數(shù)據(jù)后,將對象的成員flag置為1,標(biāo)識其已經(jīng)參與過比對。之后根據(jù)分隔符將數(shù)據(jù)逐字段分開,判斷兩方數(shù)據(jù)的字段數(shù)是否一致,若不一致則認(rèn)為該條數(shù)據(jù)測試失敗,為異常數(shù)據(jù)。若字段數(shù)一致,則逐字段進(jìn)行比對,測試被測程序的輸出數(shù)據(jù)是否正確。
[0040](3)通過被測程序輸出數(shù)據(jù)中的唯一標(biāo)識在比對模板中查找結(jié)束后,檢查是否仍有未參與比對的數(shù)據(jù),即對象的成員flag = O的數(shù)據(jù),將這些數(shù)據(jù)與需要模糊匹配的(即對象成員secflag為I)數(shù)據(jù)合并進(jìn)行模糊匹配。模糊匹配時,根據(jù)模板數(shù)據(jù)中標(biāo)記為通配符的字段位置將被測程序輸出數(shù)據(jù)中對應(yīng)字段的內(nèi)容刪除,再以被測程序輸出數(shù)據(jù)的整條數(shù)據(jù)作為關(guān)鍵詞在模板中遍歷,若存在相同數(shù)據(jù)則認(rèn)為測試成功,否則認(rèn)為失敗。
[0041]另外,在比對結(jié)束后,本發(fā)明會對比對后的結(jié)果進(jìn)行總結(jié),生成測試報告供測試人員查看。報告中記錄測試通過和失敗的數(shù)據(jù)數(shù)量,并根據(jù)這些數(shù)據(jù)其計算出測試的通過率,對于測試失敗的數(shù)據(jù),會顯示該數(shù)據(jù)的明細(xì)信息,包括該數(shù)據(jù)的文件名、該數(shù)據(jù)所在的行號及出現(xiàn)異常的具體字段信息。
[0042]本發(fā)明對環(huán)境的要求是:本發(fā)明的自動化測試工具與被測程序需部署在同一服務(wù)器中,在被測程序正常運(yùn)行后仍有2G內(nèi)存及2G硬盤剩余。
[0043]以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述為準(zhǔn)。
【權(quán)利要求】
1.一種基于模板的自動化測試工具,其特征在于,包括: 模板庫,用于存儲測試用的模板,所述模板包含源數(shù)據(jù)和比對模板; 模板分發(fā)模塊,用于將模板庫中的源數(shù)據(jù)提交給被測系統(tǒng); 文件讀取模塊,用于讀取被測系統(tǒng)輸出的數(shù)據(jù)文件; 數(shù)據(jù)比對模塊,用于將被測系統(tǒng)輸出的結(jié)果與模板庫中相應(yīng)的比對模板進(jìn)行比對; 測試結(jié)果生成模塊,用于根據(jù)數(shù)據(jù)比對模塊的比對結(jié)果生成測試結(jié)果。
2.如權(quán)利要求1所述的基于模板的自動化測試工具,其特征在于,還包括: 配置文件讀取模塊,用于讀取配置文件,并對配置文件的合法性進(jìn)行校驗;所述配置文件包含與模板相關(guān)的路徑信息,被測系統(tǒng)的相關(guān)輸入、輸出路徑信息,監(jiān)視被測系統(tǒng)輸出目錄的超時時長,發(fā)現(xiàn)被測系統(tǒng)輸出文件后等待的時長,以及生成日志時的相關(guān)信息; 菜單打印模塊,用于在所述配置文件讀取模塊對配置文件的合法性校驗通過后,將模板庫中支持的列表打印到標(biāo)準(zhǔn)輸出中供測試人員選擇。
3.如權(quán)利要求1或2所述的基于模板的自動化測試工具,其特征在于:還包括日志生成模塊,用于生成日志,以記錄數(shù)據(jù)比對模塊輸出的被測系統(tǒng)的輸出結(jié)果與比對模板的差異數(shù)據(jù)的相關(guān)信息。
4.如權(quán)利要求1或2所述的基于模板的自動化測試工具,其特征在于:所述測試結(jié)果生成模塊在比對結(jié)束后將比對結(jié)果生成測試報告,并存放在特定目錄中,供測試人員查看自動化測試結(jié)果和定位到出現(xiàn)異常的數(shù)據(jù)。
5.一種采用權(quán)利要求1所述測試工具的基于模板的自動化測試方法,其步驟包括: 1)將模板庫拷貝到部署有被測系統(tǒng)的服務(wù)器中,所述模板庫中的模板包含源數(shù)據(jù)和比對模板; 2)將模板庫中的源數(shù)據(jù)拷貝至被測系統(tǒng)的輸入目錄,同時將比對模板拷貝至一工程目錄,待被測系統(tǒng)輸出結(jié)束后與其進(jìn)行比對; 3)監(jiān)視被測系統(tǒng)的輸出目錄,待輸出結(jié)束后將該輸出目錄中的輸出文件拷貝至所述工程目錄,與所述工程目錄中的比對模板進(jìn)行比對;若兩者一致則認(rèn)為測試通過,若兩者不一致則測試不通過。
6.如權(quán)利要求5所述的基于模板的自動化測試方法,其特征在于:所述源數(shù)據(jù)為任何可被被測系統(tǒng)接收的文件,由測試人員手工創(chuàng)建,或由其他與被測系統(tǒng)存在接口關(guān)系的系統(tǒng)生成;所述比對模板為被測系統(tǒng)在不發(fā)生異常的情況下產(chǎn)生的輸出,由測試人員根據(jù)被測系統(tǒng)的處理邏輯手工創(chuàng)建,或者將源數(shù)據(jù)交由被測系統(tǒng)處理,將輸出的正確處理結(jié)果作為比對模板供后續(xù)版本測試使用。
7.如權(quán)利要求5所述的基于模板的自動化測試方法,其特征在于:在被測系統(tǒng)啟動前,將模板庫與被測系統(tǒng)的輸入、輸出路徑填寫到配置文件中,所述配置文件包含與模板相關(guān)的路徑信息,被測系統(tǒng)的相關(guān)輸入、輸出路徑信息,監(jiān)視被測系統(tǒng)輸出目錄的超時時長,發(fā)現(xiàn)被測系統(tǒng)輸出文件后等待的時長,以及生成日志時的相關(guān)信息;同時對配置文件的合法性進(jìn)行校驗,在校驗通過后,將模板庫中支持的列表打印到標(biāo)準(zhǔn)輸出中供測試人員選擇。
8.如權(quán)利要求5所述的基于模板的自動化測試方法,其特征在于:步驟3)監(jiān)視被測系統(tǒng)的輸出目錄時,等待被測系統(tǒng)輸出的時長根據(jù)配置文件中設(shè)置的超時時間而定,在時間范圍內(nèi),若發(fā)現(xiàn)被測系統(tǒng)的輸出目錄中有文件生成,則中斷超時計時,轉(zhuǎn)而等待輸出完成。
9.如權(quán)利要求5所述的基于模板的自動化測試方法,其特征在于,步驟3)進(jìn)行所述比對的方法是: 1)將被測系統(tǒng)的輸出數(shù)據(jù)與比對模板數(shù)據(jù)讀入內(nèi)存中,根據(jù)數(shù)據(jù)的條數(shù)分別實例化一個相同類的兩個對象數(shù)組,數(shù)組的元素個數(shù)與數(shù)據(jù)的條數(shù)相等,并將所有對象的成員flag初始化為O, Flag的意義在于標(biāo)識該條數(shù)據(jù)是否參與過比對; 2)根據(jù)被測系統(tǒng)輸出數(shù)據(jù)中的唯一標(biāo)識在比對模板中遍歷,尋找唯一標(biāo)識相同的數(shù)據(jù),找到匹配數(shù)據(jù)后,將對象的成員flag置為1,標(biāo)識其已經(jīng)參與過比對;之后根據(jù)分隔符將數(shù)據(jù)逐字段分開,判斷兩方數(shù)據(jù)的字段數(shù)是否一致;若不一致則認(rèn)為該條數(shù)據(jù)測試失敗,為異常數(shù)據(jù);若字段數(shù)一致,則逐字段進(jìn)行比對,測試被測系統(tǒng)的輸出數(shù)據(jù)是否正確; 3)通過被測系統(tǒng)輸出數(shù)據(jù)中的唯一標(biāo)識在比對模板中查找結(jié)束后,檢查是否仍有未參與比對的數(shù)據(jù),即對象的成員flag = O的數(shù)據(jù),將這些數(shù)據(jù)與需要模糊匹配的數(shù)據(jù)合并進(jìn)行模糊匹配;模糊匹配時,根據(jù)模板數(shù)據(jù)中標(biāo)記為通配符的字段位置將被測系統(tǒng)輸出數(shù)據(jù)中對應(yīng)字段的內(nèi)容刪除,再以被測系統(tǒng)輸出數(shù)據(jù)的整條數(shù)據(jù)作為關(guān)鍵詞在模板中遍歷,若存在相同數(shù)據(jù)則認(rèn)為測試成功,否則認(rèn)為失敗。
10.如權(quán)利要求5所述的基于模板的自動化測試方法,其特征在于:步驟3)中若被測系統(tǒng)輸出的結(jié)果與所述比對模板比對存在差異,則將兩者存在差異之處輸出,通過日志記錄出現(xiàn)差異數(shù)據(jù)的相關(guān)信息;步驟3)在比對結(jié)束后將比對結(jié)果生成測試報告,并存放在特定目錄中,供測試人員查看自動化測試結(jié)果和定位到出現(xiàn)異常的數(shù)據(jù)。
【文檔編號】G06F11/36GK104317713SQ201410582580
【公開日】2015年1月28日 申請日期:2014年10月27日 優(yōu)先權(quán)日:2014年10月27日
【發(fā)明者】趙凱, 王靜 申請人:北京銳安科技有限公司