程序的測試方法以及用于測試程序的設(shè)備的制作方法
【專利摘要】本發(fā)明公開了程序的測試方法,該方法包括:程序接口獲取目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求;所述程序接口調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間;所述程序接口將所述偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序,以響應(yīng)于所述請求;將所述目標(biāo)程序響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi)。另一方面,本發(fā)明還公開了一種用于測試程序的設(shè)備。實(shí)施本發(fā)明可以防止因人工疏忽帶來的程序出錯(cuò)問題,還能提升程序測試過程中涉及修改系統(tǒng)時(shí)間的精確性和準(zhǔn)確性,以及提升程序測試的工作效率。
【專利說明】程序的測試方法以及用于測試程序的設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件程序的測試技術(shù),尤其涉及一種程序的測試方法以及用于測試程序的設(shè)備。
【背景技術(shù)】
[0002]對軟件程序的開發(fā)來說,該軟件程序的代碼完工后對其進(jìn)行運(yùn)行測試是保證完成質(zhì)量所必不可少的步驟。一些軟件程序其設(shè)計(jì)初衷是針對于某些在時(shí)間上非連續(xù)的特定時(shí)刻觸發(fā)固定功能,例如每天中的特定時(shí)刻或特定的日期。典型地例如服務(wù)器程序,該服務(wù)器程序包括的一些時(shí)間跨越非常大的功能邏輯,為了模擬上述時(shí)間跨度非常大的時(shí)間流逝過程,這些功能邏輯的測試往往需要花費(fèi)較多精力。
[0003]通常所述服務(wù)器程序通過調(diào)用操作系統(tǒng)的系統(tǒng)時(shí)間來實(shí)現(xiàn)所述時(shí)間流逝過程,現(xiàn)有的測試技術(shù)中的做法是人工直接修改操作系統(tǒng)的時(shí)間,使得該服務(wù)器程序所調(diào)用的系統(tǒng)時(shí)間是一個(gè)人工修改后的指定值,從而對于該服務(wù)器程序來說其調(diào)用的系統(tǒng)時(shí)間已經(jīng)流逝到了人工修改后指定的特定時(shí)間點(diǎn),然后服務(wù)器程序處理根據(jù)該特定時(shí)間點(diǎn)所計(jì)算得到的一個(gè)時(shí)間段內(nèi)的所有任務(wù)。
[0004]但是上述測試方法存在一些缺陷:一方面,該測試過程需要人工修改系統(tǒng)時(shí)間,如果需要進(jìn)行多次調(diào)整時(shí)間的話,由于人為疏忽很可能出現(xiàn)時(shí)間跨越過大的問題或人為將操作系統(tǒng)的時(shí)間設(shè)置為早于當(dāng)前操作系統(tǒng)的時(shí)間,均可能導(dǎo)致服務(wù)器程序出現(xiàn)一些無法預(yù)料的錯(cuò)誤;另一方面,人工修改系統(tǒng)難以達(dá)到測試的精確性要求,例如某個(gè)時(shí)間相關(guān)的任務(wù)應(yīng)該是每隔10分鐘進(jìn)行一次,在測試過程中需要人工反復(fù)修改系統(tǒng)時(shí)間容易出現(xiàn)偏差,但是不進(jìn)行人工操作又無法在短時(shí)間內(nèi)完成測試;再一方面,對于被測試程序來說,無法實(shí)現(xiàn)對反復(fù)執(zhí)行的短周期任務(wù)的實(shí)時(shí)監(jiān)控,例如每隔5秒就執(zhí)行一次的任務(wù),如果要對每次執(zhí)行的報(bào)告進(jìn)行實(shí)時(shí)跟蹤,那么在人可以閱讀完一個(gè)周期的報(bào)告之前,可能已經(jīng)堆積了數(shù)次的報(bào)告,此外修改系統(tǒng)時(shí)間容易出現(xiàn)程序無響應(yīng)的副作用,若被測試程序內(nèi)存在一些需要反復(fù)執(zhí)行的任務(wù),例如每隔I分鐘進(jìn)行一次的任務(wù),如果人工修改時(shí)間后使系統(tǒng)時(shí)間跨越了 I整天,那么這個(gè)任務(wù)就需要執(zhí)行1440次,會(huì)導(dǎo)致程序長時(shí)間進(jìn)行計(jì)算而沒有響應(yīng)。上述缺陷都是不利于測試技術(shù)人員完成程序測試過程的負(fù)面因素。
【發(fā)明內(nèi)容】
[0005]為了克服現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明提供了一種程序的測試方法,該方法包括:
[0006]程序接口獲取目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求;
[0007]所述程序接口調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間;
[0008]所述程序接口將所述偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序,以響應(yīng)于所述請求;
[0009]將所述目標(biāo)程序響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi)。
[0010]根據(jù)本發(fā)明的一個(gè)方面,所述測試方法中所述根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間包括:獲取變速比;根據(jù)所述變速比對所述系統(tǒng)時(shí)間進(jìn)行計(jì)算變換以生成所述偽裝系統(tǒng)時(shí)間。
[0011]根據(jù)本發(fā)明的另一個(gè)方面,所述測試方法中用戶通過操作所述程序接口提供的人機(jī)交互界面以預(yù)設(shè)所述變速比。
[0012]根據(jù)本發(fā)明的另一個(gè)方面,所述測試方法中所述目標(biāo)程序根據(jù)所述變速比調(diào)整該目標(biāo)程序/該目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)。
[0013]根據(jù)本發(fā)明的另一個(gè)方面,所述測試方法中所述程序接口根據(jù)所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)確定所述變速比。
[0014]相應(yīng)地,本發(fā)明還提供了一種用于測試程序的設(shè)備,該設(shè)備包括:
[0015]請求獲取模塊,用于獲取目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求;
[0016]時(shí)間修改模塊,用于調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間;
[0017]響應(yīng)模塊,用于將所述偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序,以響應(yīng)于所述請求;
[0018]記錄模塊,用于將所述目標(biāo)程序響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi)。
[0019]根據(jù)本發(fā)明的一個(gè)方面,該設(shè)備中的所述時(shí)間修改模塊包括:參數(shù)獲取單元,用于獲取變速比;計(jì)算單元,用于根據(jù)所述變速比對所述系統(tǒng)時(shí)間進(jìn)行計(jì)算變換以生成所述偽裝系統(tǒng)時(shí)間。
[0020]根據(jù)本發(fā)明的另一個(gè)方面,該設(shè)備還包括設(shè)置模塊,用于提供人機(jī)交互界面,并根據(jù)用戶針對所述人機(jī)交互界面的操作預(yù)設(shè)所述變速比。
[0021]根據(jù)本發(fā)明的另一個(gè)方面,該設(shè)備還包括調(diào)整模塊,用于根據(jù)所述變速比調(diào)整所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)。
[0022]根據(jù)本發(fā)明的另一個(gè)方面,該設(shè)備還包括變速比模塊,用于根據(jù)所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)確定所述變速比。
[0023]本發(fā)明提供的程序的測試方法以及用于測試程序的設(shè)備通過自動(dòng)化的方式修改系統(tǒng)時(shí)間,避免了反復(fù)需要人工修改系統(tǒng)時(shí)間的步驟,可以防止因人工疏忽帶來的程序出錯(cuò)問題,還能提升程序測試過程中涉及修改系統(tǒng)時(shí)間的精確性和準(zhǔn)確性,以及提升程序測試的工作效率。
【專利附圖】
【附圖說明】
[0024]通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0025]圖1是根據(jù)本發(fā)明的程序的測試方法的一個(gè)【具體實(shí)施方式】的流程圖;
[0026]圖2是根據(jù)本發(fā)明的用于測試程序的設(shè)備的一個(gè)【具體實(shí)施方式】的結(jié)構(gòu)示意圖;
[0027]圖3是可實(shí)現(xiàn)本發(fā)明提供的程序的測試方法以及用于測試程序的設(shè)備的計(jì)算機(jī)設(shè)備的結(jié)構(gòu)示意圖;
[0028]附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
【具體實(shí)施方式】
[0029]為了更好地理解和闡釋本發(fā)明,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。[0030]首先請參考圖1,圖1是根據(jù)本發(fā)明的程序的測試方法的一個(gè)【具體實(shí)施方式】的流程圖,該測試方法包括:
[0031]步驟S100,程序接口獲取目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求;
[0032]步驟S200,所述程序接口調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間;
[0033]步驟S300,所述程序接口將所述偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序,以響應(yīng)于所述請求;
[0034]步驟S400,將所述目標(biāo)程序響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi)。
[0035]具體地,所述目標(biāo)程序其內(nèi)部包括的方法、函數(shù)和/或任務(wù)在該目標(biāo)程序的正常運(yùn)行過程中需要調(diào)用系統(tǒng)時(shí)間,以便于在特定的時(shí)間點(diǎn)觸發(fā)所述方法、函數(shù)和/或任務(wù)中相應(yīng)的業(yè)務(wù)邏輯。現(xiàn)有技術(shù)中是通過人工修改系統(tǒng)時(shí)間的方法使該目標(biāo)程序獲取的系統(tǒng)時(shí)間變?yōu)槿斯ば薷暮蟮闹?。在本【具體實(shí)施方式】中提供了 一個(gè)程序接口代替上述人工修改的步驟。典型地,在步驟SlOO中,該程序接口獲取所述目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求,例如該程序接口可以設(shè)計(jì)為持續(xù)監(jiān)視目標(biāo)程序內(nèi)針對系統(tǒng)計(jì)時(shí)函數(shù)的調(diào)用情況,若發(fā)現(xiàn)所述目標(biāo)程序觸發(fā)針對所述系統(tǒng)計(jì)時(shí)函數(shù)的調(diào)用請求(即所述目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求),則將所述系統(tǒng)計(jì)時(shí)函數(shù)與該目標(biāo)程序進(jìn)行隔離,而轉(zhuǎn)為該程序接口內(nèi)部處理,此時(shí)所述目標(biāo)程序內(nèi)部尚未收到所述系統(tǒng)計(jì)時(shí)函數(shù)針對所述調(diào)用請求的響應(yīng)結(jié)果。接下來進(jìn)行步驟S200,該程序接口調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間,該偽裝系統(tǒng)時(shí)間根據(jù)預(yù)設(shè)規(guī)則對所述系統(tǒng)時(shí)間進(jìn)行變換所得,用于在步驟S300中替代所述系統(tǒng)時(shí)間以響應(yīng)于所述調(diào)用請求,所述預(yù)設(shè)規(guī)則可以根據(jù)程序測試的實(shí)際需求而定。步驟SlOO至步驟S300執(zhí)行后,所述目標(biāo)程序基于所述偽裝系統(tǒng)時(shí)間進(jìn)行運(yùn)行并輸出運(yùn)行結(jié)果。在步驟S400中,將所述目標(biāo)程序響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi),所述測試日志供測試技術(shù)人員分析所述目標(biāo)程序是否運(yùn)行正確。
[0036]以Windows操作系統(tǒng)為例說明步驟SlOO至步驟S300,所述程序接口監(jiān)測到所述目標(biāo)程序調(diào)用常見的系統(tǒng)計(jì)時(shí)函數(shù)的請求,例如針對timeGetTime函數(shù)、timeGetSystemTime函數(shù)、QueryPerformanceCounter函數(shù)和GetTickCount函數(shù)等系統(tǒng)計(jì)時(shí)函數(shù)的調(diào)用請求,則所述程序接口阻斷所述目標(biāo)程序與上述系統(tǒng)計(jì)時(shí)函數(shù)的通信,而將上述系統(tǒng)計(jì)時(shí)函數(shù)返回的系統(tǒng)時(shí)間進(jìn)行變換處理以生成所述偽裝系統(tǒng)時(shí)間,并將該偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序以響應(yīng)于所述調(diào)用請求。
[0037]進(jìn)一步優(yōu)選地,步驟S200中提及的根據(jù)系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間的具體方法包括如下步驟:首先獲取變速比;然后根據(jù)所述變速比對所述系統(tǒng)時(shí)間進(jìn)行計(jì)算變換以生成所述偽裝系統(tǒng)時(shí)間。所述變速比的定義是:針對所述目標(biāo)程序而言,所述系統(tǒng)時(shí)間所代表的真實(shí)時(shí)間流逝速度與所述偽裝系統(tǒng)時(shí)間所代表的虛假時(shí)間流逝速度的比值,典型地,該變速比取值的范圍可以是0.001至10000,例如所述變速比的值是0.1時(shí),所述程序接口調(diào)用系統(tǒng)時(shí)間反饋的時(shí)間是10分鐘,而該程序接口將該時(shí)間處理為I分鐘反饋給所述目標(biāo)程序;類似地,所述變速比的值是100時(shí),所述程序接口調(diào)用系統(tǒng)時(shí)間反饋的時(shí)間是I分鐘,而該程序接口該時(shí)間處理為100分鐘反饋給所述目標(biāo)程序。由上述說明可知所述目標(biāo)程序只能通過所述程序接口獲取經(jīng)過修改的時(shí)間,而無法直接調(diào)用系統(tǒng)計(jì)時(shí)函數(shù)得到真實(shí)的系統(tǒng)時(shí)間,因此實(shí)現(xiàn)所述目標(biāo)程序相對于實(shí)際時(shí)間流逝過程的加速運(yùn)行或減速運(yùn)行。
[0038]為了便于測試人員自主地控制所述目標(biāo)程序的加速運(yùn)行/減速運(yùn)行狀態(tài),所述程序接口提供了 一人機(jī)交互界面,供所述測試人員預(yù)設(shè)所述變速比。由于所述程序接口可處理為獨(dú)立于所述目標(biāo)程序,因此在不中斷所述目標(biāo)程序正常運(yùn)行的條件下,測試人員可以通過操作所述人機(jī)交互界面隨時(shí)修改所述變速比的具體數(shù)值,以適應(yīng)于針對所述目標(biāo)程序測試需求以及控制測試進(jìn)度。
[0039]基于上述說明,步驟SlOO至步驟S400設(shè)計(jì)為可以滿足與如下幾種應(yīng)用場景:
[0040]場景一、目標(biāo)程序每隔10分鐘執(zhí)行一次并輸出結(jié)果,測試人員希望在較短時(shí)間內(nèi)測試該目標(biāo)程序在10000分鐘內(nèi)是否運(yùn)行正常,其依賴于所述程序接口的測試方法如下:啟動(dòng)所述目標(biāo)程序和所述程序接口并預(yù)設(shè)變速比為100,所述目標(biāo)程序持續(xù)調(diào)用系統(tǒng)時(shí)間,由于所述程序接口的作用,響應(yīng)于所述目標(biāo)程序的偽裝系統(tǒng)時(shí)間并非是實(shí)際的系統(tǒng)時(shí)間,每當(dāng)系統(tǒng)的實(shí)際時(shí)間流逝10分鐘,對于所述目標(biāo)程序來說時(shí)間流逝是10分鐘的100倍,即1000分鐘,因此借助所述程序接口的功能,所述目標(biāo)程序在運(yùn)行實(shí)際時(shí)間100分鐘后的所有執(zhí)行輸出結(jié)果等同于該目標(biāo)程序在運(yùn)行10000分鐘后的所有執(zhí)行輸出結(jié)果,上述執(zhí)行輸出結(jié)果記錄在測試日志中供測試人員分析,因此使得運(yùn)行周期很大的一類目標(biāo)程序可以較快地完成測試一個(gè)周期的測試。
[0041]場景二、目標(biāo)程序每隔10秒鐘執(zhí)行一次并輸出運(yùn)行結(jié)果,而詳細(xì)閱讀一次所述運(yùn)行結(jié)果需要耗費(fèi)測試人員60秒鐘的時(shí)間,因此測試人員希望在所述目標(biāo)程序不中斷執(zhí)行的情況下具有充裕的時(shí)間來閱讀該運(yùn)行結(jié)果,其依賴于所述程序接口的測試方法如下:啟動(dòng)所述目標(biāo)程序和所述程序接口并預(yù)設(shè)變速比為0.1,所述目標(biāo)程序持續(xù)調(diào)用系統(tǒng)時(shí)間,由于所述程序接口的作用,響應(yīng)于所述目標(biāo)程序的偽裝系統(tǒng)時(shí)間并非是實(shí)際的系統(tǒng)時(shí)間,每當(dāng)系統(tǒng)的實(shí)際時(shí)間流逝100秒鐘,對于所述目標(biāo)程序來說時(shí)間流逝是100秒鐘的0.1倍,即10秒鐘,因此借助所述程序接口的功能,所述目標(biāo)程序在運(yùn)行實(shí)際時(shí)間100秒鐘后僅執(zhí)行一次并輸出運(yùn)行結(jié)果,上述運(yùn)行結(jié)果記錄在測試日志中供測試人員分析,而所述目標(biāo)程序輸出下一次運(yùn)行結(jié)果將是在100秒鐘以后,因此使得測試人員具有充裕的時(shí)間來分析和閱讀所述目標(biāo)程序每一次輸出的運(yùn)行結(jié)果。
[0042]針對執(zhí)行情況較為復(fù)雜的一些目標(biāo)程序,一方面考慮,優(yōu)選地本【具體實(shí)施方式】還提供了如下步驟:所述目標(biāo)程序/程序接口根據(jù)所述變速比調(diào)整該目標(biāo)程序/該目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù),其目的是當(dāng)所述目標(biāo)程序/該目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)超過預(yù)定閾值時(shí)則減小所述目標(biāo)程序/該目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù),以防止所述目標(biāo)程序在變速比數(shù)值過大時(shí)造成執(zhí)行任務(wù)次數(shù)累計(jì)過大而無響應(yīng)導(dǎo)致測試工作失敗。該步驟的設(shè)置為了滿足如下應(yīng)用場景:目標(biāo)程序以200分鐘為一個(gè)完整的執(zhí)行周期,在其中的前100分鐘內(nèi)每隔I分鐘執(zhí)行一次,其中的后100分鐘內(nèi)每隔I秒鐘執(zhí)行一次,若測試人員將變速比預(yù)設(shè)為100,一旦所述變速比維持為數(shù)值100不變,實(shí)際時(shí)間流逝2分鐘后,所述目標(biāo)程序的實(shí)際執(zhí)行次數(shù)則是實(shí)際時(shí)間流逝2分鐘的100倍即200分鐘內(nèi)的執(zhí)行次數(shù),該執(zhí)行次數(shù)是100+60*100=6100次,而受限于所述目標(biāo)程序的運(yùn)行環(huán)境的硬件性能,很容易造成所述目標(biāo)程序完全占用計(jì)算資源而無響應(yīng)。因此根據(jù)該目標(biāo)程序的實(shí)際情況,將所述單位時(shí)間定義為I分鐘,所述單位時(shí)間內(nèi)所述目標(biāo)程序的執(zhí)行次數(shù)的預(yù)定閾值定義為10次,針對所述后100分鐘而言,所述目標(biāo)程序在所述單位時(shí)間(I分鐘)內(nèi)執(zhí)行次數(shù)為60次,該執(zhí)行次數(shù)大于所述預(yù)定閾值,在該后100分鐘內(nèi),為了適應(yīng)于所述變速比同時(shí)又保證所述目標(biāo)程序不會(huì)出現(xiàn)無響應(yīng)的情況,所述目標(biāo)程序或所述程序接口動(dòng)態(tài)地根據(jù)所述變速比減小所述目標(biāo)程序/該目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù),使得該執(zhí)行次數(shù)小于所述預(yù)定閾值,例如在所述后100分鐘內(nèi)將目標(biāo)程序調(diào)整為每隔10秒執(zhí)行一次,則調(diào)整后的所述目標(biāo)程序在I分鐘內(nèi)執(zhí)行次數(shù)為6,其小于所述預(yù)定閾值,避免了該目標(biāo)程序因執(zhí)行任務(wù)次數(shù)累計(jì)過大而無響應(yīng)。
[0043]另一方面考慮,本【具體實(shí)施方式】優(yōu)選地提供了如下步驟:所述程序接口根據(jù)所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)調(diào)整所述變速比,其目的是根據(jù)目標(biāo)程序的運(yùn)行情況提供了動(dòng)態(tài)可調(diào)的變速比,以便于進(jìn)一步加快測試速度。該步驟的設(shè)置是為了滿足如下應(yīng)用場景:當(dāng)所述目標(biāo)程序持續(xù)運(yùn)行的過程中,所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)處于變化情況時(shí),即該目標(biāo)程序的執(zhí)行頻率處于變化情況時(shí),相對應(yīng)于所述目標(biāo)程序高頻執(zhí)行的時(shí)間段內(nèi),鎖定所述變速比的上限,以防止所述目標(biāo)程序在變速比數(shù)值過大時(shí)造成執(zhí)行任務(wù)次數(shù)累計(jì)過大而無響應(yīng)導(dǎo)致測試工作失??;相對于所述目標(biāo)程序低頻執(zhí)行的時(shí)間段內(nèi),提高所述變速比,以減少針對所述目標(biāo)程序的測試工作的實(shí)際耗費(fèi)時(shí)間。特別指出,所述程序接口調(diào)整所述變速比的過程由該程序接口內(nèi)置的規(guī)則結(jié)合所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)自動(dòng)完成,并不需要測試人員參與設(shè)置。
[0044]在優(yōu)選的實(shí)施例中,所述程序接口實(shí)施為一種計(jì)算機(jī)程序產(chǎn)品,上述計(jì)算機(jī)程序產(chǎn)品的實(shí)施例可以通過使用用于計(jì)算機(jī)可讀信息的任何記錄介質(zhì)來實(shí)現(xiàn),所述記錄介質(zhì)包括磁介質(zhì)、光介質(zhì)或其他適合的介質(zhì)。所述計(jì)算機(jī)程序產(chǎn)品的實(shí)施例不僅可以運(yùn)行在獨(dú)立的物理設(shè)備上,也可以運(yùn)行在協(xié)同工作的多臺(tái)物理設(shè)備上以實(shí)現(xiàn)該程序接口中各部分所具有功能以及彼此之間的邏輯關(guān)系。
[0045]需要說明的是,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實(shí)現(xiàn)期望的結(jié)果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟,將多個(gè)步驟合并為一個(gè)步驟執(zhí)行,和/或?qū)⒁粋€(gè)步驟分解為多個(gè)步驟執(zhí)行。
[0046]本發(fā)明還公開了一種用于測試程序的設(shè)備,請參考圖2,圖2是根據(jù)本發(fā)明的用于測試程序的設(shè)備的一個(gè)【具體實(shí)施方式】的結(jié)構(gòu)示意圖,該設(shè)備100包括:
[0047]請求獲取模塊110,用于獲取目標(biāo)程序200調(diào)用系統(tǒng)時(shí)間的請求;
[0048]時(shí)間修改模塊120,用于調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間;
[0049]響應(yīng)模塊130,用于將所述偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序200,以響應(yīng)于所述請求;
[0050]記錄模塊140,用于將所述目標(biāo)程序200響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi)。
[0051]具體地,設(shè)備100中的時(shí)間修改模塊120從操作系統(tǒng)提供的系統(tǒng)時(shí)間來源300內(nèi)調(diào)用所述系統(tǒng)時(shí)間,所述系統(tǒng)時(shí)間來源300是包括系統(tǒng)計(jì)時(shí)函數(shù)的系統(tǒng)模塊。
[0052]可選地,時(shí)間修改模塊120包括:參數(shù)獲取單元121,用于獲取變速比;計(jì)算單元122,用于根據(jù)所述變速比對所述系統(tǒng)時(shí)間進(jìn)行計(jì)算變換以生成所述偽裝系統(tǒng)時(shí)間。[0053]可選地,該設(shè)備100還包括設(shè)置模塊150,用于提供人機(jī)交互界面,并根據(jù)用戶針對所述人機(jī)交互界面的操作預(yù)設(shè)所述變速比。
[0054]優(yōu)選地,在本【具體實(shí)施方式】中,設(shè)備100還包括:調(diào)整模塊170,用于根據(jù)所述變速比調(diào)整所述目標(biāo)程序200/所述目標(biāo)程序200內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)。
[0055]進(jìn)一步優(yōu)選地,設(shè)備100還包括:變速比模塊160,用于根據(jù)所述目標(biāo)程序200/所述目標(biāo)程序200內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)調(diào)整所述變速比。
[0056]在優(yōu)選的實(shí)施例中,設(shè)備100中的各部分實(shí)施為一種計(jì)算機(jī)程序產(chǎn)品,上述計(jì)算機(jī)程序產(chǎn)品的實(shí)施例可以通過使用用于計(jì)算機(jī)可讀信息的任何記錄介質(zhì)來實(shí)現(xiàn),所述記錄介質(zhì)包括磁介質(zhì)、光介質(zhì)或其他適合的介質(zhì)。所述計(jì)算機(jī)程序產(chǎn)品的實(shí)施例不僅可以運(yùn)行在獨(dú)立的物理設(shè)備上,也可以運(yùn)行在協(xié)同工作的多臺(tái)物理設(shè)備上以實(shí)現(xiàn)設(shè)備100中各部分所具有功能以及彼此之間的邏輯關(guān)系。當(dāng)然在其他優(yōu)選的實(shí)施例中,設(shè)備100中的各部分可以實(shí)施為包括硬件部分以及能被該硬件部分所解釋執(zhí)行的軟件部分,上述硬件部分和軟件部分協(xié)同工作以實(shí)現(xiàn)設(shè)備100中各部分的功能。
[0057]本部分出現(xiàn)的術(shù)語和名詞與前文中相同的術(shù)語或名詞具有一致的含義,例如所述系統(tǒng)時(shí)間、所述偽裝系統(tǒng)時(shí)間以及所述目標(biāo)程序等,上述術(shù)語或名詞及其涉及的工作原理均可參考前文中相關(guān)部分的描述和解釋,為了簡便起見在此不再贅述。
[0058]特別指出的是,本說明書中提及的目標(biāo)程序典型地設(shè)計(jì)為一種在服務(wù)器端運(yùn)行的程序,一些實(shí)施例中,該目標(biāo)程序可以僅運(yùn)行在一臺(tái)服務(wù)器上,也可以分布運(yùn)行在分布在互聯(lián)網(wǎng)上的多個(gè)服務(wù)器上;另一些實(shí)施例中,從該目標(biāo)程序分離出來的各個(gè)功能模塊分別運(yùn)行在不同的服務(wù)器上,且上述不同的服務(wù)器彼此之間互相通信,使所述各個(gè)模塊可以協(xié)同工作實(shí)現(xiàn)所述目標(biāo)程序所針對的功能。典型地,運(yùn)行所述目標(biāo)程序的服務(wù)器適用于B/S架構(gòu)或C/S架構(gòu)的網(wǎng)絡(luò)數(shù)據(jù)服務(wù)提供模式,該目標(biāo)程序通過廣域網(wǎng)/局域網(wǎng)/互聯(lián)網(wǎng)與接入的終端進(jìn)行通信,所述終端包括但不限于:個(gè)人電腦終端,例如安裝了 Windows操作系統(tǒng)、Linux操作系統(tǒng)或Mac OS的個(gè)人電腦終端,以及例如安裝了 Symbian、Windows Mobile、iOS、Android、Maemo、WebOS、Palm OS或Blackberry OS等終端操作系統(tǒng)的智能終端,亦或是多媒體終端,例如互聯(lián)網(wǎng)電視。
[0059]參考圖3,圖3是可實(shí)現(xiàn)本發(fā)明提供的程序的測試方法以及用于測試程序的設(shè)備的計(jì)算機(jī)設(shè)備的結(jié)構(gòu)示意圖,該計(jì)算機(jī)設(shè)備至少包括如下部分=CPU (中央處理器)501、RAM(隨機(jī)存儲(chǔ)器)502,ROM (只讀存儲(chǔ)器)503、系統(tǒng)總線500、硬盤控制單元504、硬盤505、人機(jī)交互外部設(shè)備控制單元506、人機(jī)交互外部設(shè)備507、串行接口控制單元508、串行接口外部設(shè)備509、并行接口控制單元510、并行接口外部設(shè)備511、顯示設(shè)備控制單元512和顯示設(shè)備513。其中,CPU501、RAM502、R0M503、硬盤控制單元504、人機(jī)交互外部設(shè)備控制單元506、串行接口控制單元508、并行接口控制單元510以及顯示設(shè)備控制單元512與系統(tǒng)總線500相連接,并通過系統(tǒng)總線500實(shí)現(xiàn)彼此之前的通信。此外,硬盤控制單元504與硬盤505相連接;人機(jī)交互外部設(shè)備控制單元506與人機(jī)交互外部設(shè)備507相連接,典型地該人機(jī)交互外部設(shè)備是鼠標(biāo)、軌跡球、觸摸屏或鍵盤;串行接口控制單元508與串行接口外部設(shè)備509相連接;并行接口控制單元510與并行接口外部設(shè)備511相連接;顯示設(shè)備控制單元512和顯示設(shè)備513相連接。
[0060]圖3所述的結(jié)構(gòu)框圖僅僅示出了能實(shí)踐本發(fā)明各個(gè)實(shí)施例的一種計(jì)算機(jī)設(shè)備的結(jié)構(gòu),而并非是對本發(fā)明的實(shí)踐環(huán)境的限制。在一些情況下,可以根據(jù)需要添加或者減少該計(jì)算機(jī)設(shè)備中的一些設(shè)備。例如,圖3所示的設(shè)備可以移除人機(jī)交互外部設(shè)備507和顯示設(shè)備513,其具體實(shí)施形態(tài)僅僅是一個(gè)能夠被外部設(shè)備訪問的服務(wù)器。當(dāng)然圖3所示的計(jì)算機(jī)設(shè)備可以單獨(dú)地實(shí)現(xiàn)本發(fā)明運(yùn)行的環(huán)境,也可以通過網(wǎng)絡(luò)互相連接起來而提供本發(fā)明各個(gè)實(shí)施例所適用運(yùn)行環(huán)境,例如本發(fā)明的各個(gè)模塊和/步驟可以分布地實(shí)現(xiàn)在互相連接的各個(gè)計(jì)算機(jī)設(shè)備中。
[0061]本發(fā)明提供的程序的測試方法可以使用可編程邏輯器件來實(shí)現(xiàn),也可以實(shí)施為計(jì)算機(jī)程序軟件,例如根據(jù)本發(fā)明的實(shí)施例可以是一種計(jì)算機(jī)程序產(chǎn)品,運(yùn)行該程序產(chǎn)品使計(jì)算機(jī)執(zhí)行用于所示范的方法。所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該介質(zhì)上包含計(jì)算機(jī)程序邏輯或代碼部分,用于實(shí)現(xiàn)上述方法的各個(gè)步驟。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是被安裝在計(jì)算機(jī)中的內(nèi)置介質(zhì)或者可從計(jì)算機(jī)主體拆卸的可移動(dòng)介質(zhì)(例如熱拔插技術(shù)存儲(chǔ)設(shè)備)。所述內(nèi)置介質(zhì)包括但不限于可重寫的非易失性存儲(chǔ)器,例如RAM、ROM、快閃存儲(chǔ)器和硬盤。所述可移動(dòng)介質(zhì)包括但不限于:光存儲(chǔ)媒體(例如⑶-ROM和DVD)、磁光存儲(chǔ)媒體(例如MO)、磁存儲(chǔ)媒體(例如盒帶或移動(dòng)硬盤)、具有內(nèi)置的可重寫的非易失性存儲(chǔ)器的媒體(例如存儲(chǔ)卡)和具有內(nèi)置ROM的媒體(例如ROM盒)。
[0062]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,任何具有適當(dāng)編程裝置的計(jì)算機(jī)系統(tǒng)都將能夠執(zhí)行包含在程序產(chǎn)品中的本發(fā)明的方法的諸步驟。盡管本說明書中描述的多數(shù)【具體實(shí)施方式】都側(cè)重于軟件程序,但是作為固件和硬件實(shí)現(xiàn)本發(fā)明提供的方法的替代實(shí)施例同樣在本發(fā)明要求保護(hù)的范圍之內(nèi)。
[0063]對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此夕卜,顯然“包括”一詞不排除其他部件、單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個(gè)部件、單元或裝置也可以由一個(gè)部件、單元或裝置通過軟件或者硬件來實(shí)現(xiàn)。
[0064]本發(fā)明提供的程序的測試方法以及用于測試程序的設(shè)備通過自動(dòng)化的方式修改系統(tǒng)時(shí)間,避免了反復(fù)需要人工修改系統(tǒng)時(shí)間的步驟,可以防止因人工疏忽帶來的程序出錯(cuò)問題,還能提升程序測試過程中涉及修改系統(tǒng)時(shí)間的精確性和準(zhǔn)確性,以及提升程序測試的工作效率。
[0065]以上所揭露的僅為本發(fā)明的一些較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種程序的測試方法,該方法包括: 程序接口獲取目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求; 所述程序接口調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間; 所述程序接口將所述偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序,以響應(yīng)于所述請求; 將所述目標(biāo)程序響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi)。
2.根據(jù)權(quán)利要求1所述的測試方法,其中,所述根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間包括: 獲取變速比; 根據(jù)所述變速比對所述系統(tǒng)時(shí)間進(jìn)行計(jì)算變換以生成所述偽裝系統(tǒng)時(shí)間。
3.根據(jù)權(quán)利要求2所述的測試方法,其中: 用戶通過操作所述程序接口提供的人機(jī)交互界面以預(yù)設(shè)所述變速比。
4.根據(jù)權(quán)利要求3所述的測試方法,其中: 所述目標(biāo)程序/程序接口根據(jù)所述變速比調(diào)整該目標(biāo)程序/該目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)。
5.根據(jù)權(quán)利要求2所述的測試方法,其中: 所述程序接口根據(jù)所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)調(diào)整所述變速比。
6.一種用于測試程序的設(shè)備,該設(shè)備包括: 請求獲取模塊,用于獲取目標(biāo)程序調(diào)用系統(tǒng)時(shí)間的請求; 時(shí)間修改模塊,用于調(diào)用所述系統(tǒng)時(shí)間,并根據(jù)該系統(tǒng)時(shí)間生成偽裝系統(tǒng)時(shí)間; 響應(yīng)模塊,用于將所述偽裝系統(tǒng)時(shí)間傳輸至所述目標(biāo)程序,以響應(yīng)于所述請求; 記錄模塊,用于將所述目標(biāo)程序響應(yīng)于所述偽裝系統(tǒng)時(shí)間的運(yùn)行結(jié)果記錄在測試日志內(nèi)。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其中,所述時(shí)間修改模塊包括: 參數(shù)獲取單元,用于獲取變速比; 計(jì)算單元,用于根據(jù)所述變速比對所述系統(tǒng)時(shí)間進(jìn)行計(jì)算變換以生成所述偽裝系統(tǒng)時(shí)間。
8.根據(jù)權(quán)利要求7所述的設(shè)備,該設(shè)備還包括: 設(shè)置模塊,用于提供人機(jī)交互界面,并根據(jù)用戶針對所述人機(jī)交互界面的操作預(yù)設(shè)所述變速比。
9.根據(jù)權(quán)利要求8所述的設(shè)備,該設(shè)備還包括: 調(diào)整模塊,用于根據(jù)所述變速比調(diào)整所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)。
10.根據(jù)權(quán)利要求7所述的設(shè)備,該設(shè)備還包括: 變速比模塊,用于根據(jù)所述目標(biāo)程序/所述目標(biāo)程序內(nèi)包括的任務(wù)在單位時(shí)間內(nèi)的執(zhí)行次數(shù)調(diào)整所述變速比。
【文檔編號(hào)】G06F11/36GK104008046SQ201310059321
【公開日】2014年8月27日 申請日期:2013年2月26日 優(yōu)先權(quán)日:2013年2月26日
【發(fā)明者】呂淵 申請人:北京千橡網(wǎng)景科技發(fā)展有限公司