軟件工程基礎(chǔ):第7章 軟件測(cè)試_第1頁
軟件工程基礎(chǔ):第7章 軟件測(cè)試_第2頁
軟件工程基礎(chǔ):第7章 軟件測(cè)試_第3頁
軟件工程基礎(chǔ):第7章 軟件測(cè)試_第4頁
軟件工程基礎(chǔ):第7章 軟件測(cè)試_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章軟件測(cè)試軟件驗(yàn)證軟件驗(yàn)證是通過檢查和提供客觀證據(jù)表明軟件已經(jīng)滿足規(guī)定的需求,是確保軟件質(zhì)量和降低軟件成本的重要手段,涉及軟件的整個(gè)生存周期。進(jìn)行軟件驗(yàn)證的方式大體有兩種:測(cè)試和證明。

測(cè)試又分靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試兩種。

靜態(tài)測(cè)試,又稱評(píng)審,是對(duì)軟件進(jìn)行的一種分析和檢查活動(dòng)。

動(dòng)態(tài)測(cè)試是通過運(yùn)行軟件來檢驗(yàn)其動(dòng)態(tài)行為和運(yùn)行結(jié)果的正確性。

證明是一種通過形式化的數(shù)學(xué)方法來確保軟件正確性的活動(dòng)。

軟件測(cè)試軟件測(cè)試是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼的復(fù)審,是為了發(fā)現(xiàn)錯(cuò)誤,通過檢查和提供客觀證據(jù)表明軟件已經(jīng)滿足規(guī)定的需求。軟件測(cè)試是確保軟件質(zhì)量和降低軟件成本的重要手段,涉及軟件的整個(gè)生存周期。一般的軟件開發(fā)組織要將30%~40%的項(xiàng)目精力投入到測(cè)試之中,一些人命悠關(guān)的軟件(如航空器的飛行控制軟件)其測(cè)試費(fèi)用往往更高。軟件錯(cuò)誤的來源用戶/客戶/開發(fā)人員之間信息交流不暢開發(fā)人員/管理人員經(jīng)驗(yàn)與素質(zhì)缺陷軟件需求不確定(需求模糊或不斷變化)軟件及系統(tǒng)復(fù)雜(規(guī)模大、技術(shù)性強(qiáng))測(cè)試復(fù)雜性與經(jīng)濟(jì)性誤解:開發(fā)一個(gè)程序是困難的,測(cè)試一個(gè)程序則比較容易。由于測(cè)試情況數(shù)量巨大,都不可能進(jìn)行徹底的測(cè)試,即窮舉測(cè)試。為了降低測(cè)試成本,選擇測(cè)試用例時(shí)應(yīng)注意遵守“經(jīng)濟(jì)性”的原則。測(cè)試的主要影響因素:

系統(tǒng)的類型、潛在的用戶數(shù)量、信息的價(jià)值、開發(fā)機(jī)構(gòu)、測(cè)試的時(shí)機(jī)測(cè)試存在的疑問測(cè)試應(yīng)該什么時(shí)候開始?誰應(yīng)該執(zhí)行測(cè)試?測(cè)試技術(shù)如何能夠有助于防止錯(cuò)誤?測(cè)試活動(dòng)如何被集成到軟件過程的模型中?測(cè)試如何有利于復(fù)用?測(cè)試需要多大的工作量?7.1軟件測(cè)試基礎(chǔ)

軟件測(cè)試≠程序測(cè)試軟件測(cè)試對(duì)象:軟件生存周期各階段文檔和代碼據(jù)美國(guó)一家公司統(tǒng)計(jì):64%的錯(cuò)誤屬于分析和設(shè)計(jì)的錯(cuò)誤,編碼錯(cuò)誤只占36%。軟件測(cè)試不是打消軟件工程師積極性的過程,而是同軟件分析與設(shè)計(jì)一樣,是為了建成高質(zhì)量的軟件,只不過是從不同的側(cè)面進(jìn)行罷了。7.1.1測(cè)試觀點(diǎn)

G.J.Myers在他有關(guān)軟件測(cè)試的著作《軟件測(cè)試技巧》中陳述了一系列關(guān)于測(cè)試的觀點(diǎn):測(cè)試是為了尋找錯(cuò)誤而運(yùn)行程序的過程。一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤。一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。軟件測(cè)試就是試圖以最少的代價(jià)發(fā)現(xiàn)軟件分析、設(shè)計(jì)和編碼中存在的各種不同類型的錯(cuò)誤,從而提高軟件質(zhì)量,降低軟件成本。7.1.2測(cè)試原則

測(cè)試應(yīng)“盡早地和不斷地進(jìn)行”。較早確定測(cè)試計(jì)劃,嚴(yán)格執(zhí)行測(cè)試計(jì)劃。注意錯(cuò)誤的群集現(xiàn)象和應(yīng)用Pareto原則。測(cè)試規(guī)模應(yīng)從小到大。測(cè)試應(yīng)一般由獨(dú)立的第三方進(jìn)行。應(yīng)保證測(cè)試用例的完整性和有效性。應(yīng)保存所有測(cè)試用例和出錯(cuò)統(tǒng)計(jì)等,直至軟件不用為止。7.1.3測(cè)試工具

軟件測(cè)試工具是一種測(cè)試軟件,開發(fā)人員借助它可以提高軟件測(cè)試工作的效率。

按工作方式可分為:靜態(tài)分析工具和動(dòng)態(tài)測(cè)試工具。按功能分有:測(cè)試計(jì)劃工具——支持制訂測(cè)試計(jì)劃;測(cè)試設(shè)計(jì)與開發(fā)工具——支持測(cè)試數(shù)據(jù)生成等;測(cè)試執(zhí)行工具——支持特定的測(cè)試方法,支持回歸測(cè)試等;測(cè)試評(píng)價(jià)工具——報(bào)告測(cè)試覆蓋情況;測(cè)試管理工具——協(xié)助進(jìn)行測(cè)試組織工作;以及其它輔助測(cè)試工具等。

靜態(tài)分析測(cè)試軟件

通過掃描被測(cè)程序的正文,對(duì)其數(shù)據(jù)流和控制流進(jìn)行分析,然后送出測(cè)試報(bào)告。主要功能包括:變量檢查、邏輯結(jié)構(gòu)檢查、接口檢查、編程風(fēng)格檢查和靜態(tài)特性統(tǒng)計(jì)等,通過建立交叉引用表的方式等實(shí)現(xiàn)。

動(dòng)態(tài)分析測(cè)試軟件

通過對(duì)被測(cè)程序有控制地運(yùn)行,自動(dòng)地監(jiān)視、記錄和統(tǒng)計(jì)被測(cè)程序的運(yùn)行情況。主要功能包括:語句執(zhí)行次數(shù)統(tǒng)計(jì)、執(zhí)行開銷估算、CPU執(zhí)行時(shí)間分析和軟硬件資源利用分析等。

測(cè)試數(shù)據(jù)自動(dòng)生成程序

用來為被測(cè)程序自動(dòng)產(chǎn)生測(cè)試輸入數(shù)據(jù)。這樣,一方面可以減輕生成大量測(cè)試數(shù)據(jù)的負(fù)擔(dān),另一方面可以避免人為的偏見。對(duì)于預(yù)期結(jié)果,可以利用手工計(jì)算等得到。按生成測(cè)試數(shù)據(jù)的方式來分有:路徑測(cè)試數(shù)據(jù)生成程序、隨機(jī)測(cè)試數(shù)據(jù)生成程序、根據(jù)數(shù)據(jù)規(guī)格說明生成測(cè)試數(shù)據(jù)等。

文件比較程序

用來自動(dòng)檢查測(cè)試結(jié)果。其檢查過程一般主要由三步組成;首先建立一個(gè)存放預(yù)期結(jié)果的文件;然后執(zhí)行測(cè)試,并把測(cè)試結(jié)果存進(jìn)另一文件;最后,使用文件比較程序比較上述兩個(gè)文件,打印出有差異者的情況。

MercuryInteractive公司測(cè)試產(chǎn)品

TestDirector是基于Web的測(cè)試管理系統(tǒng),它可以在公司組織內(nèi)進(jìn)行全球范圍內(nèi)測(cè)試的協(xié)調(diào)。WinRunner是一種企業(yè)級(jí)的用于檢驗(yàn)應(yīng)用程序是否如期運(yùn)行的功能性測(cè)試工具。LoadRunner是一種較高規(guī)模適應(yīng)性的自動(dòng)負(fù)載測(cè)試工具,它能預(yù)測(cè)系統(tǒng)行為,優(yōu)化性能。其他測(cè)試工具工具名支持語言簡(jiǎn)介BoundsCheckerC++,DelphiAPI和OLE錯(cuò)誤檢查、指針和泄露錯(cuò)誤檢查、內(nèi)存錯(cuò)誤檢查TrueTimeC++,Java,VisualBasic代碼運(yùn)行效率檢查、組件性能的分析FailSafeVisualBasic自動(dòng)錯(cuò)誤處理和恢復(fù)系統(tǒng)JcheckMSVisualJ++圖形化的事件分析工具TrueCoverageC++,Java,VisualBasic函數(shù)調(diào)用次數(shù)、所占比率統(tǒng)計(jì)以及穩(wěn)定性跟蹤SmartCheckVisualBasic函數(shù)調(diào)用次數(shù)、所占比率統(tǒng)計(jì)以及穩(wěn)定性跟蹤C(jī)odeReviewVisualBasic自動(dòng)源代碼分析工具JtestJava代碼分析和動(dòng)態(tài)類、組件測(cè)試JcontractJava實(shí)時(shí)性能監(jiān)控以及分析優(yōu)化C++TestC,C++代碼分析和動(dòng)態(tài)測(cè)試CodeWizardC,C++代碼靜態(tài)分析Insure++C,C++實(shí)時(shí)性能監(jiān)控以及分析優(yōu)化.test.Net代碼分析和動(dòng)態(tài)測(cè)試7.1.4測(cè)試組織

一般來講,獨(dú)立測(cè)試之前,軟件開發(fā)者應(yīng)負(fù)責(zé)對(duì)程序單個(gè)模塊測(cè)試,以保證每個(gè)模塊能完成詳細(xì)設(shè)計(jì)的功能等。在很多情況下,軟件開發(fā)者也進(jìn)行集成測(cè)試,以保證每個(gè)模塊能按總體設(shè)計(jì)的要求形成整個(gè)軟件系統(tǒng)。在系統(tǒng)形成之后,獨(dú)立測(cè)試小組才開始介入,同時(shí)為了保證測(cè)試順利進(jìn)行,在測(cè)試過程中,開發(fā)人員必須協(xié)助。獨(dú)立測(cè)試應(yīng)確保系統(tǒng)滿足需求分析的要求和用戶意圖。

7.1.5測(cè)試與調(diào)試

測(cè)試是查找錯(cuò)誤癥狀的過程,調(diào)試則是查找錯(cuò)誤癥狀原因并改正錯(cuò)誤的過程。

測(cè)試評(píng)價(jià)調(diào)試修改后的軟件配置出現(xiàn)錯(cuò)誤的軟件

測(cè)試結(jié)果預(yù)期結(jié)果

錯(cuò)誤率數(shù)據(jù)軟件配置

測(cè)試配置

測(cè)試工具未出現(xiàn)錯(cuò)誤的軟件

⊕7.1.6動(dòng)態(tài)測(cè)試步驟

用戶要求需求分析需求規(guī)格說明書概要設(shè)計(jì)概要設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)說明書編碼源代碼單元測(cè)試集成測(cè)試確認(rèn)測(cè)試系統(tǒng)測(cè)試問題軟件7.2代碼復(fù)審

代碼復(fù)審一般在程序通過編譯(如查找語法等錯(cuò)誤)及靜態(tài)分析工具檢查(如找出程序在結(jié)構(gòu)、編碼標(biāo)準(zhǔn)與風(fēng)格等方面的錯(cuò)誤)之后,在動(dòng)態(tài)測(cè)試之前進(jìn)行。

代碼復(fù)審是一種人工進(jìn)行的測(cè)試,可以由程序作者本人非正式地進(jìn)行,也可以由審查小組以開會(huì)的方式進(jìn)行。代碼復(fù)審的主要方法有:代碼會(huì)審、走查、辦公桌檢查。經(jīng)驗(yàn)表明,代碼復(fù)審是一種非常有效的程序驗(yàn)證技術(shù),該方法能夠有效地發(fā)現(xiàn)30%到70%的邏輯設(shè)計(jì)和編碼錯(cuò)誤。

7.2.1代碼復(fù)審內(nèi)容

對(duì)源程序代碼進(jìn)行的復(fù)審主要著重于檢查編碼實(shí)現(xiàn)是否完備、正確等。

在復(fù)審過程中,可以對(duì)照有關(guān)條例或錯(cuò)誤檢驗(yàn)表,查找程序在結(jié)構(gòu)、功能、編碼標(biāo)準(zhǔn)和風(fēng)格等方面的錯(cuò)誤或提出質(zhì)疑。

代碼復(fù)審內(nèi)容條例表舉例

錯(cuò)誤檢驗(yàn)表一般內(nèi)容

7.2.2代碼會(huì)審

會(huì)審小組一般由4人左右組成,包括組長(zhǎng)1人,程序作者1人,其他程序員(或測(cè)試員)1~2人。會(huì)審小組通過對(duì)評(píng)審材料閱讀、討論和爭(zhēng)議,對(duì)程序代碼進(jìn)行檢查。

會(huì)前,小組負(fù)責(zé)人將待評(píng)審的材料及有關(guān)附件發(fā)放給與會(huì)者,以熟悉有關(guān)內(nèi)容。

會(huì)上,程序作者逐句朗讀并講解程序代碼,其他人則集中精力對(duì)照有關(guān)條例或檢查表,捕捉程序可能存在的問題,也可以展開討論。

會(huì)后,應(yīng)把查出的問題清單交給程序作者處理,作者處理完后交回組長(zhǎng)。如果問題很多,或者程序改動(dòng)較大,則在改正后應(yīng)再次組織會(huì)審。

會(huì)審一方面可使得同行之間相互啟發(fā)從而更易于發(fā)現(xiàn)錯(cuò)誤,另一方面有利于互相學(xué)習(xí)、交流經(jīng)驗(yàn)、取長(zhǎng)補(bǔ)短,以進(jìn)一步提高軟件開發(fā)質(zhì)量和效率。

7.2.3走查

會(huì)前,發(fā)放有關(guān)材料給與會(huì)者進(jìn)行熟悉,并至少指定一人設(shè)計(jì)測(cè)試用例。

會(huì)上,與會(huì)者扮演計(jì)算機(jī)角色,人工“執(zhí)行”被測(cè)程序。通過將測(cè)試用例“輸入”被測(cè)程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論