鄒小花,王 淵
(1. 南昌航空大學(xué)科技學(xué)院,江西 九江 332020;2. 江西師范大學(xué)軟件學(xué)院,江西 南昌 330022)
嵌入式軟件的質(zhì)量和開發(fā)周期對產(chǎn)品質(zhì)量和上市時(shí)間起著決定性的作用。然而,與一般商用軟件相比,所謂嵌入式軟件是嵌入式計(jì)算機(jī)系統(tǒng)的簡稱。它是將微處理器系統(tǒng)和軟件安裝到硬件框架中,從而實(shí)現(xiàn)系統(tǒng)運(yùn)行和運(yùn)行成本的優(yōu)化,是一個(gè)比較復(fù)雜的測試過程,其輸入、輸出通道少[1-2],開發(fā)工具昂貴,對此,文獻(xiàn)[3]研究了針對多處理器嵌入式軟件的全數(shù)字仿真測試平臺開發(fā)技術(shù),準(zhǔn)確同步每個(gè)核的運(yùn)行時(shí)間,擺脫了半實(shí)物環(huán)境的制約,提高了測試有效性,縮短了測試周期。文獻(xiàn)[4]針對嵌入式機(jī)載軟件設(shè)計(jì)中存在的典型缺陷問題,采用隨機(jī)Petri網(wǎng)對嵌入式機(jī)載軟件給出典型缺陷的檢測策略和判定準(zhǔn)則,以提高嵌入式機(jī)載軟件設(shè)計(jì)的可靠性,進(jìn)而給出了軟件設(shè)計(jì)的運(yùn)行流程的仿真驗(yàn)證算法,對嵌入式機(jī)載軟件系統(tǒng)行為建模。文獻(xiàn)[5]測試了多種異構(gòu)IP核和大量的同構(gòu)IP核,提供了豐富的IP核測試控制以及觀測模式,具有較高的測試自動(dòng)化程度,完成各種數(shù)字IP核測試電路設(shè)計(jì)以及集成,簡化了數(shù)字IP核的測試集成和復(fù)用過程。
隨著近年來使用范圍的不斷擴(kuò)大,對其檢測的要求也在不斷提高。本文分析了現(xiàn)有測試方法的不足,采用DDS芯片搭建了軟件仿真測試平臺,設(shè)計(jì)了基于DDS的機(jī)載嵌入式軟件仿真自測試方法,實(shí)現(xiàn)了嵌入式軟件的深入研究,爭取為軟件提供更好的測試數(shù)據(jù)獲取模式。
在此次研究中,根據(jù)目前機(jī)載嵌入式軟件仿真自測試方法的應(yīng)用效果綜合文獻(xiàn)分析結(jié)果[6-8],使用DDS芯片作為藍(lán)本,設(shè)計(jì)新型的自測試方法。具體測試方法流程如圖1所示。
圖1 機(jī)載嵌入式軟件仿真自測試方法設(shè)計(jì)流程
本研究涉及到部分硬件選型和裝配內(nèi)容。因此,有必要研究軟件仿真測試平臺的裝配效果,以實(shí)現(xiàn)高精度的嵌入式軟件測試,保證系統(tǒng)的使用效果。
在此次設(shè)計(jì)中,將使用DDS芯片作為軟件的仿真測試環(huán)境,根據(jù)軟件的測定要求,將USB接口板設(shè)計(jì)如圖2所示。
圖2 仿真測試平臺硬件結(jié)構(gòu)
根據(jù)上述平臺硬件結(jié)構(gòu)設(shè)定結(jié)果,選擇ARM處理器與FPGA等組成的核心板和通用接口板,以及外圍顯示電路等。在此次研究中,選擇S3C44BOX芯片以及FPGA-EP2C8為核心芯片,在芯片外側(cè)安裝電流反應(yīng)放大器以及濾波電路以此組成仿真測試平臺的核心處理設(shè)備。
根據(jù)上述硬件結(jié)構(gòu),設(shè)置合適的可編程DDS函數(shù)發(fā)生器,實(shí)現(xiàn)軟件仿真自測試。在這部分的設(shè)計(jì)中,將對ARM、ADS集成開發(fā)環(huán)境進(jìn)行設(shè)計(jì)。選擇ADS編譯器開發(fā)軟件測試環(huán)境。利用ARMS3C44BOX程序讀取機(jī)載軟件的內(nèi)部信息,并對其進(jìn)行分析處理。測試數(shù)據(jù)測試平臺采用DDS函數(shù)發(fā)生器模塊實(shí)現(xiàn)不同測試數(shù)據(jù)的傳輸。此部分初始環(huán)節(jié)的部分關(guān)鍵代碼如下所示。
void Isr Init(void)
{
Unit i;
for(i=-RAM_STARTADDRESS;i<(_RAM_STARTADDRESS+Ox20);i+=4)
{
*((volatile unsigned *)i)=OxEA000000+Ox1FFE;
}
rINTCON=0x5;
rINTMOD=0x0;//初始軟件測定
根據(jù)以上程序?qū)DS測試平臺中的測試軟件進(jìn)行控制,并將此作為軟件自動(dòng)測試的基礎(chǔ)。
根據(jù)機(jī)載嵌入式軟件的需求,利用搭建的DDS測試平臺,選擇動(dòng)態(tài)測試模式作為軟件測試模式。同時(shí),將測試平臺設(shè)置為全數(shù)字仿真測試環(huán)境,軟件應(yīng)用所需的硬件和軟件由測試憑證和軟件環(huán)境組成,為軟件測試提供了更加精確的數(shù)字化環(huán)境。使用主機(jī)/目標(biāo)軟件在被測軟件中插入相應(yīng)的功能和語句,并利用這些功能和語句完成數(shù)據(jù)生成過程并將數(shù)據(jù)傳輸?shù)侥繕?biāo)系統(tǒng)。在預(yù)測軟件中,完成相應(yīng)的預(yù)處理任務(wù),并將處理后的數(shù)據(jù)傳送到平臺顯示裝置。將軟件測試過程進(jìn)行總結(jié)。
本研究采用的測試模型為V模型,該模型可以用來測試軟件中的代碼,同時(shí),該模型具有一定的時(shí)效性,測試過程也相對成熟,經(jīng)測試后可得到具有代表性的結(jié)果。將該測試模型應(yīng)用于機(jī)載軟件測試,可以更好地控制軟件開發(fā)的順序和過程,但這種測試模式也存在一些問題,如測試內(nèi)容單一。為了彌補(bǔ)該模型在實(shí)際應(yīng)用中的不足,對V模型進(jìn)行了優(yōu)化,并用W檢驗(yàn)?zāi)P痛鎇9-11],具體內(nèi)容如圖3所示。
圖3 W模型示意圖
由圖3可知,該模型的使用伴隨著周期性的測試過程,不僅針對軟件的代碼部分,還針對軟件的使用需求、設(shè)計(jì)和階段性能進(jìn)行測試。利用該模型,可以對軟件結(jié)構(gòu)和功能問題進(jìn)行更全面的研究,降低軟件仿真測試的成本,保證軟件的質(zhì)量。
根據(jù)以上設(shè)置內(nèi)容,可以更好地完成軟件仿真自測試過程。為了對機(jī)載軟件有更深入的了解,采用聚類分析技術(shù)對軟件測試結(jié)果進(jìn)行聚類分析,以分析軟件使用中存在的問題,進(jìn)行有針對性的優(yōu)化。
本研究根據(jù)聚類系數(shù)f對測試結(jié)果進(jìn)行分析[12],將所有測試結(jié)果視為一個(gè)數(shù)據(jù)組,通過每個(gè)數(shù)據(jù)點(diǎn)的緊度來完成測試結(jié)果的聚類分析,具體計(jì)算過程如下所示
(1)
式中,|ea|表示測試結(jié)果a的所有數(shù)據(jù)節(jié)點(diǎn)之間的邊的總和,da表示測試結(jié)果a的度。
為了提升處理結(jié)果的精度,通過等距劃分方法對自測試數(shù)據(jù)的連續(xù)屬性A進(jìn)行離散化處理,其中決策表能夠表示為
S=(U,A,V,f)
(2)
1)設(shè)定U代表研究對象的非空有限集合,將其稱為論域;R代表建立在U上的一個(gè)等級關(guān)系,將其稱為二元有序組,即近似空間
S=(U,R)
(3)
2)設(shè)定P和S為U中的等價(jià)關(guān)系,S的P正域能夠表示為
POSP(S)=∪P(S)
(4)
設(shè)定R為一個(gè)等價(jià)關(guān)系在,則有
IND(R)=IND(R-{P})
(5)
3)設(shè)定K={U,R}代表一個(gè)測試數(shù)據(jù)庫,則有
(6)
4)設(shè)定S=(U,A,V,f)代表一個(gè)測試信息條件集,設(shè)定論域U中元素的數(shù)量,即
|U|=n
(7)
將第i行第j列中的元素設(shè)定為
mij={a∈A:f(xi,a)}≠f(xj,a),i,j=1,2,…,n
(8)
式中,mij代表能夠區(qū)分對象xi和xj的全部屬性集合。
一般情況下,每個(gè)規(guī)范都可以替換整個(gè)屬性條件,并且不會更改原始的依賴關(guān)系。因此,有必要確定一個(gè)具有最小可能屬性的自規(guī)范集或最小屬性集,對此,采用局部聚類系數(shù)LCC對測試結(jié)果進(jìn)行處理,局部數(shù)據(jù)團(tuán)的邊權(quán)重da的幾何均值可表示為
(9)
(10)
根據(jù)以上公式可得到測試結(jié)果的中心性數(shù)據(jù),部分測試結(jié)果與多個(gè)測試結(jié)果具有直接的聯(lián)系,由此得到測試結(jié)果的度中心性,具體計(jì)算過程如下
(11)
式中,n-1表示測試結(jié)果a的可能連接最大節(jié)點(diǎn)數(shù),n表示測試結(jié)果的數(shù)量。利用上述公式得到測試結(jié)果的聚類中心值,完成測試結(jié)果的聚類過程。
根據(jù)聚類結(jié)果對測試結(jié)果進(jìn)行分類和分析,完成了軟件的仿真自測試過程。至此,完成了基于DDS的機(jī)載嵌入式軟件仿真自測試方法的設(shè)計(jì)。
在上文中,完成了基于DDS的機(jī)載嵌入式軟件仿真自測試方法的設(shè)計(jì)過程,在此次研究中將針對設(shè)計(jì)自測試方法與文獻(xiàn)[3]、文獻(xiàn)[4]、文獻(xiàn)[5]方法進(jìn)行對比研究,以此確定文中設(shè)計(jì)測試方法的使用效果。
在此次實(shí)驗(yàn)中,使用Python作為實(shí)驗(yàn)環(huán)節(jié)腳本語言,應(yīng)用Python3.3.2版本編程軟件對APK文件進(jìn)行逆向分解,提取軟件中的有效信息,并以此作為實(shí)驗(yàn)中的數(shù)據(jù)基礎(chǔ)。為了使嵌入式軟件具有一定的應(yīng)用環(huán)境,將實(shí)驗(yàn)平臺技術(shù)參數(shù)設(shè)定如下。
表1 實(shí)驗(yàn)平臺技術(shù)參數(shù)
應(yīng)用上述實(shí)驗(yàn)平臺參數(shù),完成實(shí)驗(yàn)環(huán)境設(shè)置,并將此平臺作為實(shí)驗(yàn)的實(shí)施平臺,完成實(shí)驗(yàn)對比過程。
在此研究中,選擇某軟件庫作為實(shí)驗(yàn)對象,在此實(shí)驗(yàn)庫中具有1800個(gè)軟件樣本。同時(shí),從網(wǎng)上下載1200個(gè)常用機(jī)載軟件,其中存在120異常軟件,組成軟件樣本庫,樣本中隨機(jī)抽取5組數(shù)據(jù)參數(shù)實(shí)驗(yàn),在被測軟件中插入相應(yīng)的功能和語句,共10條,測試其漏檢率。使用文中設(shè)計(jì)的仿真自測試方法與目前使用中的仿真自測試方法(文獻(xiàn)[3]、文獻(xiàn)[4] 、文獻(xiàn)[5]方法)對軟件庫中的軟件進(jìn)行測定。
將軟件庫中的軟件每300個(gè)為一組(內(nèi)含20個(gè)異常軟件),為了將實(shí)驗(yàn)結(jié)果量化體現(xiàn),設(shè)定實(shí)驗(yàn)對照指標(biāo)如下:設(shè)定TP表示軟件檢測結(jié)果準(zhǔn)確數(shù)量,F(xiàn)P表示樣本檢測結(jié)果異常數(shù)量,TN表示測試條件檢測結(jié)果準(zhǔn)確數(shù)量,F(xiàn)N表示問題樣本檢測結(jié)果異常數(shù)量。則有
(12)
(13)
(14)
在上述公式中,式(12)表示可用軟件在測定軟件中的占比,式(13)表示測試條件的漏檢率,式(14)表示全部軟件的測試精度。在此次實(shí)驗(yàn)中,將實(shí)驗(yàn)結(jié)果通過上述部分進(jìn)行量化處理。
由表2可知,文中設(shè)計(jì)方法可對多占用軟件進(jìn)行自測試,其可測定的軟件個(gè)數(shù)較佳,且可測試軟件占比較高,由此可初步判定文中設(shè)計(jì)方法的使用效果最佳。相較于文中設(shè)計(jì)方法,目前使用中的測試方法可測定軟件個(gè)數(shù)降低,且在不同的組別中,可測試軟件個(gè)數(shù)波動(dòng)較大,存在部分不可測現(xiàn)象(用“-”標(biāo)記),可測試軟件占比較低。由此可見,其它兩種方法的適配性較低,文中設(shè)計(jì)方法的適配性較高,其基礎(chǔ)性能優(yōu)于目前使用中的測試方法。
表2 可測試軟件個(gè)數(shù)實(shí)驗(yàn)結(jié)果
由表3可知,文中設(shè)計(jì)方法對于異常軟件的測定能力較高,功能和語句等相關(guān)類型的測試條件捕捉能力較強(qiáng),可有效獲取到實(shí)驗(yàn)組中的異常軟件。與文中設(shè)計(jì)方法對比可知,文獻(xiàn)[3]方法與文獻(xiàn)[4]方法的使用效果較差,在不同實(shí)驗(yàn)組別的應(yīng)用中,文獻(xiàn)[5]方法的使用效果與理想效果相差最大。在實(shí)際應(yīng)用過程中,對軟件測試條件的檢測能力直接影響到嵌入式軟件的使用效果和機(jī)載系統(tǒng)的穩(wěn)定性。根據(jù)這一理論,本文的設(shè)計(jì)方法比原設(shè)計(jì)方法的效果要好。
表3 測試條件漏檢率實(shí)驗(yàn)結(jié)果
由表4可知,對大量數(shù)據(jù)進(jìn)行整合后可以看出,文中設(shè)計(jì)方法的使用效果優(yōu)于目前使用中方法。在多次實(shí)驗(yàn)中,文中設(shè)計(jì)方法的測試精度維持在98.5%左右,符合軟件自測試的要求。文獻(xiàn)[3]方法、文獻(xiàn)[4]方法和文獻(xiàn)[5]方法的測試精度較低,遠(yuǎn)不及文中設(shè)計(jì)方法的使用效果。
1)深入研究了DDS芯片在嵌入式系統(tǒng)中的應(yīng)用過程,并使用此芯片構(gòu)建軟件仿真測試平臺,為了提升處理結(jié)果的精度,通過等距劃分方法對自測試數(shù)據(jù)的連續(xù)屬性進(jìn)行離散化處理,具有一定的先進(jìn)性與優(yōu)越性。
2)將可測試軟件個(gè)數(shù)實(shí)驗(yàn)結(jié)果、測試條件漏檢率實(shí)驗(yàn)結(jié)果以及全部軟件測試精度實(shí)驗(yàn)結(jié)果綜合分析可以看出,文中設(shè)計(jì)方法的測試精度維持在98.5%左右,漏檢率為0,使用效果與測試能力較高,可降低測試成本。
表4 全部軟件測試精度實(shí)驗(yàn)結(jié)果