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