官术网_书友最值得收藏!

3.1 靜態(tài)測(cè)試技術(shù)

靜態(tài)測(cè)試是不運(yùn)行程序而尋找程序中可能存在的缺陷或評(píng)估程序的過(guò)程。靜態(tài)測(cè)試可以由人工進(jìn)行,也可以借助軟件工具自動(dòng)進(jìn)行。靜態(tài)測(cè)試具有以下特點(diǎn)。

第一,靜態(tài)測(cè)試不必運(yùn)行程序。

第二,靜態(tài)測(cè)試可以由人工進(jìn)行,充分發(fā)揮人的邏輯思維優(yōu)勢(shì)。由人的思維局限及交流障礙造成的邏輯錯(cuò)誤,由人通過(guò)邏輯思維去解決是一種非常有效的辦法。特別是在充分利用人的邏輯思維優(yōu)勢(shì)互補(bǔ)的條件時(shí),檢測(cè)出缺陷的水平很高。

第三,靜態(tài)測(cè)試實(shí)施無(wú)需特別條件,容易開(kāi)展。

靜態(tài)測(cè)試技術(shù)包括主要由人工進(jìn)行的代碼審查、代碼走查、桌面檢查,以及主要由軟件工具自動(dòng)進(jìn)行的靜態(tài)分析。如果從廣義上來(lái)理解靜態(tài)測(cè)試技術(shù),那么它還包括軟件需求分析和設(shè)計(jì)階段的技術(shù)評(píng)審。

代碼審查(Code Inspection)和代碼走查(Code Walkthrough)是由若干個(gè)程序員與測(cè)試員組成一個(gè)小組,集體閱讀并討論程序或用大腦“執(zhí)行”并檢查程序的過(guò)程。代碼審查和代碼走查分兩步完成:首先做一定的準(zhǔn)備工作,然后舉行會(huì)議進(jìn)行討論。會(huì)議的主題是發(fā)現(xiàn)缺陷而不是修正缺陷。

桌面檢查是指由程序員閱讀自己所編寫(xiě)的程序,這是一種很陳舊的技術(shù)。它有幾方面的缺點(diǎn):第一,出于心理上的原因,程序員容易偏愛(ài)自己所編寫(xiě)的程序,沒(méi)有發(fā)現(xiàn)缺陷的欲望(這和已經(jīng)知道程序有缺陷從而讀程序、找缺陷極為不同);第二,由于人的思維定式,有些習(xí)慣性的問(wèn)題自己不易發(fā)現(xiàn);第三,如果從根本上對(duì)功能理解錯(cuò)了,自己不易修正。所以桌面檢查效率不高,可用于個(gè)人自行檢查程序中明顯的疏漏或筆誤。

代碼審查和代碼走查不僅比桌面檢查優(yōu)越得多,而且與動(dòng)態(tài)測(cè)試技術(shù)相比也具有其自身優(yōu)勢(shì):第一,使用這種技術(shù)測(cè)試,一旦發(fā)現(xiàn)缺陷,就知道缺陷的性質(zhì)和位置,因而調(diào)試所付出的代價(jià)低;第二,使用這種技術(shù)一次能揭示一批缺陷,而不是一次只揭示一種缺陷。動(dòng)態(tài)測(cè)試技術(shù)通常僅用于揭示發(fā)生缺陷的征兆。

經(jīng)驗(yàn)表明,通過(guò)代碼審查和代碼走查能夠有效發(fā)現(xiàn)30%~70%的邏輯設(shè)計(jì)和編碼缺陷。IBM的研究表明,使用代碼審查技術(shù),缺陷的檢測(cè)率高達(dá)80%。Myers的研究發(fā)現(xiàn),代碼審查和代碼走查平均可查出全部缺陷的38%。此外,有研究表明,對(duì)某類(lèi)缺陷使用代碼審查和代碼走查技術(shù)比使用計(jì)算機(jī)測(cè)試技術(shù)更為有效,而對(duì)另一類(lèi)缺陷情況正好相反。由此可見(jiàn),代碼審查和代碼走查技術(shù)與計(jì)算機(jī)測(cè)試技術(shù)是互補(bǔ)的,缺少任何一種都會(huì)影響缺陷的檢測(cè)率。

主站蜘蛛池模板: 元朗区| 枣阳市| 邢台县| 伊川县| 炉霍县| 永寿县| 乌兰浩特市| 昔阳县| 绍兴县| 台前县| 嫩江县| 新沂市| 惠安县| 公安县| 咸阳市| 客服| 永州市| 来宾市| 韩城市| 越西县| 光山县| 石城县| 绍兴市| 沙湾县| 个旧市| 巴东县| 苍梧县| 南靖县| 贡山| 雷山县| 栖霞市| 读书| 永靖县| 兖州市| 珲春市| 凌云县| 富锦市| 花莲县| 赣榆县| 大英县| 丰台区|