專利名稱:嵌入式軟件自動測試系統(tǒng)及其測試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式軟件測試技術(shù),具體說,涉及一種嵌入式軟件自 動測試系統(tǒng)及其測試方法。
背景技術(shù):
在嵌入式開發(fā)領(lǐng)域,大量的軟件的開發(fā)與硬件的聯(lián)系是很緊密的,在通常的開發(fā)模式下,只有等硬件的:&計完成之后,軟件架于硬件之上,才能對 它進(jìn)行功能以及可靠性的測試。怎樣使軟件脫離硬件進(jìn)行功能的測試,變得 曰益重要。嵌入式軟件的組成結(jié)構(gòu)一般都是CPU加外圍電路及芯片的方式,而對 這些硬件的操作,體現(xiàn)為對整個CPU地址空間內(nèi)的一些寄存器的搡作。現(xiàn) 有方法是通常是將這些操作寫入了打樁文件,對功能的驗證要人工去查看打 樁文件進(jìn)行驗證,這樣是繁瑣且不可記錄的。發(fā)明內(nèi)容本發(fā)明所解決的技術(shù)問題是提供一種嵌入式軟件自動測試系統(tǒng),將嵌入 式軟件的功能轉(zhuǎn)化為寄存器的操作,以文件的形式管理起來,通過監(jiān)控組件 對打樁文件實時監(jiān)控,實現(xiàn)待測軟件的功能驗證。技術(shù)方案如下嵌入式軟件自動測試系統(tǒng)包括 待測試軟件模塊,用于存放待測試軟件;打樁文件模塊,用于存放打樁文件,所述打樁文件記錄了 CPU操作了 的寄存器的值;規(guī)則生成組件,用于生成對寄存器操作的規(guī)則文件,并將該規(guī)則文件存
放在規(guī)則文件模塊中,所述規(guī)則文件包含有至少一條規(guī)則,所述規(guī)則是對寄存器的獨立的子操作;監(jiān)控組件,在待測軟件運行之前,先解析出打樁文件中的值與地址的對 應(yīng)關(guān)系,待測軟件在運行的過程中,監(jiān)控組件實時載入規(guī)則文件,并進(jìn)行解 析,判斷打樁文件里面的信息是否通過規(guī)則,并輸出是否通過的信息。優(yōu)選的,所述規(guī)則的分類包括對寄存器進(jìn)行值的設(shè)置、對寄存器的特 定位進(jìn)行設(shè)置或者對寄存器的連續(xù)位進(jìn)行才莫式變化。優(yōu)選的,所述監(jiān)控組件中,如果打樁文件里面的信息沒有通過規(guī)則,輸 出相關(guān)的寄存器的值在初始與當(dāng)前的變化情況。優(yōu)選的,規(guī)則的存儲方式為子操作類型+起始地址+終止地址+ [是否進(jìn)行位操作]+ [起始位]+ [終止位]+操作才莫式;其中,子l喿作類型用 于設(shè)置規(guī)則的類型,多地址的操作與單地址在格式上保持統(tǒng)一,操作模式包 含位移、反轉(zhuǎn)以及自定義的操作,起始位和終止位字段在進(jìn)行位搡作時存在。本發(fā)明所解決的另外一個技術(shù)問題是提供一種嵌入式軟件自動測試方 法,通過監(jiān)控組件對樁文件實時的監(jiān)控,實現(xiàn)待測軟件的功能驗證。4支術(shù)方案如下嵌入式軟件自動測試方法步驟如下(1) 分析待測試軟件的功能,規(guī)則生成組件將功能生成規(guī)則,并保存 為頭見則文件;(2) 運行待測試的軟件,實時操作打樁文件;(3) 打開監(jiān)控組件,指定打樁文件;(4) 依次載入相應(yīng)的規(guī)則文件,對在待測試軟件的程序進(jìn)行實時的監(jiān)控。進(jìn)一步,步驟(2)中,所述打樁文件中記錄有操作了的所有寄存器的 值,格式是以"地址=值"的方式。進(jìn)一步,步驟(4)中,根據(jù)監(jiān)控組件反饋的未通過的規(guī)則的信息,對 待測試軟件的代碼進(jìn)行的修改,直到最后通過所有的規(guī)則。
進(jìn)一步,步驟(4)具體為(41) 指定一條新的規(guī)則文件;(42) 監(jiān)控組件監(jiān)控指定的規(guī)則文件;(43) 當(dāng)指定的規(guī)則文件通過,則監(jiān)控組件指定下一條規(guī)則文件進(jìn)行監(jiān) 控,直到待測試軟件中的規(guī)則文件全部通過測試;當(dāng)指定的規(guī)則文件中的規(guī) 則沒有通過,則停止監(jiān)控,修改待測試程序,并對修改后的規(guī)則文件繼續(xù)進(jìn) 行監(jiān)控。進(jìn)一步,步驟(43)具體為(431) 監(jiān)控組件判斷指定規(guī)則文件中的規(guī)則是否全部通過;通過,執(zhí) 行步驟(432),否則,停止監(jiān)控,修改待測試程序,執(zhí)行步驟(42)。(432) 當(dāng)指定的規(guī)則文件中的規(guī)則全部通過,判斷待測試軟件的規(guī)則 文件是否全部通過,當(dāng)全部通過,測試完畢;當(dāng)規(guī)則文件沒有全部通過,執(zhí) 行步驟(41)。進(jìn)一步,規(guī)則的存儲方式為子操作類型+起始地址+終止地址+ [是否進(jìn)行位操作]+ [起始位]+ [終止位]+操作模式;其中,子操作類型用 于設(shè)置規(guī)則的類型,多地址的操作與單地址在格式上保持統(tǒng)一,操作模式包 含位移、反轉(zhuǎn)以及自定義的操作,起始位和終止位字段在進(jìn)行位操作時存在。有益效果如下1、 將待測人員對打樁文件的驗證工作用監(jiān)控組件完全替代,減少了工 作量。2、 本方法將獨立的功能分解為多條規(guī)則,并存為一個規(guī)則文件,可實 現(xiàn)軟件的每個功能的獨立測試。3、 本方法由于保存了所有的規(guī)則文件,可與需求一一對應(yīng)起來,所以 在軟件做出更改之后,方便回歸測試。
圖1是嵌入式軟件自動測試系統(tǒng)的結(jié)構(gòu)示意圖2是嵌入式軟件自動測試方法的流禾呈圖。
具體實施方式
整個方案的實施的前提是嵌入式軟件對底層的操作已經(jīng)作用在打樁文 件之上。規(guī)則生成組件能生成出一系列對寄存器操作的規(guī)則文件,其中每一 個規(guī)則文件描述了嵌入式軟件的單個功能要求。而每一個規(guī)則文件又包含了 多條規(guī)則,每一條規(guī)則是對寄存器的獨立的子操作.規(guī)則(Rule)的分類有如下幾種(1) 對一定范圍內(nèi)的寄存器進(jìn)行值的設(shè)置。(2) 對一定范圍內(nèi)寄存器的特定位進(jìn)行設(shè)置。(3) 對一定寄存器的連續(xù)位進(jìn)行模式變化,比如,向左或向右的位移、 位反轉(zhuǎn)以及特定的模式操作等。所有類型的寄存器操作都可分解為上述的子操作。監(jiān)控組件在待測軟件運行之前,先解析出打樁文件中的值與地址的對應(yīng) 關(guān)系,待測軟件在運行的過程中,監(jiān)控組件實時栽入規(guī)則文件,并進(jìn)行解析, 判斷樁文件里面的信息是否通過了這些規(guī)則。每隔一段時間對每一條規(guī)則進(jìn) 行判斷,并輸出是否通過的信息,如果沒有通過,還需輸出相關(guān)的寄存器的 值在初始與現(xiàn)在的變化情況,用戶更改待測軟件的功能,直到最終完全通過 規(guī)則。在做傳輸設(shè)備的過程中,單板上運行的都是MPC的嵌入式軟件。我們 實現(xiàn)了將嵌入式軟件的代碼移植到PC上,并在PC上進(jìn)行功能測試與調(diào)試。將驅(qū)動層對寄存器的讀寫操作的信息替換為對打樁文件的操作。該打樁 文件中記錄了操作了的所有寄存器的值,格式是以"地址=值"的方式。在windows的環(huán)境下,實現(xiàn)規(guī)則生成組件,這個組件提供了UI接口, 可讓用戶編輯出一系列規(guī)則,并將它們生成規(guī)則文件。為了方便監(jiān)控組件能方便地解析規(guī)則文件的信息,每一條規(guī)則采用如下 的方式存儲子操作類型+起始地址+終止地址+ [是否進(jìn)行位操作]+ [起始位]+ [終止位]+設(shè)置值(或操作模式)。這樣設(shè)計有如下特點(1) 其中"于採作類型"的格式用來解析規(guī)則文件,簡化了處理。(2) 多地址的操作與單地址在格式上保持統(tǒng)一。(3) 操作模式包含了位移、反轉(zhuǎn)以及自定義的操作。(4) "起始位,,和"終止位"字段只有在進(jìn)行位操作時才存在。 例如,可以有如下的身見則SETVALUE 0xl9be-0xl9be = Oxff SETVALUE 0xl9e7-0xl9e8 = Oxe OPERBIT 0xl9e7-0xl9e8 BIT 0xl-0x3 = SET SETBIT 0xl9e7-0xl9e8 BIT 0xl-0x3 = 0x7 OPERBIT 0xl9e7曙0xl9e8 BIT OxO-OxO = CLR OPERBIT 0x1002-0x1003 BIT 0x0-0x7 = REV在windows環(huán)境下實現(xiàn)運行監(jiān)控組件,使得待測軟件在運行的過程中, 能栽入規(guī)則文件,并利用它對打樁文件進(jìn)行實時監(jiān)控,并打印出每一個規(guī)則 是否通過的信息,如果沒有通過,要打印出與這條規(guī)則相關(guān)寄存器的信息。如圖l所示,結(jié)合附圖對嵌入式軟件自動測試系統(tǒng)作詳細(xì)描述。嵌入式軟件自動測試系統(tǒng)包括待測試軟件模塊11、監(jiān)控組件12、規(guī)則 生成組件13、打樁文件才莫塊14、規(guī)則文件模塊。其中,待測試軟件;溪塊11用于存放待測試軟件;打樁文件模塊14用于 存放打樁文件,打樁文件記錄了 CPU操作了的寄存器的值;規(guī)則生成組件 13用于生成對寄存器操作的規(guī)則文件,并將該規(guī)則文件存放在規(guī)則文件模 塊中15中,該規(guī)則文件包含有多條規(guī)則,該規(guī)則是對寄存器的獨立的子梯: 作;監(jiān)控組件12在待測軟件運行之前,先解析出打樁文件中的值與地址的 對應(yīng)關(guān)系,待測軟件在運行的過程中,監(jiān)控組件12實時載入規(guī)則文件,并 進(jìn)行解析,判斷打樁文件里面的信息是否通過了規(guī)則,如果沒有通過,輸出 相關(guān)的寄存器的值在初始與變化情況。每隔一段時間,依次對每一條規(guī)則進(jìn) 行判斷,并輸出是否通過的信息。 如圖2所示,結(jié)合附圖對待測軟件的測試作詳細(xì)描述。嵌入式軟件自動測試方法的步驟如下步驟S201:將待測試軟件的功能分解為多條規(guī)則。步驟S202:在規(guī)則生成組件13中,生成多條規(guī)則,并保存為規(guī)則文件。步驟S203:運行待測試軟件,實時操作打樁文件。步驟S204:打開監(jiān)控組件,指定樁文件。做完上述工作后,接下來,依次栽入相應(yīng)的規(guī)則文件,對在待測試軟件 的程序進(jìn)行實時的監(jiān)控,具體如下步驟S205:監(jiān)控組件12指定一條新的規(guī)則文件。步驟S206:監(jiān)控組件12對指定的規(guī)則文件進(jìn)行監(jiān)控。步驟S207:監(jiān)控組件12判斷指定的規(guī)則文件中的規(guī)則是否通過。如果指定的規(guī)則文件中的規(guī)則全部通過,執(zhí)行步驟S210;如果指定的 規(guī)則文件中的某條規(guī)則沒有通過測試,執(zhí)行步驟S208。步驟S208:監(jiān)控組件12暫時停止對指定的規(guī)則文件的監(jiān)控。步驟S209:根據(jù)監(jiān)控組件12反饋的未通過的規(guī)則的信息,對待測代碼 進(jìn)行^修改,直到最后通過所有的規(guī)則。步驟S210:判斷待測軟件中的規(guī)則文件是否全部通過檢測。當(dāng)規(guī)則文件沒有全部測試完畢,執(zhí)行步驟S205;當(dāng)規(guī)則文件全部通過, 即待測軟件中的所有規(guī)則文件中通過檢測,則測試完畢,結(jié)束檢測。MJ'J文件可保存下來,如果以后待測代碼進(jìn)行了更改,可以再次使用保 存的規(guī)則文件進(jìn)行測試。
權(quán)利要求
1、 一種嵌入式軟件自動測試系統(tǒng),包括 待測試軟件模塊,用于存放待測試軟件;打樁文件模塊,用于存放打樁文件,所述打樁文件記錄了 CPU操作了 的寄存器的值;其特征在于,還包括規(guī)則生成組件,用于生成對寄存器操作的規(guī)則文件,并將該規(guī)則文件存 放在規(guī)則文件模塊中,所述規(guī)則文件包含有至少一條規(guī)則,所述規(guī)則是對寄 存器的獨立的子操作;監(jiān)控組件,在待測軟件運行之前,先解析出打樁文件中的值與地址的對 應(yīng)關(guān)系,待測軟件在運行的過程中,監(jiān)控組件實時栽入失見則文件,并進(jìn)行解 析,判斷打樁文件里面的信息是否通過規(guī)則,并輸出是否通過的信息。
2、 根據(jù)權(quán)利要求1所述的嵌入式軟件自動測試系統(tǒng),其特征在于,所 述規(guī)則的分類包括對寄存器進(jìn)行值的設(shè)置、對寄存器的特定位進(jìn)行設(shè)置或 者對寄存器的連續(xù)位進(jìn)行模式變化。
3、 根據(jù)權(quán)利要求1或者2任一項所述的嵌入式軟件自動測試系統(tǒng),其 特征在于,所述監(jiān)控組件中,如果打樁文件里面的信息沒有通過規(guī)則,輸出 相關(guān)的寄存器的值在初始與當(dāng)前的變化情況。
4、 根據(jù)權(quán)利要求3所述的嵌入式軟件自動測試系統(tǒng),其特征在于,規(guī) 則的存儲方式為子操作類型+起始地址+終止地址+[是否進(jìn)行位操作] + [起始位]+ [終止位]+操作模式;其中,子操作類型用于設(shè)置規(guī)則的類型, 多地址的操作與單地址在格式上保持統(tǒng)一,操作模式包含位移、反轉(zhuǎn)以及自 定義的操作,起始位和終止位字段在進(jìn)行位操作時存在。
5、 一種嵌入式軟件自動測試方法,步驟如下(1 )分析待測試軟件的功能,規(guī)則生成組件將功能生成規(guī)則,并保存為規(guī)則文件;(2) 運行待測試軟件,實時搡作打樁文件;(3) 打開監(jiān)控組件,指定打樁文件;(4) 依次栽入相應(yīng)的規(guī)則文件,對在待測試軟件的程序進(jìn)行實時的監(jiān)控。
6、 根據(jù)權(quán)利要求5所述的嵌入式軟件自動測試方法,其特征在于,步 驟(2)中,所述打樁文件中記錄有操作了的所有寄存器的值,格式是以"地 址-值"的方式。
7、 根據(jù)權(quán)利要求5所述的嵌入式軟件自動測試方法,其特征在于,步 驟(4)中,根據(jù)監(jiān)控組件反饋的未通過的規(guī)則的信息,對待測試軟件的代 碼進(jìn)行的修改,直到最后通過所有的規(guī)則。
8、 根據(jù)權(quán)利要求5所述的嵌入式軟件自動測試方法,其特征在于,步 驟(4)具體為(41) 指定一條新的規(guī)則文件;(42) 監(jiān)控組件監(jiān)控指定的規(guī)則文件;(43) 當(dāng)指定的規(guī)則文件通過,則監(jiān)控組件指定下一條規(guī)則文件進(jìn)行監(jiān) 控,直到待測試軟件中的規(guī)則文件全部通過測試;當(dāng)指定的規(guī)則文件中的規(guī) 則沒有通過,則停止監(jiān)控,修改待測試程序,并對修改后的規(guī)則文件繼續(xù)進(jìn) 行監(jiān)控。
9、 根據(jù)權(quán)利要求7所述的嵌入式軟件自動測試方法,其特征在于,步 驟(43)具體為(431)監(jiān)控組件判斷指定規(guī)則文件中的規(guī)則是否全部通過;通過,執(zhí) 行步驟(432),否則,停止監(jiān)控,修改待測試程序,執(zhí)行步驟(42)。(432)當(dāng)指定的規(guī)則文件中的規(guī)則全部通過,判斷待測試軟件的規(guī)則文件是否全部通過,當(dāng)全部通過,測試完畢;當(dāng)規(guī)則文件沒有全部通過,執(zhí) 行步驟(41)。
10、據(jù)權(quán)利要求5至9任一項所述的嵌入式軟件自動測試方法,其特征 在于,規(guī)則的存儲方式為子操作類型+起始地址+終止地址+[是否進(jìn) 行位操作]+ [起始位]+ [終止位]+操作模式;其中,子操作類型用于設(shè)置 規(guī)則的類型,多地址的操作與單地址在格式上保持統(tǒng)一,操作模式包含位移、 反轉(zhuǎn)以及自定義的操作,起始位和終止位字段在進(jìn)行位操作時存在。
全文摘要
本發(fā)明公開了一種嵌入式軟件自動測試系統(tǒng),包括待測試軟件模塊,用于存放待測試軟件;打樁文件模塊,用于存放打樁文件,所述打樁文件記錄了CPU操作了的寄存器的值;規(guī)則生成組件,用于生成對寄存器操作的規(guī)則文件,并將該規(guī)則文件存放在規(guī)則文件模塊中,規(guī)則文件包含有至少一條規(guī)則,規(guī)則是對寄存器的獨立的子操作;監(jiān)控組件,在待測軟件運行之前,先解析出打樁文件中的值與地址的對應(yīng)關(guān)系,待測軟件在運行的過程中,監(jiān)控組件實時載入規(guī)則文件,并進(jìn)行解析,判斷打樁文件里面的信息是否通過了規(guī)則,并輸出是否通過的信息。本發(fā)明還公開了一種嵌入式軟件自動測試方法。
文檔編號G06F11/36GK101145126SQ20061012696
公開日2008年3月19日 申請日期2006年9月11日 優(yōu)先權(quán)日2006年9月11日
發(fā)明者張志斌 申請人:中興通訊股份有限公司