本發(fā)明涉及一種包括度量元分類、度量元加權(quán)系數(shù)設(shè)計、度量計算方法、評價規(guī)則和評價流程的度量可編程邏輯器件(fpga)軟件靜態(tài)質(zhì)量方法。
背景技術(shù):
:目前信息安全設(shè)備和專用芯片設(shè)計的主流趨勢是以hdl(hardwaredescriptionlanguage)表達設(shè)計意圖、fpga作為硬件載體、計算機為設(shè)計開發(fā)工具、eda軟件為開發(fā)環(huán)境的設(shè)計方式。為提高信息安全設(shè)備的設(shè)計質(zhì)量,必須對其研究設(shè)計的各個環(huán)節(jié)進行評審。fpga具有集成度高、功耗低、使用靈活和開發(fā)周期短等特點,在數(shù)字系統(tǒng)設(shè)計領(lǐng)域中得到廣泛采用。對fpga軟件測試受到越來越多的行業(yè)重視和研究。如今已經(jīng)發(fā)展成為可以完成超大規(guī)模的復雜組合邏輯與時序邏輯的現(xiàn)場可編程邏輯硬件(fpga)和復雜可編程邏輯硬件(cpld)。隨著工藝技術(shù)的發(fā)展與市場需要,超大規(guī)模、高速、低功耗的新型fpga/cpld不斷推陳出新,新一代的fpga甚至集成了中央處理器(cpu)或數(shù)字處理器(dsp)內(nèi)核。隨著軟件規(guī)模的日益復雜和龐大,軟件的開發(fā)與管理也日益復雜。作為有效保證和驗證軟件質(zhì)量的重要環(huán)節(jié)和依據(jù),軟件測試已逐漸成為軟件研制成本最高的階段。軟件質(zhì)量是軟件的生命,它直接影響著軟件的使用和維護。隨著fpga設(shè)計軟件規(guī)模的不斷增大和復雜度的上升,軟件的開發(fā)與管理也日益復雜,驗證任務(wù)已成為整個設(shè)計流程的瓶頸。軟件質(zhì)量是軟件的生命,它直接影響著軟件的使用和維護。軟件質(zhì)量評價的目的是為了直接支持開發(fā)并獲得能滿足用戶要求的軟件。其最終目標是保證產(chǎn)品能提供所要求的質(zhì)量。因此,對fpga設(shè)計進行高效和充分的驗證是提高fpga設(shè)計可靠性的關(guān)鍵。傳統(tǒng)的功能仿真驗證采用hdl語言對被驗證對象(dut)編寫定向測試用例,人工觀察輸出波形并判斷驗證結(jié)果。缺點是難以達到預期覆蓋率、抽象層次低、通用性差。單元測試作為軟件項目中最早介入的測試活動,易于發(fā)現(xiàn)程序的錯誤和度量元缺陷,也易于實現(xiàn)代碼測試的完全覆蓋,因此單元測試的好壞對于軟件質(zhì)量的保證起著非常關(guān)鍵的作用。然而由于嵌入式軟件的特殊性,如實時性強、與硬件緊密相關(guān)、訪問硬件麻煩,在開發(fā)環(huán)境下模擬整個系統(tǒng)存在困難性,這使得測試一直是個難點,特別是單元測試,由于項目周期不允許,一些嵌入式軟件沒有進行單元測試或單元測試不徹底;有些嵌入式軟件代碼具有較高的耦合性,使單元測試難以進行;測試人員對于嵌入式軟件單元測試過于依賴自動化測試工具,使測試效果不能令人滿意,測試不規(guī)范,效率低,且無法確保嵌入式軟件單元測試的充分性和有效性。依據(jù)fpga軟件生命周期模型中,代碼檢查是測試的第一道門戶,這道門戶檢查質(zhì)量的好壞不僅對代碼本身質(zhì)量帶來影響,而且對后續(xù)工作產(chǎn)生很大影響,后續(xù)各個環(huán)節(jié)出現(xiàn)問題都會反饋回代碼本身,產(chǎn)生反復的迭代工作。因此,只有盡早的在設(shè)計階段中完成代碼檢查,才越能減少后續(xù)的設(shè)計工作重復性,減輕后續(xù)工作的壓力。代碼檢查要比仿真投入時間少得多,效率更高,從早期的設(shè)計階段開始代碼檢查能夠避免錯誤發(fā)生,能在修改設(shè)計和功能仿真所帶來的影響和成本還可見的時候,指出設(shè)計中各種隱藏的問題,降低設(shè)計返工帶來的風險。評價fpga軟硬件的一種常用方法是基準測試,然而構(gòu)造一個對fpga軟硬件性能精確合理的基準測試是十分復雜困難的事情,且差的基準測試規(guī)范將導致不確定的甚至是錯誤的結(jié)果。系統(tǒng)測試是軟件開發(fā)過程中的重要環(huán)節(jié)。fpga軟硬件性能的測試方法變得十分復雜?;鶞蕼y試是用一個基準設(shè)計集按照統(tǒng)一的測試規(guī)范評估和量化目標系統(tǒng)的軟件或硬件性能,是目前計算機領(lǐng)域應(yīng)用最廣泛、最主要的性能測試技術(shù)。fpga軟件測試常用方法可分為動態(tài)測試和靜態(tài)測試,只有動態(tài)測試和靜態(tài)測試有效結(jié)合,才能更好的完成軟件測試工作。代碼審查是軟件靜態(tài)測試中常用的軟件測試方法之一。代碼審查是在不執(zhí)行軟件的條件下有條理的仔細審查軟件代碼,從而找出軟件度量元缺陷的過程。代碼審查可以找出動態(tài)測試難以發(fā)現(xiàn)或隔離的軟件度量元缺陷。在開發(fā)過程初期讓測試人員集中精力進行軟件代碼審查非常有價值:可以提高代碼質(zhì)量;在項目的早期發(fā)現(xiàn)度量元缺陷,將損失降至最低;促進團隊溝通、促進知識共享、共同提高。通過代碼審查,可以確定有問題或者容易產(chǎn)生軟件度量元缺陷的特性范圍。代碼審查過程通??煞譃椋捍a審查策劃階段、代碼審查實施階段以及代碼審查總結(jié)階段。測試的主要評測方法包括覆蓋和質(zhì)量。測試覆蓋是對測試完全程度的評測,它建立在測試覆蓋基礎(chǔ)上,測試覆蓋是由測試需求和測試用例的覆蓋或已執(zhí)行代碼的覆蓋表示的。質(zhì)量是對測試對象(系統(tǒng)或測試的應(yīng)用程序)的可靠性、穩(wěn)定性以及性能的評測。靜態(tài)分析一般采用靜態(tài)分析工具進行,主要分析軟件的代碼規(guī)模、模塊數(shù)、模塊調(diào)用關(guān)系、扇入、扇出、圈復雜度、注釋率等軟件質(zhì)量度量元。靜態(tài)分析的結(jié)果能夠幫助測試人員從代碼內(nèi)部結(jié)構(gòu)信息中開展工作,幫助質(zhì)量管理人員從軟件質(zhì)量度量中進行質(zhì)量監(jiān)督。通過對軟件靜態(tài)分析的總結(jié),可以從降低代碼的圈復雜度和提高代碼的注釋率兩方面提高軟件代碼質(zhì)量。圈復雜度是應(yīng)用最廣泛的靜態(tài)度量之一,用來衡量一個函數(shù)判定結(jié)構(gòu)的復雜程度,圈復雜度公式v(g)=p+1,p是代碼中判定結(jié)點的數(shù)量。程序的可能存在錯誤數(shù)和圈復雜度有著很大的相關(guān)性,圈復雜度越大代表程序代碼的質(zhì)量低并且難以維護和測試。動態(tài)測試過程中無法及時提供測試運行所需的真正目標機及其操作系統(tǒng),必須正確配置開啟仿真模擬器并將其作為虛擬目標機,將testbed經(jīng)過編譯環(huán)境鏈接后生成的測試驅(qū)動程序下載到仿真模擬器中運行。自動化靜態(tài)分析存在一定的機械性,測試人員需逐項進行分析確認出真正的問題所在。在測試工作中,需要接觸到各種類型的測試工具。測試工具可劃分為:支持對程序源代碼進行靜態(tài)規(guī)則檢查和質(zhì)量評估的靜態(tài)分析工具,研究人員需要開發(fā)高質(zhì)量的數(shù)據(jù)庫和環(huán)境,并允許具負責任的人員存取高質(zhì)量數(shù)據(jù)庫。一般來說,有以下一些類型的工具:測試管理工具:可以幫助完成測試計劃、跟蹤測試運行結(jié)果等的工具。這類工具還包括有助于需求、設(shè)計、編碼測試及度量元缺陷跟蹤的工具。靜態(tài)分析工具:分析代碼而不執(zhí)行代碼。這種工具檢測某些度量元缺陷比用其它方法更有效,開銷也更小。這種工具一般可以度量代碼的各種指標,如mccabe測定復雜度,logiscope度量代碼和規(guī)范的復合度等等。覆蓋率工具:這種工具評估通過一系列測試后,軟件被執(zhí)行的程度。這種工具大量的被應(yīng)用于單元測試中,如purecoverage、truecoverage、logiscope等。動態(tài)分析工具:這種工具評估正在運行的系統(tǒng)。例如,檢查系統(tǒng)運行過程中的內(nèi)存使用情況,是否有內(nèi)存越界、內(nèi)存泄露等等,這類工具有purify、boundchecker等。測試執(zhí)行工具:這類工具可使測試能夠自動化進行,并且各個層次(單元測試、集成測試、系統(tǒng)測試)的執(zhí)行工具都有。例如系統(tǒng)測試階段有功能測試自動化工具,如robot、winrunner、silktest等;還有性能測試工具,如loadrunner、silkperformer等。必要時,可建立常見軟件代碼度量元缺陷數(shù)據(jù)庫,為軟件代碼審查人員培訓和執(zhí)行代碼審查提供數(shù)據(jù)支持,也可以為軟件編碼規(guī)則制定規(guī)范提供實踐依據(jù)。軟件代碼審查是重要的軟件測試方法之一,軟件測試單位應(yīng)建立完善的代碼審查規(guī)程,規(guī)范代碼審查過程。雖然目前廠商在不斷挖掘工藝極限的基礎(chǔ)上推出容量更大、性能更優(yōu)、集成模塊更多的新器件同時,第三方驗證廠商也對于其配套的測試軟件進行更新。但由于其更新的速度往往滯后于器件的發(fā)展,很難有大的突破和創(chuàng)新。這也導致了目前通常的hdl代碼檢查普遍存在的軟件故障暴露率,軟件失效率高的質(zhì)量問題,缺少一套完善嚴謹?shù)拇a質(zhì)量要求,檢查后的工作質(zhì)量缺少科學嚴謹?shù)姆椒ㄈピu價代碼質(zhì)量。另一方面,隨著行業(yè)內(nèi)fpga軟件測試質(zhì)量的逐漸重視和強烈要求,也希望有一套科學嚴謹?shù)姆椒ㄈピu價代碼質(zhì)量。其次,fpga軟件測試質(zhì)量通常的做法是采用軟件的代碼質(zhì)量評價標準,也有失公平化且過于粗糙化。因此,為了真實地反映出代碼的質(zhì)量,迫切需要提出一種能夠?qū)pga軟件進行質(zhì)量評價的新方法。目前,行業(yè)內(nèi)的規(guī)則集主要分為三類,首先是外國的do-254、starc、rmm等規(guī)則集,其次是第三方廠商提供,如aldec、mentor、synopsys、xilinx、altera等國外公司,最后是國內(nèi)的一些單位以及個人等整理或者定制的編碼規(guī)則集。具體veriloghdl語言編碼規(guī)則分類如下表a1所示。vhdl語言編碼規(guī)則分類如下表a2所示。表a1veriloghdl語言編碼規(guī)則表a1veriloghdl語言編碼規(guī)則表a2vhdl語言編碼規(guī)則技術(shù)實現(xiàn)要素:為了解決上述技術(shù)問題,本發(fā)明的目的是提供一種能夠有效減少驗證測試次數(shù),有效量化軟件代碼靜態(tài)測試質(zhì)量,提高軟件可靠性測試效率和可靠性評估準確性,度量fpga軟件測試的靜態(tài)階段的軟件靜態(tài)質(zhì)量方法,以提升軟件測試的質(zhì)量。本發(fā)明的上述目的可以通過以下措施來達到,一種度量fpga軟件靜態(tài)質(zhì)量的方法,其特征在于包括如下步驟,第1步,分析度量元:在包含vhdl和verilog兩種語言的fpga軟件中,分析評價違反的度量元組成類型,篩選出體現(xiàn)軟件質(zhì)量價值的度量元,設(shè)定度量元及其度量元加權(quán)系數(shù),對fpga軟件度量元進行分類加權(quán),并對軟件代碼質(zhì)量影響大且與其它度量元相差大的則賦予較大的數(shù)值;第2步,度量元計算:根據(jù)對代碼質(zhì)量帶來的影響程度分別對vhdl和verilog語言選出體現(xiàn)覆蓋面廣且影響程度高的評價規(guī)則集,提取度量元相關(guān)加權(quán)系數(shù),依據(jù)對質(zhì)量影響的嚴重程度,按照度量元缺陷嚴重性等級的不同進行不同的加權(quán)比,確定評價度量元的數(shù)量,建立分析度量元和fpga軟件質(zhì)量評價模型和fpga軟件規(guī)則集分類附錄表;第3步,度量結(jié)果評價:根據(jù)參考標準gjb2423a的故障統(tǒng)計次數(shù),計算出度量元缺陷總數(shù)a和度量元與規(guī)定的度量元比分,提出度量計算公式、評價規(guī)則和評價流程,運用度量元缺陷總數(shù)計算公式和評價規(guī)則,給出度量評價結(jié)果,輸出fpga軟件質(zhì)量度量的分值和歸一化處理的分值區(qū)間分布。本發(fā)明的優(yōu)點和積極效果在于:能夠有效減少驗證測試次數(shù)。本發(fā)明在現(xiàn)有面向?qū)ο筌浖攘糠椒ê投攘繙蕜t的基礎(chǔ)上,結(jié)合面向?qū)ο蠹夹g(shù)特性,分析評價違反的度量元組成類型,提取相關(guān)加權(quán)系數(shù),確定評價度量元的數(shù)量;按照公式計算出違反的度量元與規(guī)定的度量元比分;根據(jù)公式和評價規(guī)則,給出評價結(jié)果。建立分析度量元和fpga軟件質(zhì)量評價模型,提出度量計算方法、評價規(guī)則和評價流程,分析證明有效性。通過軟件靜態(tài)質(zhì)量分析可以定量評價軟件代碼的質(zhì)量,以量化數(shù)據(jù)表示代碼的質(zhì)量水平,能夠有效地對軟件靜態(tài)質(zhì)量進行度量,為設(shè)計師了解軟件代碼質(zhì)量水平提供了客觀依據(jù),減少了軟件質(zhì)量評估中的主觀性。軟件測試中,靜態(tài)度量和測試的預測,能夠有效減少驗證測試次數(shù),可以有效提高測試的效率,降低測試成本。能夠有效量化軟件代碼靜態(tài)測試質(zhì)量。在包含vhdl和verilog兩種語言的fpga軟件中,通過嚴格設(shè)定度量元及其度量元加權(quán)系數(shù)計算,建立一套行之有效的計算方法和評價機制和一個fpga軟件代碼靜態(tài)質(zhì)量度量評價方法,給出了度量元與加權(quán)系數(shù)計算公式,評價方法、評價規(guī)則和評價流程,可以有效量化軟件代碼靜態(tài)測試質(zhì)量,為fpga軟件測試的代碼靜態(tài)度量建立了一套有效避免傳統(tǒng)一刀切的處理方式的評價標準??朔藗鹘y(tǒng)評價指標的單一性度量元缺陷,有利于確定影響軟件質(zhì)量的因素及其影響程度,是一種綜合、有效評價軟件的質(zhì)量的方法。提高軟件可靠性測試效率和可靠性評估準確性。本發(fā)明運用于在fpga測試的靜態(tài)階段,對度量元分類、加權(quán)系數(shù)計算、度量計算、度量評價四個評價步驟完成評價,建立了一套科學化的數(shù)學評價的質(zhì)量度量方法,量化了軟件測試質(zhì)量;突出特點:針對性強,分步驟實施,量化了評價結(jié)果,提高了測試質(zhì)量。依據(jù)靜態(tài)分析輸出的質(zhì)量度量模型值定量地評價了軟件內(nèi)在源碼的質(zhì)量,并基于圈復雜度度量值提出了一種優(yōu)先級的動態(tài)分析測試策略,用監(jiān)控到的控制流信息來分析程序的覆蓋率,從而確保fpga測試的充分性和有效性,提高測試效率,保證軟件的質(zhì)量。本發(fā)明針對性強,方法完善,實現(xiàn)了fpga軟件質(zhì)量的量化度量,為軟件靜態(tài)質(zhì)量提供了一種適應(yīng)于最新fpga軟件測試領(lǐng)域有效的度量方法。附圖說明圖1是本發(fā)明度量fpga軟件靜態(tài)質(zhì)量的流程示意圖。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,同時也為了便于本領(lǐng)域普通技術(shù)人員理解和實施本發(fā)明,下面結(jié)合附圖對本發(fā)明作進一步詳細、深入的描述。應(yīng)當理解,此處所描述的實施僅用作說明和解釋本發(fā)明,并不用于限定本發(fā)明。具體實施方式參閱圖1。為了能夠客觀的評價檢查結(jié)果的質(zhì)量,評價流程需要分為“三步走”。在下圖1所示的整個評價流程中,步走包含了分析、計算和評價三個過程,評價流程中更加注重度量元的分析計算,不同與傳統(tǒng)的fpga軟件質(zhì)量度量評價過程,新的流程將對該工具進行改造,并給出最終評價結(jié)果。第1步,分析度量元:在包含vhdl和verilog兩種語言的fpga軟件中,分析評價違反的度量元組成類型,篩選出體現(xiàn)軟件質(zhì)量價值的度量元,設(shè)定度量元及其度量元加權(quán)系數(shù),對fpga軟件度量元進行分類加權(quán),并對軟件代碼質(zhì)量影響大且與其它度量元相差大的則賦予較大的數(shù)值;第2步,度量元計算:根據(jù)對代碼質(zhì)量帶來的影響程度分別對vhdl和verilog語言選出體現(xiàn)覆蓋面廣且影響程度高的評價規(guī)則集,提取度量元相關(guān)加權(quán)系數(shù),依據(jù)對質(zhì)量影響的嚴重程度,按照度量元缺陷嚴重性等級的不同進行不同的加權(quán)比,確定評價度量元的數(shù)量,建立分析度量元和fpga軟件質(zhì)量評價模型和fpga軟件規(guī)則集分類附錄表;第3步,度量結(jié)果評價:根據(jù)參考標準gjb2423a的故障統(tǒng)計次數(shù),計算出度量元缺陷總數(shù)a和度量元與規(guī)定的度量元比分,提出度量計算公式、評價規(guī)則和評價流程,運用度量元缺陷總數(shù)計算公式和評價規(guī)則,給出度量評價結(jié)果,輸出fpga軟件質(zhì)量度量的分值和歸一化處理的分值區(qū)間分布。具體包括:1)fpga軟件度量元分類fpga軟件質(zhì)量的好壞取決于規(guī)則集的制定,不同的規(guī)則集對檢查代碼的質(zhì)量影響不同。因此,度量元是選取規(guī)則集及其包含的具體規(guī)則。在包含vhdl和verilog兩種語言fpga軟件中,對應(yīng)規(guī)則分為vhdl和verilog兩種,但通常設(shè)計都是采用兩者混合語言使用,因此,度量元將兩者規(guī)則集混合起來統(tǒng)計??偨Y(jié)分析,fpga軟件的度量元選取主要涉及到安全性設(shè)計、可綜合性設(shè)計、基本結(jié)構(gòu)設(shè)計、ip核設(shè)計和自定義設(shè)計等。在包含vhdl和verilog兩種語言fpga軟件中,將對應(yīng)規(guī)則分為vhdl和verilog兩種,采用兩者混合語言,度量元將兩者規(guī)則集混合起來統(tǒng)計,根據(jù)選取規(guī)則集及其包含的具體規(guī)則對fpga軟件度量元分類,ⅰ類~ⅴ類規(guī)則度量元加權(quán)表,具體分類情況如下表2fpga軟件度量元分類表所示。2)fpga軟件度量元加權(quán)系數(shù)計算由于fpga軟件選取度量元的每個成員函數(shù)的準則值對所屬類準則值的影響權(quán)重不相同,依據(jù)對質(zhì)量影響的嚴重程度按照度量元缺陷嚴重性等級的不同而進行不同的加權(quán)比,同時每個度量元缺陷發(fā)生的數(shù)量多少也會影響評價效果,加權(quán)的計算要和自身規(guī)則的影響程度應(yīng)符合考標準gjb2423a的故障統(tǒng)計次數(shù)計算。選取度量元的每個成員函數(shù)的準則值對所屬類準則值,依據(jù)對質(zhì)量影響的嚴重程度按照度量元缺陷嚴重性等級的不同而進行不同的加權(quán)比,按照參考標準gjb2423a,計算每個度量元缺陷發(fā)生的數(shù)量和故障統(tǒng)計次數(shù)及其度量元缺陷總數(shù)a,計算出fpga軟件度量元的加權(quán)系數(shù),中:pj-某類度量元缺陷的加權(quán)系數(shù);rj-某類度量元缺陷發(fā)生的次數(shù);j-度量元缺陷類型;n-度量元缺陷類型數(shù)。其中,確定加權(quán)系數(shù)的原則,在參考標準gjb2423a中描述,對度量元缺陷進行分類、定級,分析度量元缺陷的原因、潛在的影響及對人員的危害性,對實現(xiàn)功能的影響程度等。根據(jù)影響程度結(jié)合文獻和其他相關(guān)文獻,在參考標準gjb2423a中描述,對度量元缺陷進行分類、定級,分析度量元缺陷,對fpga軟件度量元進行分類加權(quán),加權(quán)情況如下表3~6所示:ⅰ類~ⅴ類規(guī)則度量元加權(quán)表。其中,安全性規(guī)則主要涉及對設(shè)計起著重要作用且影響嚴重程度最高的規(guī)則集,分配比分最高。亞穩(wěn)態(tài)是fpga軟件中典型的度量元缺陷,是首要查找的度量元缺陷,只要有異步元件存在,亞穩(wěn)態(tài)就無法避免;其次,復位邏輯電路是fpga軟件中最核心的組成部分之一,設(shè)計中的任何一個設(shè)計模塊都必須要附加復位邏輯電路,以保證電路能夠從錯誤狀態(tài)中恢復,可靠地工作;其他規(guī)則都按照影響程度不同做了不同的加權(quán)。盡管加權(quán)帶有一定的主觀性,但加權(quán)都是在總結(jié)實際經(jīng)驗和參考其他文獻的基礎(chǔ)上客觀地反應(yīng)出每個規(guī)則對fpga軟件的安全性、設(shè)計性、可綜合性和可移植性帶來的影響程度。3)fpga軟件度量計算方法創(chuàng)建ⅰ類~ⅴ類規(guī)則度量元加權(quán)表,依據(jù)ⅰ類~ⅴ類規(guī)則度量元加權(quán)表(表3~6),計算fpga軟件度量,計算出最終fpga軟件質(zhì)量度量值:式中b是參照gjb16260標準對代碼質(zhì)量評價計算公式:x=1-a/b(3)將公式(1)代入上述公式(3)得出公式(2),a定義為在測試中規(guī)定的可靠性的依從性還未完全實現(xiàn)的項數(shù),b定義為規(guī)定的可靠性的依從性項總數(shù)。公式2表明,當隨著度量元缺陷次數(shù)、權(quán)重和度量元缺陷類型數(shù)n值各自增大時,則評價值越小,表明質(zhì)量越壞;反之,當隨著度量元缺陷次數(shù)rj、權(quán)重和度量元缺陷類型數(shù)n值各自減小時,則評價值越大,表明質(zhì)量越好。4)fpga軟件度量評價在標準gjb5236中有過描述,用于質(zhì)量需求度量的測量標度可以根據(jù)需求將測量度分為三個級別:達到目標(良好)、最低可接受(合格)和不可接受(不合格),至于在何種程度加以評價標準中沒有給出明確規(guī)定。那么根據(jù)fpga軟件度量具有歸一化的處理特性,因此定義fpga軟件質(zhì)量度量值評價規(guī)則如下:當x>0.8,認為良好;當0.5<x≤0.8,認為合格;當0.5≤x,認為不合格。代碼質(zhì)量度量評價問題實際上是一個多目標決策問題,在處理多目標問題時,往往要考慮各目標的相對重要性。最后,代碼質(zhì)量評價還需求經(jīng)過實際工程驗證,經(jīng)過多次反復證明才是有用,只有這樣,才能確保使用的評價方法和實際需求是一致。首先分析違反的度量元組成類型,提取相關(guān)加權(quán)系數(shù),確定度量元的數(shù)量;其次是按照公式計算出違反的度量元與規(guī)定的度量元比分;最后依據(jù)設(shè)計的fpga軟件質(zhì)量度量值x計算公式(2)和評價規(guī)則,將表3~6的ⅰ類~ⅴ類規(guī)則度量元加權(quán)表中的加權(quán)系數(shù)和其他相關(guān)參數(shù)(如類別、次數(shù)),代入計算,輸出fpga軟件質(zhì)量度量的分值,通過歸一化處理,分值區(qū)間分布,給出評價結(jié)果。整個流程如圖1所示;具體步驟包括:步驟1、分析評價度量元的組成類型,是軟件測試質(zhì)量度量策劃開展的前提,軟件質(zhì)量特性是通過度量元特性反應(yīng)出來,而度量元具體細化表現(xiàn)很多,如何能從眾多度量元中選出主要體現(xiàn)軟件質(zhì)量價值的度量元顯得尤為重要。在fpga代碼靜態(tài)質(zhì)量度量中,度量元是通過規(guī)則體現(xiàn)出來,fpga的規(guī)則在目前業(yè)內(nèi)眾多,通過調(diào)研和整理最有影響的分別是來自美國faa機構(gòu)的do-254,來自日本半導體研究中心的starc,來自synopsysand和mentor的第三方廠商,以及華為公司與個人等,根據(jù)fpga軟件由vhdl和verilog兩種語言構(gòu)成,具體分類參閱fpga軟件規(guī)則集分類附錄表a1和a2,統(tǒng)計分類請見下表1。表1fpga軟件規(guī)則集分類通過全面科學的分析度量元并進行篩選,最終篩選出安全性設(shè)計、可綜合性設(shè)計、基本結(jié)構(gòu)設(shè)計、ip核設(shè)計和自定義設(shè)計共五類規(guī)則集,每個規(guī)則集又包含不同的規(guī)則和數(shù)量。為了方便管理,進一步對五類規(guī)則集定義為ⅰ類規(guī)則、ⅱ類規(guī)則、ⅲ類規(guī)則、ⅳ類規(guī)則、ⅴ類規(guī)則,見fpga軟件度量元分類表2。表2fpga軟件度量元分類ⅰ類規(guī)則ⅱ類規(guī)則ⅲ類規(guī)則ⅳ類規(guī)則ⅴ類規(guī)則安全性可綜合性基本結(jié)構(gòu)ip核自定義由于規(guī)則眾多,不可能羅列出所有的規(guī)則來進行分類和評價,而且也沒有必要,因此,根據(jù)對代碼質(zhì)量帶來的影響程度分別對vhdl和verilog語言選出前118個規(guī)則,體現(xiàn)出覆蓋面廣且影響程度高的規(guī)則,具體劃分ⅰ類-ⅴ類規(guī)則度量元加權(quán)表見表a1和a2。步驟2、度量元加權(quán)系數(shù)計算,是軟件測試質(zhì)量評價策劃開展的關(guān)鍵,加權(quán)的好壞關(guān)系到軟件質(zhì)量特性準確反映,而度量元的具體細化表現(xiàn),也是從眾多度量元的加權(quán)系數(shù)中體現(xiàn)出來,根據(jù)附錄表1和表2提供的信息,以及結(jié)合公式(1),結(jié)合相關(guān)文獻,下表3~6是典型的加權(quán)系數(shù)設(shè)計。表3ⅰ類規(guī)則度量元加權(quán)表評價標準類別次數(shù)權(quán)重分數(shù)跨時鐘域發(fā)生ⅰ0|18異步信號未作同步化ⅰ0|18門控時鐘ⅰ0|15異步復位未做同步化處理ⅰ0|18同步和異步復位混淆ⅰ0|15復位不成功ⅰ0|15復位信號極性和沿觸發(fā)極性不匹配ⅰ0|15case語句缺少default分支導致鎖死ⅰ0|18if條件語句缺少else分支導致鎖死ⅰ0|18數(shù)據(jù)運算超出定義范圍ⅰ0|18表4ⅱ類規(guī)則度量元加權(quán)表評價標準類別次數(shù)權(quán)重分數(shù)敏感列表中敏感信號缺失ⅱ0…42敏感列表中敏感信號冗余ⅱ0…42敏感列表中既有邊沿觸發(fā)又有電平觸發(fā)ⅱ0…42進行關(guān)系運算的操作數(shù)位寬不匹配ⅱ0…42阻塞與非阻塞賦值ⅱ0…42重復賦值ⅱ0…42if語句的三態(tài)賦值ⅱ0…43初始狀態(tài)不定ⅱ0…42不能達到條件ⅱ0…43變量在賦值前被使用ⅱ0…42表5ⅲ類規(guī)則度量元加權(quán)表評價標準類別次數(shù)權(quán)重分數(shù)輸出信號沒有驅(qū)動ⅲ0…61丟失括號ⅲ0…61設(shè)計中使用空塊ⅲ0…61設(shè)計有多余信號ⅲ0…61表6ⅳ和ⅴ類規(guī)則度量元加權(quán)表表3~6分別對fpga軟件評價標準的度量元在五個類別的基礎(chǔ)上再次細分,評價準則分別包含類別、次數(shù)、權(quán)重和分數(shù)。次數(shù)0|1表示分配數(shù)選取是0和1,次數(shù)0…4表示分配數(shù)選取是0到4之間。在本發(fā)明中,其權(quán)重表明度量元在軟件評測中所占的比重,對軟件代碼質(zhì)量影響大且與其它度量元相差大的則賦予較大的數(shù)值。步驟3、度量計算是依據(jù)設(shè)計的計算公式(2),將表3~6的權(quán)系數(shù)和其他相關(guān)參數(shù)(如類別、次數(shù)),代入計算,輸出fpga軟件質(zhì)量度量的分值,通過歸一化處理,分值區(qū)間分布滿足[0,1],分值越小,越趨近0,則表明質(zhì)量越壞;反之,當分值越大,越趨近1,則表明質(zhì)量越好。步驟4、度量評價是相對簡單,由于目前沒有固定的格式,需要根據(jù)實際情況進行確定,參考標準gjb5236的指導思想,將軟件的度量評價分為三個級別級別:達到目標(良好)、最低可接受(合格)和不可接受(不合格)。假設(shè)某項目有兩類fpga軟件進行測試,被評的兩類軟件度量元取數(shù)都為66個。測試人員對類1軟件進行了編碼規(guī)則檢查,共發(fā)現(xiàn)度量元缺陷7個(其中致命度量元缺陷0個,嚴重度量元缺陷1個,一般度量元缺陷4個,建議改進2個)。測試人員對類2軟件進行了編碼規(guī)則檢查,共發(fā)現(xiàn)度量元缺陷9個(其中致命度量元缺陷0個,嚴重度量元缺陷0個,一般度量元缺陷5個,建議改進4個)。具體類1和類2違反的規(guī)則情況如類1軟件fpga軟件度量元分類加權(quán)評價表7和類2軟件fpga軟件度量元分類加權(quán)評價表8所示。類1是針vhdl做檢查,相應(yīng)表7是對應(yīng)表a2的vhdl語言編碼規(guī)則;類2是針veriloghdl做檢查,相應(yīng)表8是對應(yīng)表a1的veriloghdl語言編碼規(guī)則。表7類1軟件fpga軟件度量元分類加權(quán)評價表8類2軟件fpga軟件度量元分類加權(quán)評價根據(jù)式(1)和式(2)的計算的比分數(shù)值,結(jié)合本發(fā)明,對代碼檢查工具alint進行了改造,然后進行自動分析軟件代碼靜態(tài)質(zhì)量,給出類1和類2代碼評價后的結(jié)果如下類1和類2代碼的評價結(jié)果表9所示。表9類1和類2代碼的評價結(jié)果軟件類1類2評價結(jié)果0.78(合格)0.81(良好)從類1和類2代碼的評價結(jié)果表9中可以看出,被評軟件中軟件類1評分結(jié)果為0.78,達到了合格水平,軟件類2評分結(jié)果為0.81,達到了良好水平。總體上看,類1的安全性較差,可綜合性和基本結(jié)構(gòu)設(shè)計相對較好,而類2的安全性較好,可綜合性和基本結(jié)構(gòu)設(shè)計相對較差。經(jīng)對數(shù)據(jù)做人工分析,從安全性的影響嚴重程度上可以看出評價的結(jié)果和新設(shè)計的計算準則是基本吻合。如此,對項目的fpga軟件代碼測試靜態(tài)質(zhì)量進行了完整的評價,有數(shù)據(jù)有結(jié)論,量化了測試質(zhì)量,提高了測試效果,積累了測試經(jīng)驗,提升了測試技能。以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)
技術(shù)領(lǐng)域:
的普通技術(shù)人員,在不脫離本發(fā)明的精神和原則下,所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁12