




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一、判斷題).軟件測試的目的是盡可能多的找出軟件的缺陷。(Y1)測試是驗(yàn)收測試的一種。(Y2.Beta(N)3.驗(yàn)收測試是由最終用戶來實(shí)施的。(Y)4.項(xiàng)目立項(xiàng)前測試人員不需要提交任何工件。Y)(5.單元測試能發(fā)現(xiàn)約80%的軟件缺陷。N)6.代碼評審是檢查源代碼是否達(dá)到模塊設(shè)計的要求。(Y)7.自底向上集成需要測試員編寫驅(qū)動程序。()8.負(fù)載測試是驗(yàn)證要檢驗(yàn)的系統(tǒng)的能力最高能達(dá)到什么程度。(N)9.測試人員要堅持原則,缺陷未修復(fù)完堅決不予通過。(N).代碼評審員一般由測試員擔(dān)任。(N10(N)ll.我們可以人為的使得軟件不存在配置問題。N)12.集成測試計劃在需求分析階段末提交。(二、選擇題)
2、1.軟件驗(yàn)收測試的合格通過準(zhǔn)則是:(ABCD.軟件需求分析說明書中定義的所有功能已全部實(shí)現(xiàn),性能指標(biāo)全部達(dá)到要求。AB.所有測試項(xiàng)沒有殘余一級、二級和三級錯誤。C.立項(xiàng)審批表、需求分析文檔、設(shè)計文檔和編碼實(shí)現(xiàn)一致。D.驗(yàn)收測試工件齊全。ABCD2.軟件測試計劃評審會需要哪些人員參加?()A.項(xiàng)目經(jīng)理負(fù)責(zé)人SQA.B.C.配置負(fù)責(zé)人D.測試組)AD3.下列關(guān)于alpha測試的描述中正確的是:(alpha測試需要用戶代表參加A.測試不需要用戶代表參加B.alphaalphaC.測試是系統(tǒng)測試的一種測試是驗(yàn)收測試的一種D.alpha4.測試設(shè)計員的職責(zé)有:(BC)A.制定測試計劃B.設(shè)計測試用例.設(shè)
3、計測試過程、腳本CD.評估測試活動).軟件實(shí)施活動的進(jìn)入準(zhǔn)則是:5(ABC.需求工件已經(jīng)被基線化AB.詳細(xì)設(shè)計工件已經(jīng)被基線化C.構(gòu)架工件已經(jīng)被基線化D.項(xiàng)目階段成果已經(jīng)被基線化三、填空題1.軟件驗(yàn)收測試包括:正式驗(yàn)收測試,alpha測試,beta測試。2.系統(tǒng)測試的策略有:功能測試,性能測試,可靠性測試,負(fù)載測試,易用性測試,強(qiáng)度測試,安全測試,配置測試,安裝測試,卸載測試,文擋測試,故障恢(有的可以復(fù)測試,界面測試,容量測試,兼容性測試,分布測試,可用性測試,就滿分哦)合在一起,分開寫只要寫出15設(shè)計系統(tǒng)測試計劃需要參考的項(xiàng)目文擋有:軟件測試計劃,軟件需求工件和迭3.代計劃。對面向過程的系
4、統(tǒng)采用的集成策略有:自頂向下,自底向上兩種。4.通過畫因果圖來寫測試用例的步驟為:5.,1)分析軟件規(guī)格說明描述中,哪些是原因(即輸入條件或輸入條件的等價類)(哪些是結(jié)果(即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對(2應(yīng)的是什么關(guān)系?根據(jù)這些關(guān)系,畫出因果圖。)由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不3(可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號標(biāo)明約束或限制條件。)把因果圖轉(zhuǎn)換成判定表。(45)把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例。(四、簡答題區(qū)別階段評審的與同行評審1.;,只
5、要是找錯誤同行評審目的:發(fā)現(xiàn)小規(guī)模工作產(chǎn)品的錯誤:評審模塊階段作品的正確性可行性及完整性階段評審目的SQA指導(dǎo):3-7人人員必須經(jīng)過同行評審會議的培訓(xùn)I,由同行評審人數(shù)階段評審人數(shù):5人左右評審人必須是專家具有系統(tǒng)評審資格同行評審內(nèi)容:內(nèi)容小一般文檔40頁,代碼500行階段評審內(nèi)容:內(nèi)容多,主要看重點(diǎn)一小部分工作產(chǎn)品完成:同行評審時間.!:階段評審時間通常是設(shè)置在關(guān)鍵路徑的時間點(diǎn)上什么是軟件測試2.為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程3簡述集成測試的過程系統(tǒng)集成測試主要包括以下過程:1.構(gòu)建的確認(rèn)過程。2.補(bǔ)丁的確認(rèn)過程。3.系統(tǒng)集成測試測試組提交過程。測試用例設(shè)計過程。4.測試代碼編寫過程。
6、5.的報告過程。6.Bug7.每周/每兩周的構(gòu)建過程。8.點(diǎn)對點(diǎn)的測試過程。9.組內(nèi)培訓(xùn)過程。怎么做好文檔測試4P142仔細(xì)閱讀,跟隨每個步驟,檢查每個圖形,嘗試每個示例。檢查文檔的編寫是否滿足文檔編寫的目的內(nèi)容是否齊全,正確內(nèi)容是否完善標(biāo)記是否正確5白盒測試有幾種方法總體上分為靜態(tài)方法和動態(tài)方法兩大類。.靜態(tài):關(guān)鍵功能是檢查軟件的表示和描述是否一致沒有沖突或者沒有歧義,動態(tài):語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋。?系統(tǒng)測試計劃是否需要同行審批,為什么6需要,系統(tǒng)測試計劃屬于項(xiàng)目階段性關(guān)鍵文檔,因此需要評審。測試與beta的區(qū)別?7Alpha測試后仍然會有少量的設(shè)
7、計Alpha測試在系統(tǒng)開發(fā)接近完成時對應(yīng)用系統(tǒng)的測試;變更。這種測試一般由最終用戶或其它人員完成,不能由程序或測試員完成。測試當(dāng)開發(fā)和測試根本完成時所做的測試,最終的錯誤和問題需要在最終發(fā)Beta行前找到。這種測試一般由最終用戶或其它人員完成,不能由程序員或測試員完成。比較負(fù)載測試,容量測試和強(qiáng)度測試的區(qū)別?8負(fù)載測試:在一定的工作負(fù)荷下,系統(tǒng)的負(fù)荷及響應(yīng)時間。強(qiáng)度測試:在一定的負(fù)荷條件下,在較長時間跨度內(nèi)的系統(tǒng)連續(xù)運(yùn)行給系統(tǒng)性能所造成的影響。系統(tǒng)應(yīng)用特征的某項(xiàng)指容量測試目的是通過測試預(yù)先分析出反映軟件容量測試:,系統(tǒng)在其極限值狀態(tài)下沒有標(biāo)的極限值(如最大并發(fā)用戶數(shù)、數(shù)據(jù)庫記錄數(shù)等)還將確定測
8、試對象在容量測試出現(xiàn)任何軟件故障或還能保持主要功能正常運(yùn)行。給定時間內(nèi)能夠持續(xù)處理的最大負(fù)載或工作量。容量測試的目的是使系統(tǒng)承受超的,并且它的目額的數(shù)據(jù)容量來發(fā)現(xiàn)它是否能夠正確處理。容量測試是面向數(shù)據(jù)的是顯示系統(tǒng)可以處理目標(biāo)內(nèi)確定的數(shù)據(jù)容量。測試結(jié)束的標(biāo)準(zhǔn)是什么?9.用例全部測試。覆蓋率達(dá)到標(biāo)準(zhǔn)。缺陷率達(dá)到標(biāo)準(zhǔn)。其他指標(biāo)達(dá)到質(zhì)量標(biāo)準(zhǔn)描述軟件測試活動的生命周期?10測試周期分為計劃、設(shè)計、實(shí)現(xiàn)、執(zhí)行、總結(jié)。其中:計劃:對整個測試周期中所有活動進(jìn)行規(guī)劃,估計工作量、風(fēng)險,安排人力物力資源,安排進(jìn)度等;設(shè)計:完成測試方案,從技術(shù)層面上對測試進(jìn)行規(guī)劃;實(shí)現(xiàn):進(jìn)行測試用例和測試規(guī)程設(shè)計;執(zhí)行:根據(jù)前期完
9、成的計劃、方案、用例、規(guī)程等文檔,執(zhí)行測試用例。總結(jié):記錄測試結(jié)果,進(jìn)行測試分析,完成測試報告。軟件的缺陷等級應(yīng)如何劃分?11死.由于程序所引起的死機(jī),非法退出21A類一嚴(yán)重錯誤,包括以下各種錯誤:.與.功能錯誤6.循環(huán)3.數(shù)據(jù)庫發(fā)生死鎖4因錯誤操作導(dǎo)致的程序中斷5.7.數(shù)據(jù)通訊錯誤數(shù)據(jù)庫連接錯誤數(shù)3.程序錯誤.2.程序接口錯誤包括以下各種錯誤:B類一較嚴(yán)重錯誤,1據(jù)庫的表、業(yè)務(wù)規(guī)則、缺省值未加完整性等約束條件操作界面錯誤(包括數(shù)據(jù)窗口內(nèi)列1.C類一一般性錯誤,包括以下各種錯誤:簡單的輸入限制未放在.打印內(nèi)容、格式錯誤3.名定義、含義是否一致)2數(shù)據(jù)庫表中有過多的空字段54前臺進(jìn)行控制.刪除操
10、作未給出提示.輔助說明描述不清楚.2界面不規(guī)范.1類一較小錯誤,包括以下各種錯誤:D.提示窗口文字未采用行業(yè)術(shù)5長操作未給用戶提示.3.輸入輸出不規(guī)范4.可輸入?yún)^(qū)域和只讀區(qū)域沒有明顯的區(qū)分標(biāo)志6.語E類一測試建議五、用例設(shè)計隨意選取一個簡單物品,假定是一個喝水的帶廣告圖案的花紙杯,設(shè)計出盡可能多的測試用例。測試項(xiàng)目:杯子需求測試:查看杯子使用說明書界面測試:查看杯子外觀功能度:用水杯裝水看漏不漏;水能不能被喝到安全性:杯子有沒有毒或細(xì)菌可*性:杯子從不同高度落下的損壞程度可移植性:杯子再不同的地方、溫度等環(huán)境下是否都可以正常使用兼容性:杯子是否能夠容納果汁、白水、酒精、汽油等.易用性:杯子是否
11、燙手、是否有防滑措施、是否方便飲用用戶文檔:使用手冊是否對杯子的用法、限制、使用條件等有詳細(xì)描述疲勞測試:將杯子盛上水(案例一)放24小時檢查泄漏時間和情況;盛上汽油(案例二)放24小時檢查泄漏時間和情況等壓力測試:用根針并在針上面不斷加重量,看壓強(qiáng)多大時會穿透跌落測試:?杯子加包裝(有填充物),在多高的情況摔下不破損震動測試:杯子加包裝(有填充物),六面震動,檢查產(chǎn)品是否能應(yīng)對惡劣的鐵路公路航空運(yùn)輸測試數(shù)據(jù):測試數(shù)據(jù)具體編寫此處略。其中應(yīng)用到:場景法、等價類劃分法、因果圖法、錯誤推測法、邊界值法等方法期望輸出:該期望輸出需查閱國標(biāo)、行標(biāo)以及使用用戶的需求檢查說明書書寫準(zhǔn)確性說明書測試:六、網(wǎng)
12、絡(luò)、操作系統(tǒng)、語言知識1請你分別劃劃OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖,和TCP/IP的五層結(jié)構(gòu)圖?答:七層結(jié)構(gòu)從上到下依次是:物理傳輸層;3網(wǎng)絡(luò)層;2數(shù)據(jù)鏈路層;1;57應(yīng)用層;6表示層會話層;4層五層結(jié)構(gòu)是;1物理層。運(yùn)輸層;3網(wǎng)絡(luò)層;2鏈路層5應(yīng)用層;4與TCP在哪個層上面,請你詳細(xì)的解釋一下IP協(xié)議的定義,主要有什么作用?2呢?UDP在網(wǎng)絡(luò)層,TCP在傳輸層,IP:UDP答,的縮寫,意TransmissionControlProtocol/InternetProtocolTCP/IP是英文思是傳輸控制協(xié)議/網(wǎng)際協(xié)議。TCP/IP協(xié)議組之所以流行,部分原因是因?yàn)樗梢杂迷诟鞣N各樣的信道和底層協(xié)議(例
13、如T1和X.25、以太網(wǎng)以及RS-232串行接口)之上。確切地說,TCP/IP協(xié)議是一組包括TCP協(xié)議和IP協(xié)議,UDP(UserDatagramProtocol)協(xié)議、ICMP(InternetControlMessageProtocol)協(xié)議和其他一些協(xié)議的協(xié)議組。TCP/IP協(xié)議并不完全符合0SI的七層參考模型。傳統(tǒng)其中每一層,層抽象的參考模型7是一種通信協(xié)議的的開放式系統(tǒng)互連參考模型,7執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這TCP/IP而網(wǎng)路層、層是:物理層、數(shù)據(jù)鏈路層、傳輸層、話路層、表示層和應(yīng)用層。層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成
14、通訊協(xié)議采用了4層分別為:應(yīng)用層:應(yīng)用程序間溝通的層,如簡單電子郵件傳自己的需求。這4)等。)輸(SMTP、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet、)傳輸層:在此層中,它提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議(TCPTCP用戶數(shù)據(jù)報協(xié)議(UDP)等,和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)?請問交換機(jī)和路由器分別的實(shí)現(xiàn)原理是什么?分別在哪個層次上面實(shí)現(xiàn)的?一般意義上說交換機(jī)是工作在數(shù)據(jù)鏈路層。但隨著科技的發(fā)展,現(xiàn)在有了三層交部分換機(jī),三層交換機(jī)已經(jīng)擴(kuò)展到了網(wǎng)絡(luò)層。也就是說:它等于“數(shù)據(jù)鏈路層+路由港是工作在網(wǎng)絡(luò)層。網(wǎng)絡(luò)層二交換機(jī)中傳的是幀。通過存儲轉(zhuǎn)發(fā)來實(shí)現(xiàn)的。路由潛中傳的
15、是IP數(shù)據(jù)報。主要是選址和路由。4請問C+的類和C里面的STRUCT有什么區(qū)別?答:除關(guān)鍵字不同外(class,struct)的唯一區(qū)別是,結(jié)構(gòu)在默認(rèn)情況下的成員是公共(public)的,而類在默認(rèn)情況下的成員是私有(private)的。在C+中,結(jié)構(gòu)是特殊的類。class是從struct發(fā)展而來的。之所以將struct和class都保留,是因?yàn)?1、提出class是為了強(qiáng)調(diào)一種概念。是為了照顧到大多數(shù)人的習(xí)慣。struct,保留2.class是有區(qū)別的。struct和class不保證等等保證成員按照聲明順序在內(nèi)存中存儲。struct而它們都可以繼承,實(shí)現(xiàn)多態(tài)等。但也有少許區(qū)別。比如:stru
16、ctA;繼承classB:A;/private繼承structC:B;/public,class默認(rèn)是privatestruct默認(rèn)是public。這是由于一般說來,struct和class可以換用(當(dāng)然要注意一些語法問題)。而struct更適合看成是一個數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)體,更適合看成是一個對象的實(shí)現(xiàn)體,class對私有成員進(jìn)行保護(hù),還提供與外界的接口。從習(xí)慣上更喜歡用class。5請講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用?,表示它為邏輯非運(yùn)算符置于“”是析構(gòu)函數(shù);析構(gòu)函數(shù)因使用:幺尊符號()答膩構(gòu)造函數(shù),加上類名稱來定義。不能隨意調(diào)用,沒有參數(shù),它沒有返回類型,;析構(gòu)函數(shù)也是特殊的類成員函數(shù),也沒
17、有重載,只有在類對象的生命期結(jié)束的時候,由系統(tǒng)自動調(diào)用。!有適放內(nèi)存空間的做用.多態(tài)的一種表現(xiàn)虛函數(shù)是C+,而我們把父類的指針指向子類,則必例如:子類繼承了父類的一個函數(shù)(方法)須把父類的該函數(shù)(方法)設(shè)為virturl(虛函數(shù))。使用虛函數(shù),我們可以靈活的進(jìn)行動態(tài)綁定,當(dāng)然是以一定的開銷為代價。如果父類的函數(shù)(方法)根本沒有必要或者無法實(shí)現(xiàn),完全要依賴子類去實(shí)現(xiàn)的二0virturl話,可以把此函數(shù)(方法)設(shè)為函數(shù)名我們把這樣的函數(shù)(方法)稱為純虛函數(shù)。如果一個類包含了純虛函數(shù),稱此類為抽象類全局變量和局部變量有什么區(qū)別?實(shí)怎么實(shí)現(xiàn)的?操作系統(tǒng)和編譯器是怎么知6道的?主要的區(qū)別是變量的作用范圍
18、不同。全局變量在全局范圍內(nèi)都有效,而局部變答:量只在聲明此變量的作用域內(nèi)有效。在初始化對象的時候初始化,生命周期與該實(shí)例相同,之全局變量是屬于實(shí)例的,所以叫全局變量是因?yàn)樵搶?shí)例中的所有方法或?qū)傩远伎梢砸茫痪植孔兞渴窃趯?shí)塊中,生命周期從調(diào)用該方法到該方法退出,并且只有該方法static例方法內(nèi)或能夠引用之。全局變量和局部變量的區(qū)別是在存儲器中位置不同,具體說,全局變量存儲在數(shù)據(jù)段中,局部變量都有可能,一般來說在堆棧段7一些寄存器的題目,主要是尋址和內(nèi)存管理等一些知識。尋址方式:答.有七種基本的尋址方式:8086/8088表示指令中操作數(shù)所在的方法稱為尋址方式。立即尋找,寄存器尋址,直接尋址,寄
19、存器間接尋址,寄存器相對尋址,基址加變址尋址,相對基址加變址尋址。直接尋址、寄存潛間接尋址、寄存器相對尋址、基址加變址尋址和相對基址加變用于說明操作數(shù)所在存儲單元的地址。址尋址,這五種尋址方式屬于存儲器尋址,能根據(jù)需要自動引用段寄存器得到段值,所以這五種方式由于總線接口單元BIU位是一個的方法。有效地址EA16也就是確定存放操作數(shù)的存儲單元有效地址EA的無符號數(shù),在利用這五種方法計算有效地址時,所得的結(jié)果認(rèn)為是一個無符號數(shù)。端口尋址等。除了這些基本的尋址方式外,還有固定尋址和I/O內(nèi)存管理主要包括內(nèi)存的分配和回收整理等,實(shí)現(xiàn)內(nèi)存的高效利用。是多少位的系統(tǒng)?在數(shù)據(jù)總線上是怎么實(shí)現(xiàn)的?Q8:808
20、6答:16位系統(tǒng),8位數(shù)據(jù)傳送,通過總線控制邏輯實(shí)現(xiàn)數(shù)據(jù)線和地址線的分時復(fù)用.8086是Inter的16位微處理器有16根數(shù)據(jù)線和20根地址線,它既能處理16位數(shù)據(jù),也能處理8位數(shù)據(jù)內(nèi)部數(shù)據(jù)總線都是按16位設(shè)計的,單外部數(shù)據(jù)總線只有8條七、其他一、談?wù)勀懔私獾能浖y試流程及工具一般測試流程:1.需求分析階段:對業(yè)務(wù)的學(xué)習(xí),分析需求點(diǎn)。,其中包括人員,軟件開始編寫測試計劃SOW測試計劃階段:測試組長根據(jù)2.硬件資源,測試點(diǎn),集成順序,進(jìn)度安排和風(fēng)險識別等內(nèi)容。3 .測試設(shè)計階段:測試方案一般由對需求很熟的高資深的測試工程師設(shè)計,測試方案要求根據(jù)SRS上的每個需求點(diǎn)設(shè)計出包括需求點(diǎn)簡介,測試思路和
21、詳細(xì)測試方法三部分的方案。測試方案編寫完成后也需要進(jìn)行評審。4 .測試方案階段:主要是對測試用例和規(guī)程的設(shè)計。測試用例是根據(jù)測試方案來編寫的,通過測試方案階段,測試人員對整個系統(tǒng)需求有了詳細(xì)的理解。這時開始編寫用例才能保證用例的可執(zhí)行和對需求的覆蓋。測試用例需要包括測試項(xiàng),用例級別,預(yù)置條件,操作步驟和預(yù)期結(jié)果。其中操作步驟和預(yù)期結(jié)果需要編寫詳細(xì)和明確。測試用例應(yīng)該覆蓋測試方案,而測試方案又覆蓋了測試需求點(diǎn),這樣才能保證客戶需求不遺漏。同樣,測試用例也需要評審。5 .測試執(zhí)行階段:執(zhí)行測試用例,及時提交有質(zhì)量的Bug和測試口報,測試報告等相關(guān)文檔。流程:需求分析一測試計劃一測試設(shè)計一測試環(huán)境搭
22、建一測試執(zhí)行一測試記錄一缺陷管理一軟件評估一RTM.測試工具:C/S及B/S架構(gòu)相關(guān)的軟件產(chǎn)品,那么對不同操作系統(tǒng),如Windows系列、unix、linux甚至蘋果OS等測試環(huán)境都是必須的常用的軟件測試工具分為:開源測試管理工具:BugfreeBugzillaTestLinksmantisWeblnject、MaxQSelenium、Watir開源功能自動化測試工具:Web、:Jmeter.OpenSTA、DBMonsterTPTEST工動源開性能自化測試具ApplicationLoadSimulator的測試管理系WebTestDirector:企業(yè)級測試管理工具,也是業(yè)界第一個基于統(tǒng)。的
23、測試管理工具,可以組織和管理應(yīng)用程序測試流WebQualityCenter:基于程的所有階段,包括指定測試需求、計劃測試、執(zhí)行測試和跟蹤缺陷。QuickTestProfessional:用于創(chuàng)建功能和回歸測試。LoadRunner:預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具。二、如何發(fā)現(xiàn)客戶端軟件中的內(nèi)存泄露?檢測內(nèi)存泄漏的問題應(yīng)該盡早進(jìn)行,它絕不應(yīng)該是系統(tǒng)測試時的主要目標(biāo)。也就是說,檢查是否存在內(nèi)存泄漏,應(yīng)該從編碼時就要考慮,單元測試和集成測試時要重點(diǎn)檢查。如果前期沒有考慮,等到了系統(tǒng)測試才想起檢查或者才發(fā)現(xiàn)泄漏,為時已晚,此時再去定位泄漏的位置,太難太難了,它可能會讓你的交付口期delay不確定的時
24、間。最近看了一些自動錯誤預(yù)防(AEP)的理論,我深受啟發(fā)。作為測試人員的我們,從“發(fā)現(xiàn)錯誤”轉(zhuǎn)變到“幫助開發(fā)人員預(yù)防錯誤”,這將是一個巨大的轉(zhuǎn)變。所以說,下面我的答案中的第一點(diǎn),我先說如何預(yù)防內(nèi)存泄漏的問題,然后再講如何發(fā)現(xiàn)。1如何在開發(fā)過程中有效預(yù)防內(nèi)存泄漏?第一步:遵循“好”的編程規(guī)則“好”的編程規(guī)則是各位前輩經(jīng)驗(yàn)和教訓(xùn)的集合,好的編程規(guī)則堪稱開發(fā)者的“圣經(jīng)二遵循統(tǒng)一的編程規(guī)則,可以讓開發(fā)新手少走好多彎路,可以讓項(xiàng)目整體的質(zhì)量維持一個起碼的“質(zhì)量底線”。.有關(guān)內(nèi)存泄漏方面的規(guī)則主要是“內(nèi)存管理”方面的,舉幾個簡單的,如下X用malloc或new申請內(nèi)存之后,立即檢查指針值是否為NULL(防
25、止使用指針值為NULL的內(nèi)存)X動態(tài)內(nèi)存的申請與釋放是否配對(防止內(nèi)存泄漏)Xmalloc語句是否正確無誤?例如字節(jié)數(shù)是否正確?類型轉(zhuǎn)換是否正確X是否出現(xiàn)野指針,例如用free或delete釋放了內(nèi)存之后,忘記將指針設(shè)置為NULL第二步:積極主動檢測“內(nèi)存泄漏”嚴(yán)格遵循好的編程規(guī)則,可以讓程序員在代碼中盡量少的引入bug,但一旦不小心引入了,怎么辦?這就要求我們在單元測試和集成測試中嚴(yán)格把關(guān)。在這個階段,單靠程序員或者測試員通過“代碼走查”的方式檢查內(nèi)存泄漏,客戶的實(shí)踐和我的經(jīng)驗(yàn)告訴我,這將是“不切實(shí)際”的,無論效率還是時間。如果能夠借助于一些專業(yè)的工具的話,情況可能就不一樣了。如果你的程序是
26、用VisualC+6.0開發(fā),那么Numega的BoundsChecker將是你檢測“內(nèi)存泄漏”最好的選擇,如果是VisualC+.NET,可以試一卜Compuware的DevPartnero如果你的程序基于Unix或者Linux平臺,使用C或者C+,可以考慮一下開源的工具valgrind,我的朋友跟我說,它在一定程度上比Rational的Purify更出色。上面的工具都要求程序能夠動態(tài)運(yùn)行起來,而且測試用例需要你H己準(zhǔn)備。如果你正處于單元測試或集成測試階段,程序代碼量已經(jīng)足夠大,而且還不能夠動態(tài)運(yùn)行,要盡早檢測代碼中的“內(nèi)存泄漏”問題,該怎么辦?此時你可以試用.一下目前最新的靜態(tài)分析技術(shù):X
27、它不要求代碼能夠動態(tài)運(yùn)行X也不需要你來編寫測試用例X只需要代碼能夠正常編譯,就可以發(fā)現(xiàn)代碼只有在執(zhí)行過程中才出現(xiàn)的錯誤,當(dāng)然也包括內(nèi)存泄漏。這方面的工具有Klocwork的K7,Coverity的SQS,以及C+test中的BugDetective,其中最“物美價廉”的就是c+test的BugDetective。2如何發(fā)現(xiàn)客戶端軟件的“內(nèi)存泄漏”?如果開發(fā)過程中已經(jīng)按照我上面提到的去做,相信發(fā)布后的程序存在“內(nèi)存泄漏”的可能性兒乎為零。如果開發(fā)過程已經(jīng)到了后期,系統(tǒng)測試已經(jīng)開始做了,還要發(fā)現(xiàn)內(nèi)存泄漏,這個時候我希望你能夠拿到源代碼。如果有源代碼,你還可以考慮1中的第二步,借助于專業(yè)的工具協(xié)助,雖然可能效果不一定特別理想,但總比下面我提到的方法更好一些。當(dāng)然作為測試人員,我當(dāng)然也理解事情總沒有想像那么完美。我們通常會碰到“需要在系統(tǒng)測試階段檢測是否有內(nèi)存泄漏,而且沒有源代碼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療軟件合同范例
- 出售固定資產(chǎn)合同范本
- 單方出資合作合同范本
- 農(nóng)村大包建房合同范本
- 合同范例效力
- 印刷合同范本 博客
- 廠房消防設(shè)計合同范本
- 農(nóng)業(yè)合作社入股合同范本
- 醫(yī)生顧問聘用合同范本
- 導(dǎo)演工作室合作合同范本
- 蘇教版五年級下冊數(shù)學(xué)全冊教案設(shè)計
- 曲臂車作業(yè)安全技術(shù)交底
- 2025年安徽合肥市公安局經(jīng)開分局輔警招聘58人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 小學(xué)五年級地方課程《話說溫州》教學(xué)計劃
- 《略陽名勝古跡》課件
- 幼兒教師消防安全培訓(xùn)
- 2024年度企業(yè)環(huán)境、社會及治理(ESG)咨詢合同6篇
- 成人多動癥的臨床特征
- 綠化養(yǎng)護(hù)服務(wù)協(xié)議
- 機(jī)械加工企業(yè)安全生產(chǎn)應(yīng)急預(yù)案樣本(2篇)
- 術(shù)中獲得性壓力性損傷預(yù)防專家共識2023
評論
0/150
提交評論