鐘云黌
摘要:嵌入式軟件的質量水平及可靠性一定程度上會影響產(chǎn)品質量與可靠性,軟件設計最重要的目的是提高軟件測的質量,而軟件測試有利于保證軟件的質量,所以要重視嵌入式軟件測試工作。在軟件測試過程中,首先要測試軟件獲取數(shù)據(jù)資料的技術,其能否獲取準確、實時、安全可靠的數(shù)據(jù)是判斷嵌入式軟件測試非常重要的標準?;诖?,本篇文章對多維度覆蓋率的嵌入式軟件測試分析方法進行研究,以供參考。
關鍵詞:多維度覆蓋率;嵌入式軟件測試;分析方法
引言
軟件程序規(guī)模與復雜程度的增長增加了軟件應用的不確定性。為有效保證軟件質量,軟件測試逐漸成為軟件研發(fā)中成本最高的項目。軟件測試能力、測試效率及測試特點的動態(tài)跟蹤與定量分析,以及軟件測試的持續(xù)優(yōu)化成為目前軟件研發(fā)中最為迫切需要解決的問題。目前軟件測試的研究側重于如何開展測試過程組織、具體測試方法等,測試評價主要圍繞軟件缺陷報告、缺陷跟蹤與測試進度評價等方面,缺少對軟件的動態(tài)跟蹤及在線評價。導致軟件測試中經(jīng)常出現(xiàn)測試過程按照測試計劃開展,但由于測試用例較大導致測試執(zhí)行有效性缺失的問題,很難在測試過程中發(fā)現(xiàn)測試軟件薄弱點。根據(jù)這一問題,提出基于多維度覆蓋率的嵌入式軟件測試分析方法。
1嵌入式軟件測試技術
1.1開發(fā)工具IDE的虛擬I/O功能
嵌入式軟件是在交叉的開發(fā)環(huán)境下開發(fā)出來的,絕大多數(shù)嵌入式開發(fā)工具都具備編譯、調試、加載以及鏈接等功能,還有一部分非常高級的開發(fā)工具甚至具備虛擬I/O的功能,能夠為嵌入式軟件的測試提供非常大的便利性。利用開發(fā)工具的虛擬I/O能夠十分便利地獲取嵌入式軟件測試數(shù)據(jù),但是其自動化程度比較低,在過去的測試數(shù)據(jù)過程中測試者需耗費極大的精力。因此,要重視改善開發(fā)環(huán)境,在現(xiàn)有條件下進行集成應用的開發(fā),進而不斷提升測試數(shù)據(jù)獲取的自動化水平。
1.2測試設計
測試設計過程中可以通過編寫自動化測試用例代替手工測試的反復操作,自動化測試用例覆蓋率高可以有效地提高測試用例復用率和執(zhí)行效率。基于國產(chǎn)化平臺信息系統(tǒng)軟件自動化測試在采用的自動化測試平臺上,可以通過不同維度的測試用例設計增加自動化測試用例覆蓋率,即分別從單元測試、接口測試、GUI測試分別設計自動化測試用例。自動化軟件測試用例設計一般遵循三角形用例覆蓋率比例,單元測試與代碼直接相關,軟件代碼改動對單元自動化用例的影響較小,單元測試自動化用例覆蓋率最高,其次是接口測試自動化用例。GUI自動化測試用例實現(xiàn)難度高,且受代碼改動影響大,因此其自動化測試用例覆蓋率最低。
1.3純軟件插樁技術
軟件插樁方式必須在虛擬軟件測試環(huán)境中進行,通過軟件方法對嵌入式軟件測試系統(tǒng)中發(fā)硬件環(huán)境進行準確描述,然后構建能夠支持嵌入式軟件測試的運行虛擬平臺。在虛擬平臺上,不僅可以通過擦傷技術獲取嵌入式軟件測試數(shù)據(jù),而且可以通過軟件的動態(tài)測試高效完成嵌入式軟件測試工作。要注意的是,在這種軟件測試條件中,借助開發(fā)處理器、常用外圍芯片、存儲器和各種時鐘的模擬軟件,在計算機系統(tǒng)中構建測試所需要的運行虛擬環(huán)境,完成嵌入式軟件測試工作。
1.4測試總結
測試總結活動是對之前幾項測試活動的總結,在測試執(zhí)行完成后對各項測試活動進行整理分析,形成測試報告。基于國產(chǎn)化平臺的信息系統(tǒng)軟件研發(fā)還未廣泛開展,對應的軟件測試技術也需要不斷的探索與研究,相比于非國產(chǎn)化平臺的軟件測試,國產(chǎn)化平臺信息系統(tǒng)的軟件測試不再僅限于單一項目,還需要與其他項目的測試策劃相關聯(lián)。因此測試總結活動還需要以資源池的形式進行技術積累,將整個測試過程中的軟件測試方法、測試工具、測試分析等進行技術儲備與傳播,為其他國產(chǎn)化平臺的軟件測試提供借鑒。
2實驗準備
采用VisualC++6.0作為運行環(huán)境,Intel公司MCS-51系列CPU8051軟件進行仿真,虛擬機運行在X86CPU操作系統(tǒng)下。運行時,使用虛擬機為上層應用程序提供1個運行環(huán)境,由處理器自身執(zhí)行程序命令。軟件測試需要相關數(shù)據(jù),以便針對具體連鎖軟件測試時能夠實現(xiàn)調用相關信息。軟件測試數(shù)據(jù)配置主要分為被測場相關數(shù)據(jù)與測試接口相關數(shù)據(jù),涉及數(shù)據(jù)主要包括信號機靜態(tài)數(shù)據(jù)、區(qū)段靜態(tài)數(shù)據(jù)以及進路表數(shù)據(jù)。數(shù)據(jù)庫記錄原始測試數(shù)據(jù)案例、進路數(shù)據(jù)以及測試結果,根據(jù)測試序列生成解析測試結果,判定查詢及記錄存儲與分析結果。測試僅針對軟件進行,不依賴硬件采集設備信息,被測軟件依據(jù)的接收信息來源于仿真平臺生成序列關鍵點。過程中設置進路不能正常建立測試,存在多條路徑,形成并聯(lián)約束條件,根據(jù)遷移函數(shù)逐個設置信號機錯誤、道岔錯誤及區(qū)段錯誤,依據(jù)進路編號設置異常,逐步測試直到測試完成。
3人工智能在軟件測試的應用
目前整個軟件測試領域處于快速發(fā)展的階段。從早期的純手工測試,費時費力,到現(xiàn)階段的自動化測試,雖然較好地提高了軟件測試的工作效率,但依然停留在輔助測試的階段,并不能完全獨立地完成某一完整的測試流程。且隨著軟件規(guī)模的不斷擴大,傳統(tǒng)的測試方法越來越無法滿足日益增長的測試要求,因此希望引入人工智能幫助軟件測試更好的實現(xiàn)自動化、智能化。AI在現(xiàn)階段的軟件測試領域已取得一些進展。測試人員通過AI自動創(chuàng)建測試用例,測試人員的主要工作不再是重復設計一些自動化測試用例,而是運用機器學習的理論,提供測試的輸入輸出數(shù)據(jù)去訓練AI模型,讓AI去自動生成測試用例并執(zhí)行,從而提高測試效率。同時市面上已有一些基于AI的軟件測試系統(tǒng)可以通過自動生成測試用例對軟件進行測試,例如Appdiff就是一個基于AI的移動App自動化測試平臺,能夠完成一個典型移動App90%的界面測試,且能夠持續(xù)不斷地處理Bug,比傳統(tǒng)的測試效率更高。
結束語
軟件測試中,為了能夠定量評價軟件測試效果,及時發(fā)現(xiàn)軟件測試中的薄弱點,需要對其進行測試分析,以保證軟件測試的有效性。利用多維度測試覆蓋率概念,在軟件測試中基于多種覆蓋指標度對軟件測試可靠性與質量作出分析評價,進一步綜合分析軟件測試性能。
參考文獻
[1]趙露.嵌入式軟件測試數(shù)據(jù)傳輸穩(wěn)定性檢測方法[J].廊坊師范學院學報(自然科學版),2020,20(02):20-24.
[2]任秋潔,韓英.嵌入式系統(tǒng)軟件安全測試技術研究[J].科技視界,2020,{4}(17):54-55.
[3]潘晶晶.通信設備嵌入式軟件測試流程的改進[J].科技風,2020,{4}(14):112.