專利名稱:基于斷點(diǎn)的自動化測試方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種基于斷點(diǎn)的自動化測試方法及裝置。
背景技術(shù):
軟件測試,是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批 測試用例,并且利用上述測試用例運(yùn)行軟件,以發(fā)現(xiàn)軟件錯誤的過程。由于軟件測試直接關(guān) 系到軟件產(chǎn)品的質(zhì)量,因而如何更加全面有效地執(zhí)行軟件測試已被越來越多的軟件測試工作者關(guān)注。自動化測試方法,作為能夠更好輔助軟件測試的方法,在軟件測試中已占有一席 之地,目前正在逐步的完善和普及。自動化測試一般指軟件測試的自動化,可理解為通過執(zhí)行程序語言編制的測試腳 本、模擬測試用例、手工測試步驟,并記錄測試結(jié)果的過程。通常一個測試用例可以由一個 或多個腳本語言編寫的自動化測試腳本實(shí)現(xiàn)。為更好的發(fā)揮自動化測試優(yōu)勢,有效的利用 測試資源和節(jié)約測試時間,通常會采用自動化測試計劃來實(shí)現(xiàn)多個測試環(huán)境下多個測試腳 本的不間斷執(zhí)行。測試環(huán)境指對軟件系統(tǒng)進(jìn)行各類測試所基于的軟、硬件設(shè)備和配置。一般包括硬 件環(huán)境、網(wǎng)絡(luò)環(huán)境、操作系統(tǒng)環(huán)境、應(yīng)用服務(wù)器平臺環(huán)境、數(shù)據(jù)庫環(huán)境以及各種支撐環(huán)境等。目前,對自動化測試計劃的執(zhí)行,主要采用通過腳本解釋器啟動解析程序獲取自 動化測試計劃中的環(huán)境參數(shù)和測試腳本內(nèi)容,然后按順序依次執(zhí)行測試腳本并記錄相關(guān)測 試數(shù)據(jù)方法。但該方法在實(shí)際應(yīng)用過程中還存在以下不足1、在測試腳本執(zhí)行期間可能會出現(xiàn)程序異常中斷的情況,而腳本解釋器在重新執(zhí) 行自動化測試計劃時,只能通過修改自動化測試計劃中的測試腳本個數(shù)來避免以完成測試 的腳本重復(fù)執(zhí)行。2、由于有些自動化測試腳本執(zhí)行時間很長,特別是自動化測試腳本中包含了循環(huán) 執(zhí)行的測試步驟情況下,如果腳本執(zhí)行異常中斷,再次執(zhí)行時腳本解釋器只能從頭開始執(zhí) 行,即延長了測試時間又浪費(fèi)了測試環(huán)境。3、由于測試資源的限制,在執(zhí)行自動化程序過程中可能會有另一緊急任務(wù)爭奪自 動化測試資源,但目前自動化腳本解釋器只能夠預(yù)先設(shè)定程序斷點(diǎn),不能實(shí)現(xiàn)暫時停止自 動化測試,并在測試資源空閑是繼續(xù)執(zhí)行未完成測試的功能。目前,還缺乏克服上述不足的技術(shù)方案。
發(fā)明內(nèi)容
針對相關(guān)技術(shù)中存在的測試腳本解釋器只能逐條執(zhí)行腳本語句,無法對自動化測 試計劃執(zhí)行過程進(jìn)行記錄,以及無法對未執(zhí)行完成的自動化測試計劃由斷點(diǎn)位置恢復(fù)執(zhí)行 的問題而提出本發(fā)明,為此,本發(fā)明的主要目的在于提供一種改進(jìn)的基于斷點(diǎn)的測試方法 及裝置,以解決上述問題至少之一。
根據(jù)本發(fā)明的一個方面,提供了一種基于斷點(diǎn)的自動化測試方法。根據(jù)本發(fā)明的基于斷點(diǎn)的自動化測試方法包括在當(dāng)前測試計劃執(zhí)行期間,存儲 測試進(jìn)度信息,并將斷點(diǎn)所在的測試進(jìn)度信息作為斷點(diǎn)信息,其中,斷點(diǎn)信息包括測試場 景信息、測試腳本信息;獲取斷點(diǎn)信息,并在斷點(diǎn)信息所指示的位置繼續(xù)進(jìn)行當(dāng)前測試計 劃。根據(jù)本發(fā)明的另一方面,提供了一種基于斷點(diǎn)的自動化測試裝置。根據(jù)本發(fā)明的基于斷點(diǎn)的自動化測試裝置包括存儲單元、獲取單元、執(zhí)行單元, 其中,存儲單元,用于在當(dāng)前測試計劃執(zhí)行期間,存儲測試進(jìn)度信息,其中,測試進(jìn)度信息包 括斷點(diǎn)信息,斷點(diǎn)信息包括測試場景信息、測試腳本信息;獲取單元,用于從存儲單元中 獲取斷點(diǎn)信息;執(zhí)行單元,用于在斷點(diǎn)信息所指示的位置繼續(xù)進(jìn)行當(dāng)前測試計劃。通過本發(fā)明,在當(dāng)前測試計劃執(zhí)行期間,存儲測試進(jìn)度信息,將斷點(diǎn)所在的測試進(jìn) 度信息作為斷點(diǎn)信息,獲取上述斷點(diǎn)信息,并在斷點(diǎn)信息所指示的位置繼續(xù)進(jìn)行當(dāng)前測試 計劃。解決了相關(guān)技術(shù)中存在的測試腳本解釋器只能逐條執(zhí)行腳本語句,無法對自動化測 試計劃執(zhí)行過程進(jìn)行記錄,以及無法對未執(zhí)行完成的自動化測試計劃由斷點(diǎn)位置恢復(fù)執(zhí)行 的問題,進(jìn)而可以對測試腳本執(zhí)行進(jìn)度信息記錄,并能對未正常執(zhí)行完成的自動化測試計 劃,實(shí)現(xiàn)精確到測試步驟和循環(huán)變量的恢復(fù)。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1為自動化測試計劃的結(jié)構(gòu)示意圖;圖2為根據(jù)本發(fā)明實(shí)施例的基于斷點(diǎn)的自動化測試方法的流程圖;圖3為根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于斷點(diǎn)的自動化測試方法的詳細(xì)流程圖;圖4為根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于斷點(diǎn)的自動化測試方法中斷點(diǎn)腳本解析的 流程圖;圖5為根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于斷點(diǎn)的自動化測試方法中保存斷點(diǎn)信息的 流程圖;圖6為根據(jù)本發(fā)明實(shí)施例的基于斷點(diǎn)的自動化測試裝置的結(jié)構(gòu)框圖;圖7為根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于斷點(diǎn)的自動化測試裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式功能概述考慮到相關(guān)技術(shù)中存在的測試腳本解釋器只能逐條執(zhí)行腳本語句,無法對自動化 測試計劃執(zhí)行過程進(jìn)行記錄,以及無法對未執(zhí)行完成的自動化測試計劃由斷點(diǎn)位置恢復(fù)執(zhí) 行的問題,本發(fā)明實(shí)施例提供了一種通過模塊化的自動化測試計劃設(shè)計與自動化測試解析 程序,對自動化測試計劃執(zhí)行邏輯的控制實(shí)現(xiàn)自動化測試斷點(diǎn)執(zhí)行方法。其中,在自動化測試解析程序中擴(kuò)展了存儲主執(zhí)行數(shù)據(jù)文件的單元,用以記錄解析程序所執(zhí)行的自動化測試 計劃進(jìn)度信息,包括自動化測試計劃是否執(zhí)行完成、測試計劃斷點(diǎn)信息和日志路徑等內(nèi)容; 還擴(kuò)展了斷點(diǎn)信息存取程序和斷點(diǎn)執(zhí)行程序,其中,斷點(diǎn)信息存取程序,在解析程序執(zhí)行自 動化測試計劃的過程中,將每一個執(zhí)行進(jìn)度信息的改變記錄在主執(zhí)行數(shù)據(jù)文件中,當(dāng)自動 化程序中止時,上述信息可以作為該測試計劃的斷點(diǎn)信息,在下一次執(zhí)行同一測試計劃時, 由主執(zhí)行數(shù)據(jù)文件中讀取斷點(diǎn)信息供斷點(diǎn)執(zhí)行模塊使用;斷點(diǎn)執(zhí)行程序,是實(shí)現(xiàn)測試計劃 由斷點(diǎn)位置恢復(fù)測試的核心程序,主要功能包括確定斷點(diǎn)腳本位置,恢復(fù)測試腳本環(huán)境,執(zhí) 行斷點(diǎn)測試步驟。本發(fā)明自動化測試計劃斷點(diǎn)執(zhí)行方法通過上各模塊間相互關(guān)聯(lián)和邏輯控制實(shí)現(xiàn), 具體如下啟動解析程序執(zhí)行一個自動化測試計劃,讀取自動化測試計劃內(nèi)容。如果該自動 化測試計劃未執(zhí)行完成,提示用戶選擇是否由斷點(diǎn)處執(zhí)行。進(jìn)行斷點(diǎn)處執(zhí)行時,讀取主執(zhí)行 數(shù)據(jù)文件斷點(diǎn)字段內(nèi)容,否則將斷點(diǎn)字段賦為空。在進(jìn)入自動化測試斷點(diǎn)執(zhí)行階段后,將當(dāng) 前執(zhí)行腳本列表設(shè)為斷點(diǎn)所在及斷點(diǎn)后測試腳本。執(zhí)行斷點(diǎn)所在腳本時,首先執(zhí)行初始化 步驟恢復(fù)測試環(huán)境,然后跳轉(zhuǎn)到中斷步驟開始執(zhí)行并對腳本中的循環(huán)參數(shù)根據(jù)斷點(diǎn)信息重 新進(jìn)行賦值。每當(dāng)自動化測試執(zhí)行到一個新的進(jìn)度時,即變換場景、測試腳本改變和執(zhí)行一 個測試步驟等,斷點(diǎn)信息存取模塊會將包括測試腳本、測試步驟、循環(huán)量等斷點(diǎn)信息記錄到 主執(zhí)行數(shù)據(jù)文件中。測試計劃全部執(zhí)行完成后,在主執(zhí)行數(shù)據(jù)文件寫入完成標(biāo)識。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。為實(shí)現(xiàn)對測試中斷點(diǎn)的精確定位,本發(fā)明采用了模塊化結(jié)構(gòu)實(shí)現(xiàn)一個自動化測試 過程。圖1為自動化測試計劃模塊以及解析程序模塊的結(jié)構(gòu)示意圖,如圖1所示,根據(jù)實(shí)際 測試的需要,該自動化測試計劃可以包括以下模塊自動化測試計劃、自動化測試場景、自 動化測試腳本等。其中,每個自動化測試腳本進(jìn)一步包括初始化步驟和各測試步驟。以下 結(jié)合圖1描述各模塊構(gòu)成與功能自動化測試計劃中包含了數(shù)個測試場景(圖中示出了 2個,自動化測試場景1、2) 及測試場景對應(yīng)的數(shù)個自動化測試腳本列表(圖中示出了 3個,自動化測試腳本1、2、3),解 析程序根據(jù)自動化測試計劃內(nèi)容依次執(zhí)行測試腳本。自動化測試腳本由數(shù)個自動化測試步驟構(gòu)成,測試步驟一般按測試用例步驟和實(shí) 現(xiàn)某種功能原則劃分,至少應(yīng)包括一個初始化步驟、一個結(jié)束步驟和中間步驟,每一個測試 步驟都可以解析出唯一標(biāo)識用作執(zhí)行和斷點(diǎn)標(biāo)記。測試步驟(圖中示出初始化步驟、步驟1、步驟2.....步驟N、以及結(jié)束步驟)包
含數(shù)個函數(shù)體、能夠指示下一測試步驟的標(biāo)識和循環(huán)測試步驟標(biāo)識。其中,循環(huán)測試步驟的實(shí)現(xiàn)方式又分為靜態(tài)循環(huán)和動態(tài)循環(huán)兩種模式,該兩種模 式在測試步驟中使用不同的循環(huán)標(biāo)識量識別。靜態(tài)循環(huán)是指在自動化腳本編寫中普遍常用并且是通過依次執(zhí)行循環(huán)列表內(nèi)容 直到列表結(jié)束來實(shí)現(xiàn)循環(huán)功能,例如,常用的網(wǎng)元端口列表、Modem端口列表和環(huán)路端口列 表的循環(huán),靜態(tài)循環(huán)主要構(gòu)成元素示例表 權(quán)利要求
一種基于斷點(diǎn)的自動化測試方法,其特征在于,包括在當(dāng)前測試計劃執(zhí)行期間,存儲測試進(jìn)度信息,并將斷點(diǎn)所在的測試進(jìn)度信息作為斷點(diǎn)信息,其中,所述斷點(diǎn)信息包括測試場景信息、測試腳本信息;獲取所述斷點(diǎn)信息,并在所述斷點(diǎn)信息所指示的位置繼續(xù)進(jìn)行所述當(dāng)前測試計劃。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述測試進(jìn)度信息包括測試計劃名、測試日志信息、當(dāng)前測試場景信息、當(dāng)前測試腳本信息、靜態(tài)循環(huán)標(biāo)識、動 態(tài)循環(huán)標(biāo)識。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述在所述斷點(diǎn)信息所指示的位置繼 續(xù)進(jìn)行所述當(dāng)前自動化測試包括執(zhí)行所述測試場景信息所指示的測試場景,根據(jù)所述斷點(diǎn)信息對所述測試場景信息中 的環(huán)境變量進(jìn)行賦值;執(zhí)行所述測試腳本信息所指示的測試腳本。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,執(zhí)行所述測試腳本信息所指示的測試腳 本包括通過調(diào)度所述測試腳本中的初始化程序?qū)λ鰷y試腳本進(jìn)行初始化操作; 從所述測試腳本信息所指示的測試腳本的中斷步驟開始執(zhí)行測試,并對所述測試腳本 信息中的循環(huán)參數(shù)進(jìn)行賦值。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,從所述測試腳本信息所指示的測試腳本 的中斷步驟開始執(zhí)行測試包括如果所述中斷步驟存在循環(huán)步驟,且所述循環(huán)步驟為動態(tài)循環(huán),則獲取所述動態(tài)循環(huán) 中的斷點(diǎn)內(nèi)容,并從所述斷點(diǎn)內(nèi)容開始執(zhí)行所述中斷步驟;如果所述中斷步驟不存在循環(huán)步驟,或者存在循環(huán)步驟但所述循環(huán)步驟不是動態(tài)循 環(huán),則執(zhí)行所述中斷步驟。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,獲取了所述斷點(diǎn)信息之后,所述方法還包括對所述測試計劃名和所述測試日志信息進(jìn)行存儲。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,在根據(jù)所述斷點(diǎn)信息將所述測試場景信 息中的環(huán)境變量進(jìn)行賦值之后,所述方法還包括對進(jìn)行環(huán)境變量賦值后的所述當(dāng)前測試場景信息進(jìn)行存儲。
8.一種基于斷點(diǎn)的自動化測試裝置,其特征在于,包括存儲單元,用于在當(dāng)前測試計劃執(zhí)行期間,存儲測試進(jìn)度信息,其中,所述測試進(jìn)度信 息包括斷點(diǎn)信息,所述斷點(diǎn)信息包括測試場景信息、測試腳本信息; 獲取單元,用于從所述存儲單元中獲取所述斷點(diǎn)信息; 執(zhí)行單元,用于在所述斷點(diǎn)信息所指示的位置繼續(xù)進(jìn)行所述當(dāng)前測試計劃。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述執(zhí)行單元包括場景執(zhí)行子單元,用于執(zhí)行所述測試場景信息所指示的測試場景,根據(jù)所述斷點(diǎn)信息 對所述測試場景信息中的環(huán)境變量進(jìn)行賦值;腳本執(zhí)行子單元,用于執(zhí)行所述測試腳本信息所指示的測試腳本。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述腳本執(zhí)行子單元包括初始化模塊,用于通過調(diào)度所述測試腳本中的初始化程序?qū)λ鰷y試腳本進(jìn)行初始化 操作;執(zhí)行模塊,用于從所述測試腳本信息所指示的測試腳本的中斷步驟開始執(zhí)行測試,并 對所述測試腳本信息中的循環(huán)參數(shù)進(jìn)行賦值。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述執(zhí)行模塊包括 判斷子模塊,用于判斷所述中斷步驟是否存在循環(huán)步驟,并在存在循環(huán)步驟的情況下, 判斷所述循環(huán)步驟是否為動態(tài)循環(huán);獲取子模塊,用于獲取所述動態(tài)循環(huán)中的斷點(diǎn)內(nèi)容; 執(zhí)行子模塊,用于從所述斷點(diǎn)內(nèi)容開始執(zhí)行所述中斷步驟。
全文摘要
本發(fā)明公開了一種基于斷點(diǎn)的自動化測試方法及裝置,上述方法包括在當(dāng)前測試計劃執(zhí)行期間,存儲測試進(jìn)度信息,并將斷點(diǎn)所在的測試進(jìn)度信息作為斷點(diǎn)信息,其中,斷點(diǎn)信息包括測試場景信息、測試腳本信息;獲取斷點(diǎn)信息,并在斷點(diǎn)信息所指示的位置繼續(xù)進(jìn)行當(dāng)前測試計劃。根據(jù)本發(fā)明提供的技術(shù)方案,可以對測試腳本執(zhí)行進(jìn)度信息記錄,并能對未正常執(zhí)行完成的自動化測試計劃,實(shí)現(xiàn)精確到測試步驟和循環(huán)變量的恢復(fù)。
文檔編號G06F11/36GK101989225SQ20091016085
公開日2011年3月23日 申請日期2009年7月29日 優(yōu)先權(quán)日2009年7月29日
發(fā)明者臧月琦, 陸新華 申請人:中興通訊股份有限公司