本技術(shù)涉及嵌入式軟件處理,更具體地說,涉及一種嵌入式軟件測試方法及裝置。
背景技術(shù):
1、通常在嵌入式軟件領(lǐng)域中,在代碼開發(fā)、調(diào)試和測試階段之前,需要先確定問題點(diǎn),然后對(duì)問題點(diǎn)進(jìn)行分析,在分析過程中可能要打印相應(yīng)變量,此時(shí)需要修改源代碼,讓故障復(fù)現(xiàn)或消除。如果修改源代碼有效,則定位到了問題點(diǎn)。
2、由于上述過程需要更改源代碼,使得嵌入式軟件的調(diào)試過程繁鎖,從而導(dǎo)致嵌入式軟件的調(diào)試和測試的效率低。
3、因此,如何提高嵌入式軟件的調(diào)試和測試的效率,是本技術(shù)亟需解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本技術(shù)公開了一種嵌入式軟件測試方法及裝置,旨在提高嵌入式軟件的測試和調(diào)試效率。
2、為了實(shí)現(xiàn)上述目的,其公開的技術(shù)方案如下:
3、本技術(shù)第一方面公開了一種嵌入式軟件測試方法,所述方法包括:
4、在整個(gè)代碼周期中,確定嵌入式軟件項(xiàng)目的疑似故障點(diǎn),并確定所述疑似故障點(diǎn)的地址;
5、判斷嵌入式軟件項(xiàng)目是否存在通信接口,得到判斷結(jié)果;
6、根據(jù)所述判斷結(jié)果對(duì)應(yīng)的下發(fā)方式,將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù);其中,所述地址、疑似故障點(diǎn)的名稱和所述數(shù)據(jù)之間存在對(duì)應(yīng)關(guān)系;
7、將所述地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端。
8、優(yōu)選的,所述在整個(gè)代碼周期中,確定嵌入式軟件項(xiàng)目的疑似故障點(diǎn),并確定所述疑似故障點(diǎn)的地址,包括:
9、在整個(gè)代碼周期中,當(dāng)監(jiān)測到嵌入式軟件項(xiàng)目的實(shí)際數(shù)據(jù)與預(yù)設(shè)期望數(shù)據(jù)不一致時(shí),對(duì)不一致的數(shù)據(jù)進(jìn)行定位,得到嵌入式軟件項(xiàng)目的疑似故障點(diǎn);
10、獲取疑似故障點(diǎn)的名稱,以及確定疑似故障點(diǎn)的類型;
11、通過預(yù)設(shè)開發(fā)環(huán)境,在代碼生成的項(xiàng)目中根據(jù)疑似故障點(diǎn)的名稱和所述疑似故障點(diǎn)的類型,確定疑似故障點(diǎn)所對(duì)應(yīng)的地址。
12、優(yōu)選的,所述根據(jù)所述判斷結(jié)果對(duì)應(yīng)的下發(fā)方式,將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù),包括:
13、若嵌入式軟件項(xiàng)目存在通信接口,將預(yù)設(shè)調(diào)試命令和預(yù)設(shè)通信命令集成到通信接口,并通過所述通信接口將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù);
14、通過所述預(yù)設(shè)通信接口,將所述地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端;
15、若嵌入式軟件項(xiàng)目不存在通信接口,通過專用調(diào)試命令和專用測試接口將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù),并將所述地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端。
16、優(yōu)選的,所述若嵌入式軟件項(xiàng)目存在通信接口,將預(yù)設(shè)調(diào)試命令和預(yù)設(shè)通信命令集成到通信接口,并通過所述通信接口將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù),包括:
17、判斷所述嵌入式軟件項(xiàng)目是否存在通信接口,以及所述地址的地址類型;其中,所述地址類型至少包括變量地址或寄存器地址;
18、若所述嵌入式軟件項(xiàng)目存在通信接口,且所述地址的地址類型為變量地址,將預(yù)設(shè)調(diào)試命令和預(yù)設(shè)通信命令進(jìn)行集成;
19、通過所述通信接口和集成后的命令,將所述變量地址下發(fā)到微控制單元,以使所述微控制單元通過指針引用獲取所述變量地址所指向的數(shù)據(jù);
20、若所述嵌入式軟件項(xiàng)目存在通信接口,且所述地址的地址類型為寄存器地址,通過所述通信接口和集成后的命令,將所述寄存器地址下發(fā)到微控制單元,以使所述微控制單元通過指針引用獲取所述寄存器地址所指向的十六進(jìn)制數(shù)據(jù)和十進(jìn)制數(shù)據(jù)。
21、優(yōu)選的,所述若嵌入式軟件項(xiàng)目不存在通信接口,通過專用調(diào)試命令和專用測試接口將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù),并將所述地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端,包括:
22、若所述嵌入式軟件項(xiàng)目不存在通信接口,且所述地址的地址類型為變量地址,通過專用調(diào)試命令和專用測試接口,將所述變量地址下發(fā)到微控制單元,以使所述微控制單元通過指針引用獲取所述變量地址所指向的變量名稱;其中,所述調(diào)試命令為在通信過程中對(duì)項(xiàng)目功能無影響的命令;
23、若所述嵌入式軟件項(xiàng)目不存在通信接口,且所述地址的地址類型為寄存器地址,通過專用調(diào)試命令和專用測試接口,將所述寄存器地址下發(fā)到微控制單元,以使所述微控制單元通過指針引用獲取所述寄存器地址所指向的十六進(jìn)制數(shù)據(jù)和十進(jìn)制數(shù)據(jù)。
24、優(yōu)選的,還包括:
25、若監(jiān)測到所述微控制單元與客戶端連接未成功,通過中間轉(zhuǎn)發(fā)設(shè)備對(duì)所述微控制單元與客戶端進(jìn)行連接。
26、本技術(shù)第二方面公開了一種嵌入式軟件測試裝置,所述裝置包括:
27、確定單元,用于在整個(gè)代碼周期中,確定嵌入式軟件項(xiàng)目的疑似故障點(diǎn),并確定所述疑似故障點(diǎn)的地址;
28、判斷單元,用于判斷嵌入式軟件項(xiàng)目是否存在通信接口,得到判斷結(jié)果;
29、下發(fā)單元,用于根據(jù)所述判斷結(jié)果對(duì)應(yīng)的下發(fā)方式,將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù);其中,所述地址、疑似故障點(diǎn)的名稱和所述數(shù)據(jù)之間存在對(duì)應(yīng)關(guān)系;
30、回傳單元,用于將所述地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端。
31、優(yōu)選的,所述確定單元,包括:
32、定位模塊,用于在整個(gè)代碼周期中,當(dāng)監(jiān)測到嵌入式軟件項(xiàng)目的實(shí)際數(shù)據(jù)與預(yù)設(shè)期望數(shù)據(jù)不一致時(shí),對(duì)不一致的數(shù)據(jù)進(jìn)行定位,得到嵌入式軟件項(xiàng)目的疑似故障點(diǎn);
33、第一獲取模塊,用于獲取疑似故障點(diǎn)的名稱,以及確定疑似故障點(diǎn)的類型;
34、第二獲取模塊,用于通過預(yù)設(shè)開發(fā)環(huán)境,在代碼生成的項(xiàng)目中根據(jù)疑似故障點(diǎn)的名稱和所述疑似故障點(diǎn)的類型,確定疑似故障點(diǎn)所對(duì)應(yīng)的地址。
35、優(yōu)選的,所述下發(fā)單元,包括:
36、第一下發(fā)模塊,用于若嵌入式軟件項(xiàng)目存在通信接口,將預(yù)設(shè)調(diào)試命令和預(yù)設(shè)通信命令集成到通信接口,并通過所述通信接口將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù);
37、回傳模塊,用于通過所述預(yù)設(shè)通信接口,將所述地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端;
38、第二下發(fā)模塊,用于若嵌入式軟件項(xiàng)目不存在通信接口,通過專用調(diào)試命令和專用測試接口將所述地址下發(fā)到微控制單元,以使所述微控制單元返回所述地址對(duì)應(yīng)的數(shù)據(jù),并將所述地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端。
39、優(yōu)選的,所述第一下發(fā)模塊,包括:
40、判斷子模塊,用于判斷所述嵌入式軟件項(xiàng)目是否存在通信接口,以及所述地址的地址類型;其中,所述地址類型至少包括變量地址或寄存器地址;
41、集成子模塊,用于若所述嵌入式軟件項(xiàng)目存在通信接口,且所述地址的地址類型為變量地址,將預(yù)設(shè)調(diào)試命令和預(yù)設(shè)通信命令進(jìn)行集成;
42、第一下發(fā)子模塊,用于通過所述通信接口和集成后的命令,將所述變量地址下發(fā)到微控制單元,以使所述微控制單元通過指針引用獲取所述變量地址所指向的數(shù)據(jù);
43、第二下發(fā)子模塊,用于若所述嵌入式軟件項(xiàng)目存在通信接口,且所述地址的地址類型為寄存器地址,通過所述通信接口和集成后的命令,將所述寄存器地址下發(fā)到微控制單元,以使所述微控制單元通過指針引用獲取所述寄存器地址所指向的十六進(jìn)制數(shù)據(jù)和十進(jìn)制數(shù)據(jù)。
44、經(jīng)由上述技術(shù)方案可知,本技術(shù)公開了一種嵌入式軟件測試方法及裝置,在整個(gè)代碼周期中,確定嵌入式軟件項(xiàng)目的疑似故障點(diǎn),并確定疑似故障點(diǎn)的地址,判斷嵌入式軟件項(xiàng)目是否存在通信接口,得到判斷結(jié)果,根據(jù)判斷結(jié)果對(duì)應(yīng)的下發(fā)方式,將地址下發(fā)到微控制單元,以使微控制單元返回地址對(duì)應(yīng)的數(shù)據(jù),其中,地址、疑似故障點(diǎn)的名稱和數(shù)據(jù)之間存在對(duì)應(yīng)關(guān)系,將地址對(duì)應(yīng)的數(shù)據(jù)回傳至客戶端。通過上述方案,無需在分析過程中打印相應(yīng)變量來修改源代碼讓故障復(fù)現(xiàn)或消除。只需將獲取到的疑似故障點(diǎn)的地址發(fā)送至微控制單元,通過疑似故障點(diǎn)的地址定位所指向的變量數(shù)據(jù)或寄存器數(shù)據(jù),以便后續(xù)對(duì)變量數(shù)據(jù)或寄存器數(shù)據(jù)進(jìn)行測試、調(diào)試,由于只對(duì)地址進(jìn)行操作,不區(qū)分讀取的內(nèi)容,所以占用的空間比較小,從而提高嵌入式軟件的測試和調(diào)試效率。