本發(fā)明屬于軟件測(cè)試技術(shù)領(lǐng)域,具體涉及一種基于鉤子函數(shù)的圖形界面程序測(cè)試日志記錄及回放方法。
背景技術(shù):
軟件測(cè)試是保證軟件質(zhì)量的重要方法,而在軟件測(cè)試過(guò)程中,詳細(xì)、準(zhǔn)確的測(cè)試記錄文檔可以規(guī)范測(cè)試工作流程,減少測(cè)試人員及開發(fā)人員的溝通成本,并使得測(cè)試工作便于分析與總結(jié)。
專利201010253925.2公開了一種對(duì)軟件測(cè)試進(jìn)行記錄的方法,所述方法包括以下步驟:在執(zhí)行測(cè)試用例時(shí),通過(guò)鉤子技術(shù)捕獲動(dòng)作被測(cè)試軟件時(shí)產(chǎn)生的鼠標(biāo)消息和被測(cè)軟件的反饋信息,獲得測(cè)試流程信息,并記錄下來(lái);軟件測(cè)試結(jié)束后,根據(jù)記錄的測(cè)試流程信息,生成測(cè)試記錄文檔。該發(fā)明通過(guò)鉤子技術(shù)記錄測(cè)試過(guò)程,在測(cè)試軟件的同時(shí)生成測(cè)試記錄等文檔,大大節(jié)省測(cè)試時(shí)間;同時(shí),實(shí)時(shí)地記錄測(cè)試過(guò)程中的每一步動(dòng)作,不會(huì)造成遺漏,生成的測(cè)試文檔準(zhǔn)確規(guī)范。
在工業(yè)等對(duì)軟件可靠性要求極高的場(chǎng)景應(yīng)用中,需要進(jìn)行長(zhǎng)時(shí)間的測(cè)試工作,如果使用專利201010253925.2提供的測(cè)試紀(jì)錄自動(dòng)生成的方法,會(huì)產(chǎn)生大量日志,當(dāng)程序出現(xiàn)問題時(shí),開發(fā)人員面對(duì)如此多的測(cè)試記錄,將無(wú)法快速找到造成問題的原因。
技術(shù)實(shí)現(xiàn)要素:
(一)要解決的技術(shù)問題
本發(fā)明要解決的技術(shù)問題是:如何使程序開發(fā)人員在面對(duì)大量程序測(cè)試記錄時(shí),能夠快速找到造成程序出現(xiàn)問題的原因。
(二)技術(shù)方案
為解決上述技術(shù)問題,本發(fā)明提供一種基于鉤子函數(shù)的圖形界面程序測(cè)試日志記錄及回放方法,其特征在于,該方法基于程序測(cè)試日志及回放系統(tǒng)來(lái)實(shí)施,所述程序測(cè)試日志及回放系統(tǒng)包括:用戶動(dòng)作記錄模塊、日志存儲(chǔ)模塊、日志解析模塊以及回放模塊;
該方法包括如下步驟:
步驟1:由用戶動(dòng)作記錄模塊通過(guò)開始、暫?;蚪Y(jié)束指令來(lái)記錄用戶的動(dòng)作,生成用戶的各種動(dòng)作序列及觸發(fā)時(shí)間;
當(dāng)用戶通過(guò)鍵盤輸入或點(diǎn)擊鼠標(biāo)時(shí),會(huì)觸發(fā)Windows系統(tǒng)的一條消息,在鼠標(biāo)點(diǎn)擊動(dòng)作發(fā)生時(shí),這條消息包括鼠標(biāo)點(diǎn)擊的位置、時(shí)間、以及包括單擊、雙擊、右擊在內(nèi)的點(diǎn)擊模式,Windows系統(tǒng)在處理這條消息之前,會(huì)被日志鉤子先一步截獲,此時(shí),將日志鉤子截獲的消息復(fù)制一份加入用戶動(dòng)作序列鏈表中,并且交給日志存儲(chǔ)模塊進(jìn)行保存,重復(fù)此過(guò)程,用戶動(dòng)作記錄模塊就記錄下用戶的各種動(dòng)作序列,生成日志記錄;
步驟2:由日志存儲(chǔ)模塊將用戶的各種動(dòng)作序列及觸發(fā)時(shí)間,按照自定義格式保存,并且按照用戶指定的文件名存儲(chǔ)為文本文件,作為日志記錄;
步驟3:由日志解析模塊提取日志記錄中用戶的動(dòng)作序列及動(dòng)作的觸發(fā)時(shí)間;
步驟4:由日志回放模塊提供與用戶動(dòng)作回放相關(guān)的功能,包括回放的開始、暫停、結(jié)束,以及多種控制速度和回放位置選擇;
其中,日志解析模塊首先進(jìn)行日志的解析,分析出用戶動(dòng)作的總時(shí)間,然后按照用戶的選擇,在日志記錄中從用戶指定的回放時(shí)間處提取用戶動(dòng)作序列,然后按照用戶指定的回放速度,將各動(dòng)作時(shí)間按相同比例延長(zhǎng)或縮短為用戶指定的回放速率倍數(shù)。
(三)有益效果
與現(xiàn)有技術(shù)相比較,本發(fā)明技術(shù)方案中,程序測(cè)試人員通過(guò)使用測(cè)試記錄程序的日志記錄鉤子將被測(cè)程序的測(cè)試過(guò)程記錄于文本中。程序開發(fā)人員在回放軟件測(cè)試過(guò)程時(shí),通過(guò)測(cè)試回放程序中的日志回放鉤子加載測(cè)試文本中的測(cè)試過(guò)程,并可通過(guò)調(diào)整測(cè)試記錄程序的回放設(shè)置來(lái)控制回放的速度與進(jìn)度。
本發(fā)明可以幫助程序開發(fā)人員在大量的測(cè)試記錄中,快速發(fā)現(xiàn)造成程序問題的原因。
附圖說(shuō)明
圖1-圖3為本發(fā)明技術(shù)方案原理示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、內(nèi)容、和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。
為解決現(xiàn)有技術(shù)的問題,本發(fā)明提供一種基于鉤子函數(shù)的圖形界面程序測(cè)試日志記錄及回放方法,如圖1所示,該方法基于程序測(cè)試日志及回放系統(tǒng)來(lái)實(shí)施,所述程序測(cè)試日志及回放系統(tǒng)包括:用戶動(dòng)作記錄模塊、日志存儲(chǔ)模塊、日志解析模塊以及回放模塊;
該方法包括如下步驟:
步驟1:由用戶動(dòng)作記錄模塊通過(guò)開始、暫?;蚪Y(jié)束指令來(lái)記錄用戶的動(dòng)作,生成用戶的各種動(dòng)作序列及觸發(fā)時(shí)間;
如圖2所示,當(dāng)用戶通過(guò)鍵盤輸入或點(diǎn)擊鼠標(biāo)時(shí),會(huì)觸發(fā)Windows系統(tǒng)的一條消息,在鼠標(biāo)點(diǎn)擊動(dòng)作發(fā)生時(shí),這條消息包括鼠標(biāo)點(diǎn)擊的位置、時(shí)間、以及包括單擊、雙擊、右擊在內(nèi)的點(diǎn)擊模式,Windows系統(tǒng)在處理這條消息之前,會(huì)被日志鉤子先一步截獲,此時(shí),將日志鉤子截獲的消息復(fù)制一份加入用戶動(dòng)作序列鏈表中,并且交給日志存儲(chǔ)模塊進(jìn)行保存,重復(fù)此過(guò)程,用戶動(dòng)作記錄模塊就記錄下用戶的各種動(dòng)作序列,生成日志記錄;
步驟2:由日志存儲(chǔ)模塊將用戶的各種動(dòng)作序列及觸發(fā)時(shí)間,按照自定義格式保存,并且按照用戶指定的文件名存儲(chǔ)為文本文件,作為日志記錄;
步驟3:由日志解析模塊提取日志記錄中,用戶的動(dòng)作序列及動(dòng)作的觸發(fā)時(shí)間;
步驟4:由日志回放模塊提供與用戶動(dòng)作回放相關(guān)的功能,包括回放的開始、暫停、結(jié)束,以及多種控制速度和回放位置選擇;
如0.5倍速,1倍速,2倍速等來(lái)控制程序回放速度;并且,還可以選擇回放進(jìn)度,如回放到測(cè)試過(guò)程的25%,50%,75%等,來(lái)方便程序開發(fā)人員觀察程序測(cè)試結(jié)果;
其中,如圖3所示,日志解析模塊首先進(jìn)行日志的解析,分析出用戶動(dòng)作的總時(shí)間,然后按照用戶的選擇,在日志記錄中從用戶指定的回放時(shí)間處提取用戶動(dòng)作序列,然后按照用戶指定的回放速度,將各動(dòng)作時(shí)間按相同比例延長(zhǎng)或縮短為用戶指定的回放速率倍數(shù)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變形,這些改進(jìn)和變形也應(yīng)視為本發(fā)明的保護(hù)范圍。