1現狀
在嵌入式系統研發設計中,軟件正越來越多地取代硬件,以降低系統的成本,獲得更大的靈活性,這就意味著軟件在整個嵌入式系統中的比重將越來越大。軟件代碼的質量已經成為整個產品質量的重要衡量參數。目前,“改善軟件質量”已經在汽車、等嵌入式領域成為熱門話題。也是多數軟件開發團隊面臨的挑戰:越發嚴格的產品發布期限、更廣闊的團隊分布、不斷增加的軟件復雜性以及對軟件質量更高的要求。
全面嚴格的測試工作是改善軟件質量的關鍵,在這樣的背景下,如何在更短的時間內完成繁重而復雜的各階段測試,保證更高的軟件質量,是眾多開發團隊正在面臨并急需解決的問題。根據第三方的調研發現,目前,每1~2年,嵌入式系統的軟件規模就要翻1番,而嵌入式軟件的測試任務卻要增加4~8倍。對軟件系統的測試由人工進行,會消耗大量的精力,同時也存在人工勞動的失誤為軟件產品引入錯誤的風險。
因此,由測試造成的嵌入式系統開發效率低下、嵌入式軟件測試方法和工具不完善等問題就顯得越來越突出。
2解決方案
傳統人工進行代碼靜態檢查、單元測試以及大量重復的回歸測試,需要耗費大量的時間和精力,并且很難避免人的疏忽和大意給代碼帶來其它缺陷。不同階段正確選擇和使用不同工具,能夠輔助工程師進行更嚴謹而有效的測試工作,更大大縮短測試周期。
但在提高軟件質量的同時,也會遇到一些新的高層次的管理問題:
♦ 如何合理減少在靜態分析和單元測試中大量投入的人力?
♦ 如何確保在不增加管理成本的情況下強制所有提交的代碼都必須經過靜態分析以及單元測試?
♦ 如何才能在讓所購買的工具可以限度被合理利用,以減少購買數量控制成本?
這些高層次的研發管理問題帶來了新的挑戰。
恒潤科技通過搭建整套基于Jenkins、結合工具以及配置庫的可持續集成平臺,可以解決眾多用戶在進行測試過程中遇到的上述管理問題。通過符合實際項目狀況的平臺流程設計,實現合理、自動化的工具調度,對上傳到配置庫中的穩定代碼強制執行相應測試,為軟件研發過程中的代碼質量保障工作帶來了更大的便利,使用戶能夠更加快捷、有效地提高軟件代碼的質量!
3基于QAF&Tessy的持續集成平臺介紹
3.1平臺概述
針對上述問題,我們引入當前專業的代碼靜態分析工具——PRQA公司的QAF以及專門針對嵌入式軟件的C/C 代碼進行單元、集成測試的工具——Razorcat公司的Tessy輔助進行大量的測試工作,在保證測試有效性的同時更大大縮短測試周期。Jenkins聯合上述兩個工具以及版本管理軟件搭建持續集成平臺,可以實現無需人工介入的代碼靜態檢查以及動態回歸測試,優化測試過程、提高開發效率、保證軟件質量。
在軟件開發過程中,對于每一次變更,使用靜態測試工具QAF(QAC/C ),通過分析程序的源代碼來發現代碼中存在的潛在缺陷問題,實現方便、快捷、有效地改善代碼質量;通過使用QAV對靜態分析結果進行管理、查看,進行項目團隊管理、任務劃分、代碼版本管理、詳細報告或自報告等,實現合理利用軟件資源,輔助團隊內部、便利的合作與管理。
進行靜態分析有效地避免那些在動態測試過程中無法發現的缺陷被帶到產品制造階段,隨同產品流入市場,造成難以估量的損失;檢查代碼錯誤,可以在開發階段發現運行時錯誤,減少動態測試中發現bug頻率,減少回歸。
使用單元/集成測試工具Tessy進行動態測試,以對單元、模塊進行功能、接口的測試。通過Tessy實現自動化的搭建測試驅動、選擇性的自動或手動打樁,通過在實際環境執行設計好的測試用例,確認單元、模塊的功能和接口。
在實際開發過程中,代碼會經過眾多版本的變更,為確保每一次的變更都會嚴格按照已有流程進行靜態分析和動態測試,并優化人員與軟件資源的配置管理,通過Jenkins搭建持續開發平臺,自動識別配置庫(SVN)的變動,結合上述工具QAF(QAC/C )、Tessy實現自動、的完成相關測試工作。
3.2平臺工作過程
該平臺可以根據客戶實際需求、工作流程以及相應規范調整具體過程,實現自動化的編譯、靜態分析以及動態回歸測試等階段活動。
3.3過程描述
該平臺將SVN與測試工具緊密結合在一起,工程師只需在本地進行當天代碼的分析工作,并根據變更調整測試用例。而后將變更內容上傳至SVN庫中即可。平臺依據設置,可定時掃描SVN庫,一旦發現SVN庫有變動,就會將整個庫中代碼進行靜態測試,并根據已有測試用例進行動態回歸測試,并將結果發至關鍵人郵箱。
通過該平臺進行整個工程的分析工作,能夠盡早盡快的發現代碼集成后產生的缺陷。完美實現整體分析工程的同時,將人從重復機械的工作中解脫出來,為企業節約成本投入。由于SVN與平臺的緊密結合,不論工程師是否在本地對其當天代碼進行靜態分析工作,只要他將代碼檢入至SVN庫中,那么該平臺都會自動對上傳的代碼進行分析,不論工程師因何種原因漏掉本地分析這一環節,通過該平臺都能夠時間發現代碼中的潛在缺陷。并且,只要工程師將修改好的測試用例上傳,平臺會自動執行動態測試,并將測試報告發送關系人,無需工程師耗費時間為極微小的變更,等待License、調整測試環境,執行回歸測試。
平臺也可以設定定時分析功能,利用工程師非工作時間,獲取軟件權限,進行靜態分析和動態回歸測試,實現與工程師的錯峰作業,這樣便可以完美解決license沖突問題,節省工程師寶貴時間。