軟件編程規(guī)范培訓(xùn)實(shí)例與練習(xí)

  文件類別:其它

  文件格式:文件格式

  文件大?。?2K

  下載次數(shù):105

  所需積分:3點(diǎn)

  解壓密碼:qg68.cn

  下載地址:[下載地址]

清華大學(xué)卓越生產(chǎn)運(yùn)營總監(jiān)高級研修班

綜合能力考核表詳細(xì)內(nèi)容

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

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

 我要上傳資料,請點(diǎn)我!
 管理工具分類
COPYRIGT @ 2001-2018 HTTP://www.fanshiren.cn INC. ALL RIGHTS RESERVED. 管理資源網(wǎng) 版權(quán)所有