軟件編程規(guī)范培訓實例與練習

  文件類別:其它

  文件格式:文件格式

  文件大小:72K

  下載次數(shù):105

  所需積分:3點

  解壓密碼:qg68.cn

  下載地址:[下載地址]

清華大學卓越生產運營總監(jiān)高級研修班

綜合能力考核表詳細內容

軟件編程規(guī)范培訓實例與練習
軟件編程規(guī)范培訓實例與練習 o 問題分類 1 邏輯類問題(A類)-指設計、編碼中出現(xiàn)的計算正確性和一致性、程序邏輯控制等方面 出現(xiàn)的問題,在系統(tǒng)中起關鍵作用,將導致軟件死機、功能正常實現(xiàn)等嚴重問題; 接口類問題(B類)-指設計、編碼中出現(xiàn)的函數(shù)和環(huán)境、其他函數(shù)、全局/局部變量或 數(shù)據變量之間的數(shù)據/控制傳輸不匹配的問題,在系統(tǒng)中起重要作用,將導致模塊間配合 失效等嚴重問題; 維護類問題(C類)-指設計、編碼中出現(xiàn)的對軟件系統(tǒng)的維護方便程度造成影響的問題 ,在系統(tǒng)中不起關鍵作用,但對系統(tǒng)后期維護造成不便或導致維護費用上升; 可測試性問題(D類)-指設計、編碼中因考慮不周而導致后期系統(tǒng)可測試性差的問題。 o 處罰辦法 問題發(fā)生率: P=D/S D=DA+0.5DB+0.25DC 其中: P -問題發(fā)生率 D -1個季度內錯誤總數(shù) DA -1個季度內A類錯誤總數(shù) DB -1個季度內B類錯誤總數(shù) DC -1個季度內C類錯誤總數(shù) S -1個季度內收到問題報告單總數(shù) 1)當D≥3時,如果P≥3%,將進行警告處理,并予以公告; 2)當D≥5時,如果P≥5%,將進行罰款處理,并予以公告。 目 錄 |一、邏輯類代碼問題 |第5頁 | |1、變量/指針在使用前就必須初始化 |第5頁 | |【案例1.1.1】 |第5頁 | |2、防止指針/數(shù)組操作越界 |第5頁 | |【案例1.2.1】 |第5頁 | |【案例1.2.2】 |第6頁 | |【案例1.2.3】 |第7頁 | |【案例1.2.4】 |第8頁 | |3、避免指針的非法引用 |第9頁 | |【案例1.3.1】 |第9頁 | |4、變量類型定義錯誤 |第10頁 | |【案例1.4.1】 |第10頁 | |5、正確使用邏輯與&&、屏蔽&操作符 |第17頁 | |【案例1.5.1】 |第17頁 | |6、注意數(shù)據類型的匹配 |第18頁 | |【案例1.6.1】 |第18頁 | |【案例1.6.2】 |第18頁 | |7、用于控制條件轉移的表達式及取值范圍是否書寫正確 |第20頁 | |【案例1.7.1】 |第20頁 | |【案例1.7.2】 |第21頁 | |【案例1.7.3】 |第22頁 | |8、條件分支處理是否有遺漏 |第24頁 | |【案例1.8.1】 |第24頁 | |9、引用已釋放的資源 |第26頁 | |【案例1.9.1】 |第26頁 | |10、分配資源是否已正確釋放 |第28頁 | |【案例1.10.1】 |第28頁 | |【案例1.10.2】 |第29頁 | |【案例1.10.3】 |第30頁 | |【案例1.10.4】 |第32頁 | |【案例1.10.5】 |第33頁 | |【案例1.10.6】 |第35頁 | |【案例1.10.7】 |第38頁 | |11、防止資源的重復釋放 |第39頁 | |【案例1.11.1】 |第39頁 | |12、公共資源的互斥性和競用性 |第40頁 | |【案例1.12.1】 |第40頁 | |【案例1.12.2】 |第40頁 | |二、接口類代碼問題 |第43頁 | |1、對函數(shù)參數(shù)進行有效性檢查 |第43頁 | |【案例2.1.1】 |第43頁 | |【案例2.1.2】 |第43頁 | |【案例2.1.3】 |第44頁 | |【案例2.1.4】 |第46頁 | |【案例2.1.5】 |第47頁 | |【案例2.1.6】 |第48頁 | |2、注意多出口函數(shù)的處理 |第49頁 | |【案例2.2.1】 |第49頁 | |三、維護類代碼問題 |第51頁 | |1、 統(tǒng)一枚舉類型的使用 |第51頁 | |【案例3.1.1】 |第51頁 | |2、 注釋量至少占代碼總量的20% |第51頁 | |【案例3.2.1】對XXX產品BAM某版本部分代碼注釋量的統(tǒng)計 |第51頁 | |四、產品兼容性問題 |第52頁 | |1、系統(tǒng)配置、命令方式 |第52頁 | |【案例4.1.1】 |第52頁 | |【案例4.1.2】 |第53頁 | |2、設備對接 |第54頁 | |【案例4.2.1】 |第54頁 | |3、其他 |第55頁 | |【案例4.3.1】 |第55頁 | |五、版本控制問題 |第58頁 | |1、新老代碼中同一全局變量不一致 |第58頁 | |【案例5.1.1】 |第58頁 | |六、可測試性代碼問題 |第59頁 | |1、調試信息/打印信息的正確性 |第59頁 | |【案例6.1.1】 |第59頁 | 一、邏輯類代碼問題 1、變量/指針在使用前就必須初始化 【案例1.1.1】 C語言中最大的特色就是指針。指針的使用具有很強的技巧性和靈活性,但同時也帶來了 很大的危險性。在XXX的代碼中有如下一端對指針的靈活使用: ... ... _UC *puc_card_config_tab; ... ... Get_Config_Table( AMP_CPM_CARD_CONFIG_TABLE, &ul_card_config_num, &puc_card_config_tab, use_which_data_area ); ... ... b_middle_data_ok = generate_trans_middle_data_from_original_data( puc_card_config_tab, Ul_card_config_num) .... ... 其中紅色部分巧妙的利用指向指針的指針為指針puc_card_config_tab賦值,而在蘭色 部分使用該指針。但在Get_Config_Table函數(shù)中有可能失敗返回而不給該指針賦值。 因此,以后使用的可能是一個非法指針。 指針的使用是非常靈活的,同時也存在危險性,必須小心使用。指針使用的危險性舉 世共知。在新的編程思想中,指針基本上被禁止使用(JAVA中就是這樣),至少也是 被限制使用。而在我們交換機的程序中大量使用指針,并且有增無減。 2、防止指針/數(shù)組操作越界 【案例1.2.1】 在香港項目測試中,發(fā)現(xiàn)ISDN話機撥新業(yè)務號碼時,若一位一位的撥至18位,不會有問 題。但若先撥完號碼再成組發(fā)送,會導致MPU死機。 處理過程: 查錯過程很簡單,按呼叫處理的過程檢查代碼,發(fā)現(xiàn)某一處的判斷有誤,本應為小于18 的判斷,寫成了小于等于18。 結 論: 代碼編寫有誤。 思考與啟示: 1、極限測試必須注意,測試前應對某項設計的極限做好充分測試規(guī)劃。 2、測試極限時還要注意多種業(yè)務接入點,本例為ISDN。對于交換機來說,任何一種業(yè)務 都要分別在模擬話機、ISDN話機、V5話機、多種形式的話務臺上做測試。對于中繼的業(yè) 務,則要充分考慮各種信令:TUP、ISUP、PRA、NO1、V5等等。 【案例1.2.2】 對某交換類進行計費測試,字冠011對應1號路由、1號子路由,有4個中繼群11,12,13,1 4(都屬于1#模塊),前后兩個群分別構成自環(huán)。其中11,13群向為出中繼,12,14群向為入 中繼,對這四個群分別進行計費設置,對出入中繼都計費。電話60640001撥打01160010 001兩次,使四個群都有機會被計費,取話單后瀏覽話單發(fā)現(xiàn)對11群計費計次表話單出中 繼群號不正確,其它群的計次表中出中繼群號正常。 處理過程: 與開發(fā)人員在測試組環(huán)境多次重復以上步驟,發(fā)現(xiàn)11群的計次表話單有時正常,有時其 出中繼群號就為一個隨機值,發(fā)生異常的頻率比較高。為什么其它群的話單正常,唯獨 11群不正常呢?11群是四個群中最小的群,其中繼計次表位于緩沖區(qū)的首位,打完電話 后查詢內存發(fā)現(xiàn)出中繼群號在內存中是正確的,取完話單后再查就不正確了。 結 論: 話單池的一個備份指針Pool_head_1和中繼計次表的頭指針重合,影響到第一個中繼計次 表的計費。 思考與啟示: 隨機值的背后往往隱藏著指針問題,兩塊內存緩沖區(qū)的交界處比較容易出現(xiàn)問題,在編 程時是應該注意的地方。 【案例1.2.3】 【正 文】 在接入網產品A測試中,在內存數(shù)據庫正常的情況下的各種數(shù)據庫方面的操作都是正常的 。為了進行數(shù)據庫異常測試,于是將數(shù)據庫內容人為地破壞了。發(fā)現(xiàn)在對數(shù)據庫進行比 較操作時,出現(xiàn)程序跑死了現(xiàn)象。 經過跟蹤調試發(fā)現(xiàn)問題出現(xiàn)在如下一段代碼中: 1 for(i=0; idbf_count; i++) 2 { 3 pDBFat = (_NM_DBFAT_STRUC *)(NVDB_BASE + DBFAT_OFFSET + i*DBFAT_LEN); 4 if(fat_check(pDBFat) != 0) 5 { 6 pSysHead->system_flag = 0; 7 ...
軟件編程規(guī)范培訓實例與練習
 

[下載聲明]
1.本站的所有資料均為資料作者提供和網友推薦收集整理而來,僅供學習和研究交流使用。如有侵犯到您版權的,請來電指出,本站將立即改正。電話:010-82593357。
2、訪問管理資源網的用戶必須明白,本站對提供下載的學習資料等不擁有任何權利,版權歸該下載資源的合法擁有者所有。
3、本站保證站內提供的所有可下載資源都是按“原樣”提供,本站未做過任何改動;但本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。
4、未經本網站的明確許可,任何人不得大量鏈接本站下載資源;不得復制或仿造本網站。本網站對其自行開發(fā)的或和他人共同開發(fā)的所有內容、技術手段和服務擁有全部知識產權,任何人不得侵害或破壞,也不得擅自使用。

 我要上傳資料,請點我!
COPYRIGT @ 2001-2018 HTTP://m.musicmediasoft.com INC. ALL RIGHTS RESERVED. 管理資源網 版權所有