freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件編程規(guī)范培訓(xùn)實(shí)例與練習(xí)-cmmi-文庫(kù)吧在線文庫(kù)

  

【正文】 eturn TRUE。 } else if ( ( bsn % 16 ) == 7 || ( bsn % 16 ) == 8 ) return TRUE。tempstruct0 )。 //如果在合理范圍內(nèi)且不為 0的話: else if ( != 0 ) Max2B1QStatPortNum = 。首先保證計(jì)費(fèi)數(shù)據(jù)設(shè)定的正確性,打了幾次自環(huán)電話后,查看話單正常,則開(kāi)始呼叫。 思考與啟示: 在計(jì)費(fèi)測(cè)試過(guò)程中,對(duì)話單的觀察很 重要,不應(yīng)該放過(guò)任何一個(gè)細(xì)小的疑點(diǎn); 計(jì)費(fèi)測(cè)試僅僅打幾次電話往往達(dá)不到效果,越接近用戶實(shí)際使用的情況越可能發(fā)現(xiàn)問(wèn)題。 當(dāng)不停的撥測(cè) V5用戶的 MCT業(yè)務(wù)時(shí) , 有時(shí)在聽(tīng)音時(shí) , 可能由于網(wǎng)板有雜音等原因 (或用戶碰了話機(jī)的按鍵 ), 導(dǎo)致 DTR收到一位號(hào) , 則會(huì)立即停止此次 MCT服務(wù) , 用戶會(huì)聽(tīng)到 MCT送音突然中斷 , 然后恢復(fù)了與惡意呼叫者的通話 . 而下次再用 MCT時(shí) , 由于上面所述的原因 , 會(huì)聽(tīng)到新業(yè)務(wù)失敗音 , 此次失敗后 , 無(wú)論 MCT_HANDLE分配成功與否 , 該用戶的 MCT標(biāo)志都被置為 1, 所以在用戶掛機(jī)時(shí) , 會(huì)將該模塊唯一的 MCT_HANDLE資源釋放掉 . 則以后該功能又可以正常實(shí)現(xiàn)。 從現(xiàn)象上可以判斷出,網(wǎng)管軟件存在隱蔽的內(nèi)存泄露或資源不釋放的問(wèn)題,并且這種資源耗盡是一個(gè)緩慢的過(guò) 程。 對(duì)其它可疑的操作和操作組合重復(fù)以上過(guò)程。 itemPosition=m +(RecordsInHistoryFileRecordsInBuffer[EVENT_ALARM])。 if(()) ClearIndexEntry()。 【案例 】 【正 文】 在進(jìn)行代碼審查過(guò)程中,造成內(nèi)存泄漏的代碼比較多。 } 2. 給指針賦值時(shí),沒(méi)有檢查指針是否為空,如果指針不為空,那么指針原來(lái)指向的內(nèi)存將丟失。 dbf_start_needed = FALSE。 pMsgDBApp_To_Logic = (LPDBSelfMsg)GetBuff( sizeof(DBSelfMsg), __LINE__ )。 【案例 】 【正 文】在進(jìn)行 SAR的 PDU包發(fā)收的測(cè)試過(guò)程中要同時(shí)考慮幾個(gè)邊界值 ,即發(fā)送包大小范圍 [0Nmax],SAR的 PDU包接收的最大值 Kmax,MBUF塊的大小 ,將 SAR的 PDU包接收的最 大值設(shè)為 20xx(Kmax=20xxB), MBUF的塊長(zhǎng)設(shè)為 512(M = 512B),則發(fā)送包大小的正確分支的取值為下限 0,上限Nmax=20xx,然后在 0與 20xx之間隨機(jī)取若干值 ,再考慮 MBUF的塊長(zhǎng) ,還可增加 M倍數(shù)的若干選值及其附近值 .以上是測(cè)試的一般思路 ,但由于很偶然的機(jī)會(huì)選擇包長(zhǎng) 20xx,及 Kmax=20xxB,才發(fā)現(xiàn)問(wèn)題 .原因如下 : MBUF塊長(zhǎng) 512,但塊中實(shí)際存放數(shù)據(jù)的只有 500(MBUF頭上有 2個(gè)長(zhǎng)字 ,尾部有 1個(gè)長(zhǎng)字共 12B只用于塊控制 ),而發(fā)送的包長(zhǎng)正好是 500的整數(shù)倍 4,由于是整數(shù) 倍 ,所以 SAR(BT8230)從 FREE鏈上摘成 5個(gè) MBUF(原因從略 ),而 SAR驅(qū)動(dòng)只知道有 4個(gè)MBUF,這樣到上層用戶時(shí) ,只釋放 4個(gè) MBUF,從而漏掉 1個(gè) MBUF,經(jīng)過(guò)很短一段時(shí)間后 ,內(nèi)存即被耗盡 .(此問(wèn)題非常嚴(yán)重 ,因?yàn)樵趯?shí)際運(yùn)用中 ,是 500的整數(shù)倍的 PDU包的概率較小 ,但一旦出現(xiàn)就會(huì)發(fā)生一次內(nèi)存泄漏 ,這樣經(jīng)過(guò)若干天或若干月的運(yùn)行后會(huì)使系統(tǒng)崩潰 ) 以前未發(fā)現(xiàn)此問(wèn)題的原因是因?yàn)樵瓉?lái)使用的緩沖塊長(zhǎng)為 2048,減去 12B的控制信息 ,實(shí)際存放數(shù)據(jù)的長(zhǎng)度為 2048這個(gè)值 ,忽略了 2036,所以 在選取上下限中的若干值時(shí) ,選取包的長(zhǎng)度是 2036的倍數(shù)的概率就非常小 ,因而未發(fā)現(xiàn)該問(wèn)題 . 由于測(cè)試中一般很難將取值范圍中的所有值覆蓋全 ,所以在選取上下限中的若干取值時(shí)要格外仔細(xì) ,考慮的方面盡可能全 ,因?yàn)楹苡锌赡芷渲心承┲稻褪菧y(cè)試邊界值 .凡是涉及的數(shù)字盡量選取 ,象該例中正確分支的測(cè)試邊界為 0,20xx,512及其整數(shù)倍 ,500 及其整數(shù)倍 ,12 及其整數(shù)倍等值 ,它們是必測(cè)的邊界值 ,而非可測(cè)可不測(cè)的隨機(jī)選取的所謂若干選值 . 【案例 】 【正 文】 rel_ABIS_CCB_conn( )中,在進(jìn)行消息鏈表 Msg_Queue[ces]的拆鏈操作時(shí),對(duì)于相應(yīng)的 CCB只進(jìn)行了一次拆鏈操作,即只拆除了一個(gè)節(jié)點(diǎn),如果出現(xiàn)該 CCB對(duì)應(yīng)的消息節(jié)點(diǎn)不止一個(gè)的情況就會(huì)出現(xiàn)大量節(jié)點(diǎn)不能釋放的問(wèn)題。 if( pPower_test_answer == NULL_PTR ) return。 WarnMsgOut(Error occurs while copying files in directory dbf,trying again.)。 pdbffiledesname = desRootPath。 assert(pRecord != NULL)。然而,長(zhǎng)時(shí)間累計(jì)起來(lái),必然會(huì)造成資源緊張而出現(xiàn)故障。kitem_total。 例如 : void WarnSvr::SaveWarnData() { ...... for(int m=0。 監(jiān)視前,首先重新啟動(dòng) WINDOWS,最好不運(yùn)行其他的程序,打開(kāi)“系統(tǒng)狀況”這個(gè)監(jiān)視工具,然后運(yùn)行網(wǎng)管軟件,記 下此時(shí)的資源狀況數(shù)據(jù)。對(duì)于很難重現(xiàn)的問(wèn)題千萬(wàn)不要輕易放過(guò),我們網(wǎng)上設(shè)備所出的問(wèn)題很多都是一些在實(shí)驗(yàn)室難以出現(xiàn)或很難重現(xiàn)的一些問(wèn)題,一些顯而易見(jiàn)的問(wèn)題一般都可消滅在實(shí)驗(yàn)室,難就難在消滅一些隱藏很深的問(wèn)題。大約反復(fù)操作 20遍,又出現(xiàn)了一次這樣的情況,顯然程序中可能存在某種問(wèn)題。某個(gè)用戶在某次呼叫產(chǎn)生了告警話單,其上一次和下一次呼叫的計(jì)費(fèi)情況都正常, 兩次呼叫之間的時(shí)間間隔只有幾秒鐘,排除了人為修改數(shù)據(jù)的可能。 【思考與啟示】 在代碼審查時(shí),應(yīng)該十分注意條件判斷的的完備性。 error_code = DB_Query( RID_OTHERS_PARA_INFO, 1, (LPDBCondition)amp。 條件分支處理是否有遺漏 【案例 】 【現(xiàn) 象】 在接入網(wǎng)主機(jī)程序的代碼審查中,發(fā)現(xiàn) DBQ_Init_ANType函數(shù)中如下代碼段缺少應(yīng)有的條件分支,在數(shù)據(jù)異常的情況下,會(huì)產(chǎn)生較嚴(yán)重的問(wèn)題。但代碼表達(dá)的意思是:如果是 32路用戶板并且端口號(hào)是 15或 16就返回真值,否則還要 執(zhí)行下邊語(yǔ)句。在我們目前的 BAM方案中,存在著多個(gè)終端協(xié)同工作,如果某個(gè)終端發(fā)出的命令在 BAM中長(zhǎng)時(shí)間獨(dú)占著大部分系統(tǒng)資源,造成的后果是嚴(yán)重的。 話單臺(tái)控制最多輸出 200張?jiān)拞? 程序如下 while(timeCur = timeEnd) { timeCur += tsOneDay。 當(dāng)瀏覽了大約 10萬(wàn)張?jiān)敿?xì)話單后,終端與 BAM的連接關(guān)閉。 【結(jié) 論】: 如此嚴(yán)重問(wèn)題為什么到今天才發(fā)現(xiàn)?因?yàn)槲覀冊(cè)趯?shí)驗(yàn)室中一般采用同一單板的 2個(gè) PCM系統(tǒng)自環(huán)進(jìn)行測(cè)試,則不會(huì)在某單板上有故障和空閑電路共存,自環(huán)屏蔽了錯(cuò)誤。 ...... 該段代碼是在 DOS環(huán)境下用 BC編譯的,由于循環(huán)變量 i是 int型( 2個(gè)字節(jié)),而 dwLen是 DWORD型( 4個(gè)字節(jié)),如果 dwLen大于 65536,那么該函 數(shù)就是死循環(huán)了。 WORD *pCheck =(WORD*)p。 【例一】一次測(cè)試過(guò)程中發(fā) 現(xiàn), SDH送的告警在 BAM調(diào)試窗口打印出紅色提示: File(XXX),Line(XXX):Invalid alarm id ,from: 7, AlarmId: 65463 經(jīng)過(guò)檢查數(shù)據(jù)發(fā)現(xiàn),并沒(méi)有 ID為 65463的告警,分析上報(bào)的數(shù)據(jù)幀,發(fā)現(xiàn)上報(bào)的告警 ID為 B7,原來(lái)代碼中有一處強(qiáng)制類型轉(zhuǎn)換: = (WORD)RecvBuffer[iTmpLen + 5]。 【處理過(guò)程】 反饋到開(kāi)發(fā)人員那里,第一個(gè)問(wèn)題是 BAM的問(wèn)題,第二個(gè)問(wèn)題是 SM的問(wèn)題。但試了非正常情況下,問(wèn)題就出來(lái)了。 retran_num = (LinkState[logic_link].Vs + MOD128 + 1 (_UC)n_r) amp。 define W_MOD 127 //發(fā)送窗口隊(duì)列,意義同上。 另一個(gè)問(wèn)題是為什么 23/4類型的 DLCI數(shù)據(jù)不能恢復(fù)?這是由于對(duì)于 23/4類型的 PVC,其 DLCI的取值范圍為: 131072~4194303,而程序強(qiáng)制轉(zhuǎn)換并恢復(fù)的數(shù)據(jù)最大只能是 65535,所以這條 PVC不能恢復(fù)。 DWORD dwCCID, dwPeerCCID, dwAtmPort, dwPeerAtmPort。 [wCount].dwMapMode = gFrPVCC[bSlotID][dwCCID].dwMapMode。 DWORD dwCCID, dwPeerCCID。 WORD wPeerHdlcDlci。 至此基本可以斷定原因就是出在這里。而在程序運(yùn)行過(guò)程中,這些數(shù)據(jù)保存在 DRAM中,程序運(yùn)行直接從 DRAM中獲取數(shù)據(jù),程序不會(huì)出錯(cuò);當(dāng) FRI板復(fù)位或插拔后,需要從 FLASH中讀取數(shù)據(jù),此時(shí)恢復(fù)函數(shù)的錯(cuò)誤就表現(xiàn)出來(lái)。 ... } DWORD RestoreFrHdlcIntIWFData ( WORD wSlotID, BYTE *pReadPoint ) { WORD wCount, wTotalHdlcIWF。 [wCount].wAtmDlci = gFrPVCEP[ bSlotID ][ gFrPVCC[bSlotID][dwCCID].dwHiPVCEP ].dwDLCI。 ... } DWORD SaveFrNetExtIWFData ( DWORD *pdwWritePoint ) { BYTE bSlotID。 WORD wHdlcDlci。此時(shí)第一個(gè)想法是:在程序處理中,把無(wú)符號(hào)長(zhǎng)整型變量當(dāng)作短整型變量處理了,為了證實(shí)這個(gè)判斷,針對(duì) 17bit/4bytes類型又重新設(shè)計(jì)測(cè)試用例:( 1) 先建 PVC, DLCI=65535,然后保存,重起 MUX,觀察 PVC的恢復(fù)情況,發(fā)現(xiàn) PVC能夠正確恢復(fù); ( 2)再建 PVC, DLCI=65536,然后保存,重起 MUX,觀察 PVC的恢復(fù)情況,此時(shí) PVC不 能正確恢復(fù)。 if ( SPC_STATE_OK == pSpcCBbySpcState ) {。仔細(xì)比較兩種數(shù)據(jù)的差別,發(fā)現(xiàn)出現(xiàn)主機(jī)復(fù)位問(wèn)題的數(shù)據(jù)中 DSL板配置了 MNT/MLT端口,但是沒(méi)有做 DSL端口之間的半永久數(shù)據(jù)。 避免指針的非法引用 【案例 】 【正 文】 在一次測(cè)試中,并沒(méi)有記得做了什么操作,發(fā)現(xiàn) HONET系統(tǒng)的主機(jī)復(fù)位了,之后,系統(tǒng)又工作正常了。tmp_msg,pMsg,sizeof(tmp_msg))。 i MAX_DB_NUM。 13 filesize = pDBFatdbf_fsize。 ipSysHeaddbf_count。 處理過(guò)程: 與開(kāi)發(fā)人員在測(cè)試組環(huán)境多次重復(fù)以上步驟,發(fā)現(xiàn) 11群的計(jì)次表話單有時(shí)正常,有時(shí)其出中繼群號(hào)就為一個(gè)隨機(jī)值,發(fā)生異常的頻率比較高。 結(jié) 論: 代碼編寫(xiě)有誤。因此,以后使用的可能是一個(gè)非法指針。操作符 第 17頁(yè) 【案例 】 第 17頁(yè) 注意數(shù)據(jù)類型的匹配 第 18頁(yè) 【案例 】 第 18頁(yè) 【案例 】 第 18頁(yè) 用于控制條件轉(zhuǎn)移的表達(dá)式及取值范圍是否書(shū)寫(xiě)正確 第 20頁(yè) 【案例 】 第 20頁(yè) 【案例 】 第 21頁(yè) 【案例 】 第 22頁(yè) 條件分支處理是否有遺漏 第 24頁(yè) 【案例 】 第 24頁(yè) 引用已釋放的資源 第 26頁(yè) 【案例 】 第 26頁(yè) 分配資源是否已正確釋放 第 28頁(yè) 【案例 】 第 28頁(yè) 【案例 】 第 29頁(yè) 【案例 】 第 30頁(yè) 【案例 】 第 32頁(yè) 【案例 】 第 33頁(yè) 【案例 】 第 35頁(yè) 【案例 】 第 38頁(yè) 1防止資源的重復(fù)釋放 第 39頁(yè) 【案例 】 第 39頁(yè) 1公共資源的互斥性和競(jìng)用性 第 40頁(yè) 【案例 】 第 40頁(yè) 【案例 】 第 40頁(yè) 二、接口類代碼問(wèn)題 第 43頁(yè) 對(duì)函數(shù)參數(shù)進(jìn)行有效性檢查 第
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1