在嵌入式軟件開發(fā)和測試過程中,會出現(xiàn)很多問題,這些問題會使企業(yè)遭受很大的損失,甚至有些軟件問題在操作過程中也難以發(fā)現(xiàn)。
有個方法可以有效地找出軟件缺陷問題,那就是嵌入式軟件測試,一般分為靜態(tài)測試和動態(tài)測試。
靜態(tài)測試不需要編譯執(zhí)行源程序,對源程序進行詞法語法、編程規(guī)范、數(shù)據(jù)流、控制流、度量等分析,獲取程序的結(jié)構(gòu)和特性,利用形式化方法驗證、證明程序是否符合安全規(guī)則,能夠較為全面的獲取程序的特征。動態(tài)測試需要通過獲取程序的動態(tài)信息來分析軟件的缺陷,如分析程序的內(nèi)存狀態(tài)、覆蓋率和執(zhí)行結(jié)果,更有利于理解程序的動態(tài)行為特征。
很多代碼缺陷具有隱蔽性和不可預(yù)見性,比如數(shù)組越界,內(nèi)存溢出,指針非法引用等,這些錯誤在編譯階段也很難被編譯器檢查發(fā)現(xiàn)。
因此,在大規(guī)模和復(fù)雜度極高的軟件中,完全依賴于“人工檢查方式”可能會因為人為等主觀原因造成問題被遺漏而無法發(fā)現(xiàn)。將現(xiàn)有常見多發(fā)問題形成缺陷模式庫植入工具中,由工具自動化檢測代碼缺陷,能夠高效提升測試效率,避免問題重復(fù)發(fā)生,大幅減輕測試人員工作量。
產(chǎn)品的穩(wěn)定、可靠、安全是嵌入式開發(fā)的終極目標,破解嵌入式軟件難題是軟件開發(fā)與測試團隊必須應(yīng)對的挑戰(zhàn)。