最近Parasoft作過一個關於測試工具尤爲是靜態分析技術的調查報告,收集你們對於測試工具的使用印象和技術總結。其中有一個經驗豐富的資深軟件工程師Brian,他在靜態分析工具上很有經驗,但他反饋的結果是這些工具報告的不少問題老是相似「編譯器警告」,並不是絕對的潛在漏洞(bug)或軟件缺陷。深刻溝通交流後發現,他的這些印象最主要的緣由是由於他所採用的測試工具大部分是免費軟件,並且所接受的相關培訓不少時候僅限於網絡論壇,這樣帶來的結果必然是測試工具並不能實際解決問題,反而用於學習工具的時間超過了實際解決問題的時間,這有些本末倒置了。html
因此,測試工具的要求(尤爲是靜態分析技術)除了一般你們所知的自動化屬性,其實還須要更多考量測試報告結果的度量性和有效性,以用戶角度去幫助客戶快速應用先進測試技術並解決代碼問題。衆所周知,嵌入式行業的軟件複雜性高,設計的平臺豐富,各類不一樣的芯片和架構,紛繁的編譯器種類等等。這必然要求一個成熟的開發測試平臺體系,以及專業的技術支持服務,尤爲是對於嵌入式行業。安全
各大嵌入式行業如醫療、汽車、鐵路、航空航天等的軟件開發者天天均可能會遇到校驗軟件問題(bug)的有效性挑戰,接受從客戶、技術支持團隊及質量測試部門的反饋結果並及時調查給予響應。對於開發人員來講,有時候昨天已經作過的修復工做都有可能產生新的軟件問題從而加大工做任務。網絡
因此軟件問題的結果驗證是一個值得很是關注的問題,須要可以有效並快速地區分各類性質的問題,對不一樣的問題進行自動優先級排序,將重心放在有價值的問題上,快速高效地推動問題的解決。若是這只是一個低等級的警告問題,它不是一個錯誤或潛在bug,並不值得浪費太多時間或優先處理。架構
目前的狀況是,許多開發測試工具沒法用一個簡潔方便的方式幫助用戶定位真正有價值的問題。因此,這裏對於一個成熟的靜態分析測試工具基本提出瞭如下關鍵技術屬性需求點:工具
針對Java、C/C++、.Net等主流語言的軟件產品開發, Parasoft公司提供了一個企業級的開發測試解決方案。除了全方位的靜態代碼分析能力如模式匹配分析、數據流分析和度量分析等,該開發測試平臺還具有良好的擴展性,包括了單元測試,集成測試,運行時錯誤檢測,代碼審查,覆蓋率分析等功能,能夠自動化生成測試用例,執行單元測試的同時提供多種視角的覆蓋率分析,提供圖形化報表系統,是一個完善的方案級平臺,全方位落實自動化缺陷預防政策,保障客戶產品質量的同時提升軟件產品交付速度。單元測試
不少免費測試工具或不成熟的測試產品有時會報告超過20000個任務給到具體的一個開發人員,這實際上是缺少必定的測試規控,沒有人可以一天處理這麼多的事情。一個成熟的開發測試策略將根據任務的嚴重性和風險劃分優先等級。此外,它將根據整個團隊的工做負載進行工做分配並利用我的優點區別劃分測試任務。學習
Parasoft某醫療行業軟件客戶:「當我和個人新朋友肯定,他認爲天天修復5個靜態分析的違反規則是沒有問題的。若是他有一個十人的團隊,每一個人天天修復5個靜態分析違反規則,而後他須要大約400天才能看到優美的代碼。」測試
讓咱們再進一步。不是全部的靜態分析行爲都是平等的。若是咱們將最高等級的風險、最嚴峻的問題提早嘗試解決,那麼軟件的質量、安全性、可靠性將被在1-2個月內梳理的很是合理。而每一個問題都僅須要分配幾乎忽略不計的5分鐘,這將比以前不少所經歷的發佈週期耗時更短更高效。spa
更棒的是,一個成熟的開發測試平臺將自動管理靜態分析任務的優先級和分配給不一樣的負責人。做爲管理者,在一開始就設置一些團隊測試政策,這些政策將確保團隊裏的每個成員天天都獲得適量的最高優先級的任務,從而實現快速高效的團隊工做流程。設計
本文來自(parasoft中文網)
活動時間:11月1日-11月30日