文檔金喜正規買球>>Parasoft 案例研究(一)>>東軟成功案例:用 Parasoft 的 C++ Test 改善軟件開發過程
東軟成功案例:用 Parasoft 的 C++ Test 改善軟件開發過程
東軟軟件股份有限公司(以下稱東軟)是中國國內最大的軟件公司之一,是中國國內領先的軟件供應商。在中國國內取得一系列輝煌成就后,開始在國際市場嶄露頭角,已經進入汽車電子、DVD 等嵌入式軟件開發領域以及其他開發領域,客戶遍及日本、美國、歐洲等國家,客戶包括 ALPINE、TOSHIBA、SONY Ericsson 等知名企業。目前國際業務發展迅速、新的領域被不斷擴展,構成了有影響力的客戶群,國際影響日益擴大。
東軟嵌入式業務發展很快,業務量增加迅速;如何在快速的發展中,改善開發過程、提高開發效率、保證產品品質的問題顯得日益重要。為此 Neusoft 分析了原有的開發過程后認為:編碼階段、測試階段的花費時間很大,并且問題也比較多,改善的潛力比較大。在編碼階段,東軟盡管制定了詳細的編碼規范,要求工程師在編碼時候遵守,但由于代碼的規模大、人員較多,Review 基本采用人工的方式,致使 Coding Review 花費了相當多的工作量,而且效果不是很顯著。
在測試階段,單體測試投入很多工作量編寫 Test Cases,測試也花費了大量時間;從測試的結果,東軟發現 Test Cases 不能保證覆蓋代碼中所有的 Case。盡管東軟加強了Test Cases 的Review,但效果沒有明顯的改善。
C++ Test 的 Coding Standard 提供了 Effective C++/ More Effective C++/ MISRA 等16 類規則(總計 500 多條)供我們選擇,它提供 MISRA(汽車工業軟件編碼標準), 這是東軟嵌入式軟件開發所遵從的編碼規范,對東軟開發非常適用。另外由于東軟具有很多的客戶,每個客戶都對編碼規范有各自的要求,并且要求的非常細致具體。C++ Test 的Coding Standard 除了提供的 500 多條規則外,C++ Test 還具有 Rule Wizard 的功能,用戶可以根據自己需求原型化定制自己的 Coding Rules,可以說 C++ Test 的 Rule Wizard 完美地滿足了東軟的需求。
例如:
1.東軟的編碼規范對變量、函數的名字要加類型前綴;如結構體指針數組的命名要這樣描述 apstXXXX(XXXX 為結構體名稱,a 代表數組,p 代表指針,st 代表結構體)。用Rule Wizard 可以方便定義如下規則(如圖 1)2.東軟的編碼規范對對判斷語句規定,將變量寫在“==“的后邊,常量放在“==”的前邊。用Rule Wizard 可以方便定義如下規則(如圖 2)
【圖 1: 變量命名的規范 】

【圖 2: IF 語句的規范 】
C++ Test 的 Unit Testing 功能可以根據被測試函數,自動完成測試用例,進行測試, 并給出測試的覆蓋度。這個過程不需要工程師的參與,基本達到單體測試自動化;并且出現的問題能夠回溯,能夠做到回歸測試。在項目開發中原來幾個人的測試工作,可以由一套C++ Test 的 Unit Testing 來完成,并且覆蓋度清晰可見,對產品質量狀況可以做到“心中有數”。目前有 2 個項目應用了 C++ Test 工具,從項目的過程數據來,編碼階段和測試階段的效率得到一定的改善,各個階段輸出的產品質量也有一定的提高,客戶對開發的效率和產品的質量非常滿意。從目前的使用效果看,可以說應用 C++ Test 有效的改善了東軟的開發過程、提高了開發效率、提高了產品品質。相信隨著使用經驗的積累、使用范圍(更多項目)的擴大,將根本改善東軟的開發過程,產生巨大的生產力,并且不斷促進產品品質的提高。