




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章軟件測(cè)試策略與過程2.1軟件測(cè)試的復(fù)雜性分析2.2軟件測(cè)試方法與策略2.3單元測(cè)試2.4集成測(cè)試2.5確認(rèn)測(cè)試2.6系統(tǒng)測(cè)試2.7驗(yàn)收測(cè)試2.8測(cè)試后的調(diào)試2.9面向?qū)ο蟮能浖y(cè)試第2章軟件測(cè)試策略與過程2.1軟件測(cè)試的復(fù)雜性分析2.1軟件測(cè)試的復(fù)雜性分析1、無(wú)法對(duì)程序進(jìn)行完全測(cè)試(1)測(cè)試所需要的輸入量太大(2)測(cè)試的輸出結(jié)果太多(3)軟件實(shí)現(xiàn)的途徑太多(4)軟件規(guī)格說(shuō)明沒有一個(gè)客觀標(biāo)準(zhǔn)2、測(cè)試無(wú)法顯示潛在的軟件缺陷和故障
——通過軟件測(cè)試只能報(bào)告軟件已被發(fā)現(xiàn)的缺陷和故障,無(wú)法報(bào)告隱藏的軟件故障。3、存在的故障現(xiàn)象與發(fā)現(xiàn)的故障數(shù)量成正比
——結(jié)論:應(yīng)當(dāng)對(duì)故障集中的程序段進(jìn)行重點(diǎn)測(cè)試Return2.1軟件測(cè)試的復(fù)雜性分析1、無(wú)法對(duì)程序進(jìn)行完全測(cè)試軟件測(cè)試的復(fù)雜性分析(續(xù))軟件缺陷故障數(shù)量測(cè)試工作量測(cè)試中測(cè)試后測(cè)試費(fèi)用遺漏缺陷數(shù)目?jī)?yōu)化測(cè)試量圖2-1測(cè)試工作量和軟件缺陷數(shù)量之間的關(guān)系軟件測(cè)試的復(fù)雜性分析(續(xù))軟件缺陷故障數(shù)量測(cè)試工作量測(cè)試中測(cè)2.2軟件測(cè)試方法與策略2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試2.2.2黑盒測(cè)試與白盒測(cè)試2.2.3軟件測(cè)試過程Return2.2軟件測(cè)試方法與策略2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試1、靜態(tài)測(cè)試靜態(tài)測(cè)試不實(shí)際運(yùn)行軟件,主要是對(duì)軟件的編程格式、結(jié)構(gòu)等方面進(jìn)行評(píng)估。靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,也可以借助軟件工具自動(dòng)進(jìn)行。靜態(tài)測(cè)試方法也可利用計(jì)算機(jī)作為對(duì)被測(cè)程序進(jìn)行特性分析的工具,但與人工測(cè)試方式有著根本區(qū)別。另一方面,因它并不真正運(yùn)行被測(cè)程序,只進(jìn)行特性分析,這又與動(dòng)態(tài)方法不同。所以,靜態(tài)方法常常稱為“分析”,靜態(tài)測(cè)試是對(duì)被測(cè)程序進(jìn)行特性分析方法的總稱。2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試1、靜態(tài)測(cè)試靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))
代碼檢查代碼檢查包括代碼走查、界面檢查、代碼審查等,主要檢查代碼和設(shè)計(jì)的一致性,代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性,代碼的邏輯表達(dá)的正確性,代碼結(jié)構(gòu)的合理性等方面。代碼檢查的具體內(nèi)容:變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查等。代碼檢查的優(yōu)點(diǎn):在實(shí)際使用中,代碼檢查比動(dòng)態(tài)測(cè)試更有效率,能快速找到缺陷,發(fā)現(xiàn)30%~70%的邏輯設(shè)計(jì)和編碼缺陷;代碼檢查看到的是問題本身而非征兆。代碼檢查的缺點(diǎn):非常耗費(fèi)時(shí)間,而且代碼檢查需要知識(shí)和經(jīng)驗(yàn)的積累。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試階段的任務(wù):(1)檢查算法的邏輯正確性。(2)檢查模塊接口的正確性。(3)檢查輸入?yún)?shù)是否有合法性檢查。(4)檢查調(diào)用其他模塊的接口是否正確。(5)檢查是否設(shè)置了適當(dāng)?shù)某鲥e(cuò)處理。(6)檢查表達(dá)式、語(yǔ)句是否正確,是否含有二義性。(7)檢查常量或全局變量使用是否正確。(8)檢查標(biāo)識(shí)符的使用是否規(guī)范、一致。(9)檢查程序風(fēng)格的一致性、規(guī)范性。(10)檢查代碼是否可以優(yōu)化,算法效率是否最高。(11)檢查代碼注釋是否完整,是否正確反映了代碼的功能。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試階段的任務(wù):靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試可以完成以下工作:(1)發(fā)現(xiàn)下列程序的錯(cuò)誤:錯(cuò)用局部變量和全局變量;未定義的變量、不匹配的參數(shù);不適當(dāng)?shù)难h(huán)嵌套或分支嵌套、死循環(huán)、不允許的遞歸;調(diào)用不存在的子程序,遺漏標(biāo)號(hào)或代碼。(2)找出以下問題的根源:從未使用過的變量;不會(huì)執(zhí)行到的代碼、從未使用過的標(biāo)號(hào);潛在的死循環(huán)。(3)選擇測(cè)試用例。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試可以完成以下工作:靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))2、動(dòng)態(tài)測(cè)試動(dòng)態(tài)方法的主要特征是:——計(jì)算機(jī)必須真正運(yùn)行被測(cè)試的程序,通過輸入測(cè)試用例,對(duì)其運(yùn)行情況即輸入與輸出的對(duì)應(yīng)關(guān)系進(jìn)行分析,以達(dá)到檢測(cè)的目的。動(dòng)態(tài)測(cè)試包括:(1)功能確認(rèn)與接口測(cè)試(2)覆蓋率分析(3)性能分析(4)內(nèi)存分析靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))2、動(dòng)態(tài)測(cè)試2.2.2黑盒測(cè)試和白盒測(cè)試若測(cè)試規(guī)劃是基于產(chǎn)品的功能,目的是檢查程序各個(gè)功能是否能夠?qū)崿F(xiàn),并檢查其中的功能錯(cuò)誤,則這種測(cè)試方法稱為黑盒測(cè)試(Black-boxTesting)方法。
——黑盒測(cè)試又稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試和基于規(guī)格說(shuō)明的測(cè)試。它是一種從用戶觀點(diǎn)出發(fā)的測(cè)試,一般被用來(lái)確認(rèn)軟件功能的正確性和可操作性。若測(cè)試規(guī)劃基于產(chǎn)品的內(nèi)部結(jié)構(gòu)進(jìn)行測(cè)試,檢查內(nèi)部操作是否按規(guī)定執(zhí)行,軟件各個(gè)部分功能是否得到充分使用,則這種測(cè)試方法稱為白盒測(cè)試(White-boxTesting)方法?!缀袦y(cè)試又稱為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試,一般用來(lái)分析程序的內(nèi)部結(jié)構(gòu)。
2.2.2黑盒測(cè)試和白盒測(cè)試若測(cè)試規(guī)劃是基于產(chǎn)品的功能,黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試黑盒測(cè)試兩種測(cè)試方法從完全不同的角度出發(fā),反映了測(cè)試思路的兩方面情況,適用于不同的測(cè)試階段。黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試黑盒測(cè)試兩種測(cè)試方法從完全不黑盒測(cè)試和白盒測(cè)試(續(xù))1、黑盒測(cè)試黑盒測(cè)試的基本觀點(diǎn)是:任何程序都可以看作是從輸入定義域映射到輸出值域的函數(shù)過程,被測(cè)程序被認(rèn)為是一個(gè)打不開的黑盒子,黑盒中的內(nèi)容(實(shí)現(xiàn)過程)完全不知道,只明確要做到什么。黑盒測(cè)試主要根據(jù)規(guī)格說(shuō)明書設(shè)計(jì)測(cè)試用例,并不涉及程序內(nèi)部構(gòu)造和內(nèi)部特性,只依靠被測(cè)程序輸入和輸出之間的關(guān)系或程序的功能設(shè)計(jì)測(cè)試用例。黑盒測(cè)試的特點(diǎn):(1)黑盒測(cè)試與軟件的具體實(shí)現(xiàn)過程無(wú)關(guān),在軟件實(shí)現(xiàn)的過程發(fā)生變化時(shí),測(cè)試用例仍然可以使用。(2)黑盒測(cè)試用例的設(shè)計(jì)可以和軟件實(shí)現(xiàn)同時(shí)進(jìn)行,這樣能夠壓縮總的開發(fā)時(shí)間。黑盒測(cè)試和白盒測(cè)試(續(xù))1、黑盒測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))輸入輸出黑盒測(cè)試是在程序接口進(jìn)行測(cè)試,它只是檢查程序功能是否按照規(guī)格說(shuō)明書的規(guī)定正常使用。也被稱為用戶測(cè)試。黑盒測(cè)試和白盒測(cè)試(續(xù))輸入輸出黑盒測(cè)試是在程序接口進(jìn)行測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))黑盒測(cè)試主要是為了發(fā)現(xiàn)以下幾類錯(cuò)誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪問錯(cuò)誤?性能上是否能夠滿足要求?是否有初始化或終止性錯(cuò)誤?黑盒測(cè)試的難點(diǎn):在哪個(gè)層次上進(jìn)行測(cè)試?黑盒測(cè)試的具體技術(shù)方法:邊界值分析法等價(jià)類劃分法因果圖法決策表法黑盒測(cè)試和白盒測(cè)試(續(xù))黑盒測(cè)試主要是為了發(fā)現(xiàn)以下幾類錯(cuò)誤:黑盒測(cè)試和白盒測(cè)試(續(xù))2、白盒測(cè)試白盒測(cè)試將被測(cè)程序看作一個(gè)打開的盒子,測(cè)試者能夠看到被測(cè)源程序,可以分析被測(cè)程序的內(nèi)部結(jié)構(gòu),此時(shí)測(cè)試的焦點(diǎn)集中在根據(jù)其內(nèi)部結(jié)構(gòu)設(shè)計(jì)測(cè)試用例。白盒測(cè)試要求是對(duì)某些程序的結(jié)構(gòu)特性做到一定程度的覆蓋,或者說(shuō)這種測(cè)試是“基于覆蓋率的測(cè)試”。通常的程序結(jié)構(gòu)覆蓋有:語(yǔ)句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋路徑覆蓋黑盒測(cè)試和白盒測(cè)試(續(xù))2、白盒測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試需要完全了解程序結(jié)構(gòu)和處理過程,它按照程序內(nèi)部邏輯測(cè)試程序,檢驗(yàn)程序中每條通路是否按預(yù)定要求正確工作。也被稱為程序員測(cè)試。應(yīng)用程序黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試需要完全了解程序結(jié)構(gòu)和處理過黑盒測(cè)試和白盒測(cè)試(續(xù))?X=2
y=2xY=4X=2Y=4未知等式與已知等式黑盒白盒3、黑盒測(cè)試法和白盒測(cè)試法的比較黑盒測(cè)試和白盒測(cè)試(續(xù))?X=2y=2xY=4X=黑盒測(cè)試和白盒測(cè)試(續(xù))項(xiàng)目黑盒測(cè)試法白盒測(cè)試法規(guī)劃方面功能的測(cè)試結(jié)構(gòu)的測(cè)試優(yōu)點(diǎn)方面能確保從用戶的角度出發(fā)進(jìn)行測(cè)試能對(duì)程序內(nèi)部的特定部位進(jìn)行覆蓋測(cè)試缺點(diǎn)方面無(wú)法測(cè)試程序內(nèi)部特定部位;當(dāng)規(guī)格說(shuō)明有誤,則不能發(fā)現(xiàn)問題無(wú)法檢查程序的外部特性;無(wú)法對(duì)未實(shí)現(xiàn)規(guī)格說(shuō)明的程序內(nèi)部欠缺部分進(jìn)行測(cè)試應(yīng)用范圍邊界分析法等價(jià)類劃分法決策表測(cè)試語(yǔ)句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,路徑覆蓋,循環(huán)覆蓋,模塊接口測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))項(xiàng)目黑盒測(cè)試法白盒測(cè)試法規(guī)劃功能的測(cè)2.2.3軟件測(cè)試過程單元測(cè)試單元測(cè)試單元測(cè)試集成測(cè)試集成測(cè)試確認(rèn)測(cè)試系統(tǒng)測(cè)試*這三個(gè)測(cè)試可能交叉與前后互換被測(cè)模塊被測(cè)模塊被測(cè)模塊設(shè)計(jì)信息單元軟件需求其它元素用戶信息其它元素*…*驗(yàn)收測(cè)試*交付用戶…圖2-2軟件測(cè)試的過程流程2.2.3軟件測(cè)試過程單元單元單元集成集成確認(rèn)系統(tǒng)*軟件測(cè)試過程(續(xù))單元測(cè)試:針對(duì)每個(gè)單元的測(cè)試,
以確保每個(gè)模塊能正常工作為目標(biāo)。集成測(cè)試:對(duì)已測(cè)試過的模塊進(jìn)行組裝,進(jìn)行集成測(cè)試。目的在于檢驗(yàn)與軟件設(shè)計(jì)相關(guān)的程序結(jié)構(gòu)問題。確認(rèn)(有效性)測(cè)試:是檢驗(yàn)所開發(fā)的軟件能否滿足所有功能和性能需求的最后手段。系統(tǒng)測(cè)試:檢驗(yàn)軟件產(chǎn)品能否與系統(tǒng)的其他部分(比如,硬件、數(shù)據(jù)庫(kù)及操作人員)協(xié)調(diào)工作。驗(yàn)收(用戶)測(cè)試:檢驗(yàn)軟件產(chǎn)品質(zhì)量的最后一道工序。主要突出用戶的作用,同時(shí)軟件開發(fā)人員也應(yīng)有一定程度的參與。軟件測(cè)試過程(續(xù))單元測(cè)試:針對(duì)每個(gè)單元的測(cè)試,以確保每個(gè)一個(gè)實(shí)用軟件測(cè)試過程一種簡(jiǎn)單實(shí)用的軟件測(cè)試過程模型POCERM。測(cè)試過程中必需的基本測(cè)試活動(dòng)及其產(chǎn)生的結(jié)果:擬定軟件測(cè)試計(jì)劃(Plans)編制軟件測(cè)試大綱(Outlines)設(shè)計(jì)和生成測(cè)試用例(testCasegeneration)實(shí)施測(cè)試(Execution)生成軟件測(cè)試報(bào)告(softwaretestingReports)軟件問題報(bào)告SPR(SoftwareProblemReport)測(cè)試結(jié)果報(bào)告(testresultReports)一個(gè)實(shí)用軟件測(cè)試過程一種簡(jiǎn)單實(shí)用的軟件測(cè)試過程模型POCE2.3單元測(cè)試2.3.1單元測(cè)試的主要任務(wù)2.3.2單元測(cè)試的執(zhí)行過程Return2.3單元測(cè)試2.3.1單元測(cè)試的主要任務(wù)Retur2.3.1單元測(cè)試的主要任務(wù)單元測(cè)試針對(duì)每個(gè)程序的模塊,主要測(cè)試5個(gè)方面的問題:——模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、邊界條件、獨(dú)立的路徑和錯(cuò)誤處理。模塊模塊接口局部數(shù)據(jù)結(jié)構(gòu)路徑測(cè)試出錯(cuò)處理邊界條件2.3.1單元測(cè)試的主要任務(wù)單元測(cè)試針對(duì)每個(gè)程序的模塊,單元測(cè)試的主要任務(wù)(續(xù))模塊接口這是對(duì)模塊接口進(jìn)行的測(cè)試,檢查進(jìn)出程序單元的數(shù)據(jù)流是否正確。模塊接口測(cè)試必須在任何其它測(cè)試之前進(jìn)行。模塊接口測(cè)試至少需要如下的測(cè)試項(xiàng)目:(1)調(diào)用所測(cè)模塊時(shí)的輸入?yún)?shù)與模塊的形式參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;(2)所測(cè)模塊調(diào)用子模塊時(shí),它輸入給子模塊的參數(shù)與子模塊中的形式參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;(3)是否修改了只做輸入用的形式參數(shù);(4)調(diào)用標(biāo)準(zhǔn)函數(shù)的參數(shù)在個(gè)數(shù)、屬性、順序上是否正確;(5)全局變量的定義在各模塊中是否一致。單元測(cè)試的主要任務(wù)(續(xù))模塊接口單元測(cè)試的主要任務(wù)(續(xù))局部數(shù)據(jù)結(jié)構(gòu)在模塊工作過程中,必須測(cè)試模塊內(nèi)部的數(shù)據(jù)能否保持完整性,包括內(nèi)部數(shù)據(jù)的內(nèi)容、形式及相互關(guān)系不發(fā)生錯(cuò)誤。對(duì)于局部數(shù)據(jù)結(jié)構(gòu),應(yīng)該在單元測(cè)試中注意發(fā)現(xiàn)以下幾類錯(cuò)誤:(1)不正確的或不一致的類型說(shuō)明。(2)錯(cuò)誤的初始化或默認(rèn)值。(3)錯(cuò)誤的變量名,如拼寫錯(cuò)誤或書寫錯(cuò)誤。(4)下溢、上溢或者地址錯(cuò)誤。單元測(cè)試的主要任務(wù)(續(xù))局部數(shù)據(jù)結(jié)構(gòu)單元測(cè)試的主要任務(wù)(續(xù))路徑測(cè)試在單元測(cè)試中,最主要的測(cè)試是針對(duì)路徑的測(cè)試。測(cè)試用例必須能夠發(fā)現(xiàn)由于計(jì)算錯(cuò)誤、不正確的判定或不正常的控制流而產(chǎn)生的錯(cuò)誤。常見的錯(cuò)誤有:誤解的或不正確的算術(shù)優(yōu)先級(jí);混合模式的運(yùn)算;錯(cuò)誤的初始化;精確度不夠精確;表達(dá)式的不正確符號(hào)表示。針對(duì)判定和條件覆蓋,測(cè)試用例還要能夠發(fā)現(xiàn)如下錯(cuò)誤:不同數(shù)據(jù)類型的比較;不正確的邏輯操作或優(yōu)先級(jí);應(yīng)當(dāng)相等的地方由于精確度的錯(cuò)誤而不能相等;不正確的判定或不正確的變量;不正確的或不存在的循環(huán)終止;當(dāng)遇到分支循環(huán)時(shí)不能退出;不適當(dāng)?shù)匦薷难h(huán)變量。單元測(cè)試的主要任務(wù)(續(xù))路徑測(cè)試單元測(cè)試的主要任務(wù)(續(xù))邊界條件邊界測(cè)試是單元測(cè)試的最后一步,必須采用邊界值分析方法來(lái)設(shè)計(jì)測(cè)試用例,認(rèn)真仔細(xì)地測(cè)試為限制數(shù)據(jù)處理而設(shè)置的邊界處,看模塊是否能夠正常工作。一些可能與邊界有關(guān)的數(shù)據(jù)類型如數(shù)值、字符、位置、數(shù)量、尺寸等,還要注意這些邊界的首個(gè)、最后一個(gè)、最大值、最小值、最長(zhǎng)、最短、最高、最低等特征。在邊界條件測(cè)試中,應(yīng)設(shè)計(jì)測(cè)試用例檢查以下情況:(1)在n次循環(huán)的第0次、1次、n次是否有錯(cuò)誤。(2)運(yùn)算或判斷中取最大值、最小值時(shí)是否有錯(cuò)誤。(3)數(shù)據(jù)流、控制流中剛好等于、大于、小于確定的比較值是否出現(xiàn)錯(cuò)誤。單元測(cè)試的主要任務(wù)(續(xù))邊界條件單元測(cè)試的主要任務(wù)(續(xù))出錯(cuò)處理測(cè)試出錯(cuò)處理的重點(diǎn)是模塊在工作中發(fā)生了錯(cuò)誤,其中的出錯(cuò)處理設(shè)施是否有效。檢驗(yàn)程序中的出錯(cuò)處理可能面對(duì)的情況有:(1)對(duì)運(yùn)行發(fā)生的錯(cuò)誤描述難以理解。(2)所報(bào)告的錯(cuò)誤與實(shí)際遇到的錯(cuò)誤不一致。(3)出錯(cuò)后,在錯(cuò)誤處理之前就引起系統(tǒng)的干預(yù)。(4)例外條件的處理不正確。(5)提供的錯(cuò)誤信息不足,以至于無(wú)法找到錯(cuò)誤的原因。單元測(cè)試的主要任務(wù)(續(xù))出錯(cuò)處理2.3.2單元測(cè)試的執(zhí)行過程何時(shí)進(jìn)行單元測(cè)試?單元測(cè)試常常是和代碼編寫工作同時(shí)進(jìn)行的,在完成了程序編寫、復(fù)查和語(yǔ)法正確性驗(yàn)證后,就應(yīng)進(jìn)行單元測(cè)試用例設(shè)計(jì)。在單元測(cè)試時(shí),如果模塊不是獨(dú)立的程序,需要設(shè)置一些輔助測(cè)試模塊。輔助測(cè)試模塊有兩種:(1)驅(qū)動(dòng)模塊(Drive)用來(lái)模擬被測(cè)試模塊的上一級(jí)模塊,相當(dāng)于被測(cè)模塊的主程序。它接收數(shù)據(jù),將相關(guān)數(shù)據(jù)傳送給被測(cè)模塊,啟動(dòng)被測(cè)模塊,并打印出相應(yīng)的結(jié)果。(2)樁模塊(Stub)用來(lái)模擬被測(cè)模塊工作過程中所調(diào)用的模塊。它們一般只進(jìn)行很少的數(shù)據(jù)處理。驅(qū)動(dòng)模塊和樁模塊都是額外的開銷,雖然在單元測(cè)試中必須編寫,但并不需要作為最終的產(chǎn)品提供給用戶。2.3.2單元測(cè)試的執(zhí)行過程何時(shí)進(jìn)行單元測(cè)試?單元測(cè)試常2.4集成測(cè)試2.4.1非增量式測(cè)試2.4.2增量式測(cè)試2.4.3不同集成測(cè)試方法的比較2.4.4回歸測(cè)試Return2.4集成測(cè)試2.4.1非增量式測(cè)試Return2.4.4回歸測(cè)試什么是回歸測(cè)試?——在集成測(cè)試策略的環(huán)境中,回歸測(cè)試是對(duì)某些已經(jīng)進(jìn)行過的測(cè)試的某些子集再重新進(jìn)行一遍,以保證上述改變不會(huì)傳播無(wú)法預(yù)料的副作用或引發(fā)新的問題?!诟鼜V的環(huán)境里,回歸測(cè)試就是用來(lái)保證(由于測(cè)試或其他原因的)改動(dòng)不會(huì)帶來(lái)不可預(yù)料的行為或另外的錯(cuò)誤?;貧w測(cè)試可以通過重新執(zhí)行所有的測(cè)試用例的一個(gè)子集人工地進(jìn)行,也可以使用自動(dòng)化的捕獲回放工具來(lái)進(jìn)行?;貧w測(cè)試集包括三種不同類型的測(cè)試用例:(1)能夠測(cè)試軟件的所有功能的代表性測(cè)試用例(2)專門針對(duì)可能會(huì)被修改而影響軟件功能的附加測(cè)試(3)針對(duì)修改過的軟件成分的測(cè)試2.4.4回歸測(cè)試什么是回歸測(cè)試?2.5確認(rèn)測(cè)試1、確認(rèn)測(cè)試的準(zhǔn)則確認(rèn)測(cè)試也稱為合格性測(cè)試,是檢驗(yàn)所開發(fā)的軟件是否能按用戶提出的要求進(jìn)行。軟件確認(rèn)要通過一系列證明軟件功能和要求一致的黑盒測(cè)試來(lái)完成。經(jīng)過確認(rèn)測(cè)試,應(yīng)該為已開發(fā)的軟件給出結(jié)論性評(píng)價(jià):(1)經(jīng)過檢驗(yàn)的軟件的功能、性能及其他要求均已滿足需求規(guī)格說(shuō)明書的規(guī)定,則可被認(rèn)為是合格的軟件。(2)經(jīng)過檢驗(yàn)發(fā)現(xiàn)與需求說(shuō)明書有相當(dāng)?shù)钠x,得到一個(gè)各項(xiàng)缺陷清單。Return2.5確認(rèn)測(cè)試1、確認(rèn)測(cè)試的準(zhǔn)則Return確認(rèn)測(cè)試(續(xù))2、配置審查的內(nèi)容確認(rèn)測(cè)試過程的重要環(huán)節(jié)就是配置審查工作。其目的在于確保已開發(fā)軟件的所有文件資料均已編寫齊全,并得到分類編目,足以支持運(yùn)行以后的軟件維護(hù)工作。配置審查的文件資料包括用戶所需的以下資料:(1)用戶手冊(cè)(2)操作手冊(cè)(3)設(shè)計(jì)資料——如:設(shè)計(jì)說(shuō)明書、源程序以及測(cè)試資料(測(cè)試說(shuō)明書、測(cè)試報(bào)告)等確認(rèn)測(cè)試(續(xù))2、配置審查的內(nèi)容2.6系統(tǒng)測(cè)試為什么要進(jìn)行系統(tǒng)測(cè)試?
——由于軟件只是計(jì)算機(jī)系統(tǒng)中的一個(gè)組成部分,軟件開發(fā)完成之后,最終還要和系統(tǒng)中的硬件系統(tǒng)、某些支持軟件、數(shù)據(jù)信息等其他部分配套運(yùn)行。因此,在投入運(yùn)行前要完成系統(tǒng)測(cè)試,以保證各組成部分不僅能單獨(dú)的得到檢驗(yàn),而且在系統(tǒng)各部分協(xié)調(diào)工作的環(huán)境下也能正常工作。Return2.6系統(tǒng)測(cè)試為什么要進(jìn)行系統(tǒng)測(cè)試?Return強(qiáng)度測(cè)試從本質(zhì)上來(lái)說(shuō),強(qiáng)度測(cè)試(也稱壓力測(cè)試-StreeTesting)的目的是要檢測(cè)非正常的情形,測(cè)試是想要破壞程序。強(qiáng)度測(cè)試需要在反常規(guī)數(shù)據(jù)量、頻率或資源的方式下運(yùn)行系統(tǒng),以檢驗(yàn)系統(tǒng)能力的最高實(shí)際限度。舉例:—如果正常的中斷頻率為每秒5次,強(qiáng)度測(cè)試設(shè)計(jì)為每秒50次中斷?!演斎霐?shù)據(jù)的量提高一個(gè)數(shù)量級(jí)來(lái)測(cè)試輸入功能會(huì)如何響應(yīng)。—若某系統(tǒng)正常運(yùn)行可支持200個(gè)終端并行工作,強(qiáng)度測(cè)試則檢驗(yàn)1000個(gè)終端并行工作的情況?!\(yùn)行大量的消耗內(nèi)存或其他系統(tǒng)資源的測(cè)試實(shí)例。強(qiáng)度測(cè)試從本質(zhì)上來(lái)說(shuō),強(qiáng)度測(cè)試(也稱壓力測(cè)試-StreeT性能測(cè)試性能測(cè)試用來(lái)測(cè)試軟件在系統(tǒng)集成中的運(yùn)行性能,特別是針對(duì)實(shí)時(shí)系統(tǒng)和嵌入式系統(tǒng),僅提供符合功能需求但不符合性能需求的軟件是不能被接受的。性能測(cè)試可以在測(cè)試過程的任意階段進(jìn)行,但只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成在一起后,才能檢查一個(gè)系統(tǒng)的真正性能。性能測(cè)試常常和強(qiáng)度(壓力)測(cè)試結(jié)合起來(lái)進(jìn)行,而且常常需要硬件和軟件測(cè)試設(shè)備,這就是說(shuō),常常有必要在一種苛刻的環(huán)境中衡量資源的使用(比如,處理器周期)。性能測(cè)試性能測(cè)試用來(lái)測(cè)試軟件在系統(tǒng)集成中的運(yùn)行性能,特別是針兼容性測(cè)試軟件兼容性測(cè)試是檢測(cè)各軟件之間能否正確地交互和共享信息,其目標(biāo)是保證軟件按照用戶期望的方式進(jìn)行交互,使用其它軟件檢查軟件操作的過程。兼容性的測(cè)試通常需要解決以下問題:(1)新開發(fā)的軟件需要與哪種操作系統(tǒng)、Web瀏覽器和應(yīng)用軟件保持兼容,如果要測(cè)試的軟件是一個(gè)平臺(tái),那么要求應(yīng)用程序能在其上運(yùn)行。(2)應(yīng)該遵守哪種定義軟件之間交互的標(biāo)準(zhǔn)或者規(guī)范。(3)軟件使用何種數(shù)據(jù)與其它平臺(tái)、與新的軟件進(jìn)行交互和共享信息。兼容性測(cè)試軟件兼容性測(cè)試是檢測(cè)各軟件之間能否正確地交互和共享兼容性測(cè)試(續(xù))軟件兼容的實(shí)例:從Web頁(yè)面剪切文字,然后在文字處理程序中打開的文檔中粘貼。從電子表格程序保存賬目數(shù)據(jù),然后在另一個(gè)完全不同的電子表格程序中讀入這些數(shù)據(jù)。使圖形處理軟件在同一操作系統(tǒng)下的不同版本正常工作。使文字處理程序從聯(lián)系人管理程序中讀取姓名和地址,打印個(gè)性化的邀請(qǐng)函和信封。升級(jí)到新的數(shù)據(jù)庫(kù)程序,讀入現(xiàn)存所有數(shù)據(jù)庫(kù),并能夠像老版本一樣對(duì)其中的數(shù)據(jù)進(jìn)行處理。兼容性測(cè)試(續(xù))軟件兼容的實(shí)例:兼容性測(cè)試(續(xù))兼容性通常有4種——向前兼容與向后兼容、不同版本間的兼容、標(biāo)準(zhǔn)和規(guī)范、數(shù)據(jù)共享兼容(1)向前兼容和向后兼容
向前兼容是指可以使用軟件的未來(lái)版本,向后兼容是指可以使用軟件的以前版本。并非所有的軟件都要求向前兼容和向后兼容,這是軟件設(shè)計(jì)者需要決定的產(chǎn)品特性。使用文本文件可以對(duì)向前兼容和向后兼容作一個(gè)簡(jiǎn)單的演示:在Windows98上用Notepad創(chuàng)建的文本文件,它可以向后兼容MS-DOS1.0后的所有版本,它還可以向前兼容Windows2000甚至以后的版本。兼容性測(cè)試(續(xù))兼容性通常有4種——向前兼容與向后兼容、不同兼容性測(cè)試(續(xù))在Windows98上運(yùn)行的NotepadMYDATE.TXT在MS-DOS1.0上運(yùn)行的Edit.exe在Windows3.1上運(yùn)行的Notepad在Windows95上運(yùn)行的Notepad向后兼容在Windows2000上運(yùn)行的WordPad在未來(lái)操作系統(tǒng)上運(yùn)行的未知軟件向前兼容兼容性測(cè)試(續(xù))在Windows98MYDATE.TXT在Web網(wǎng)站測(cè)試Web網(wǎng)站的網(wǎng)頁(yè)是由文字、圖形、音頻、視頻和超級(jí)鏈接組成的文檔。對(duì)網(wǎng)站的測(cè)試包含許多方面,如配置測(cè)試、兼容測(cè)試、可用性測(cè)試、文檔測(cè)試等;黑盒測(cè)試、白盒測(cè)試、靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試都有可能采用。通常Web網(wǎng)站測(cè)試包含以下內(nèi)容:(1)文字測(cè)試(2)鏈接測(cè)試(3)圖像、圖像測(cè)試(4)表單測(cè)試(5)動(dòng)態(tài)內(nèi)容測(cè)試(6)數(shù)據(jù)庫(kù)測(cè)試(7)服務(wù)器性能及負(fù)載測(cè)試(8)安全性測(cè)試Web網(wǎng)站測(cè)試Web網(wǎng)站的網(wǎng)頁(yè)是由文字、圖形、音頻、視頻和超第2章軟件測(cè)試策略與過程2.1軟件測(cè)試的復(fù)雜性分析2.2軟件測(cè)試方法與策略2.3單元測(cè)試2.4集成測(cè)試2.5確認(rèn)測(cè)試2.6系統(tǒng)測(cè)試2.7驗(yàn)收測(cè)試2.8測(cè)試后的調(diào)試2.9面向?qū)ο蟮能浖y(cè)試第2章軟件測(cè)試策略與過程2.1軟件測(cè)試的復(fù)雜性分析2.1軟件測(cè)試的復(fù)雜性分析1、無(wú)法對(duì)程序進(jìn)行完全測(cè)試(1)測(cè)試所需要的輸入量太大(2)測(cè)試的輸出結(jié)果太多(3)軟件實(shí)現(xiàn)的途徑太多(4)軟件規(guī)格說(shuō)明沒有一個(gè)客觀標(biāo)準(zhǔn)2、測(cè)試無(wú)法顯示潛在的軟件缺陷和故障
——通過軟件測(cè)試只能報(bào)告軟件已被發(fā)現(xiàn)的缺陷和故障,無(wú)法報(bào)告隱藏的軟件故障。3、存在的故障現(xiàn)象與發(fā)現(xiàn)的故障數(shù)量成正比
——結(jié)論:應(yīng)當(dāng)對(duì)故障集中的程序段進(jìn)行重點(diǎn)測(cè)試Return2.1軟件測(cè)試的復(fù)雜性分析1、無(wú)法對(duì)程序進(jìn)行完全測(cè)試軟件測(cè)試的復(fù)雜性分析(續(xù))軟件缺陷故障數(shù)量測(cè)試工作量測(cè)試中測(cè)試后測(cè)試費(fèi)用遺漏缺陷數(shù)目?jī)?yōu)化測(cè)試量圖2-1測(cè)試工作量和軟件缺陷數(shù)量之間的關(guān)系軟件測(cè)試的復(fù)雜性分析(續(xù))軟件缺陷故障數(shù)量測(cè)試工作量測(cè)試中測(cè)2.2軟件測(cè)試方法與策略2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試2.2.2黑盒測(cè)試與白盒測(cè)試2.2.3軟件測(cè)試過程Return2.2軟件測(cè)試方法與策略2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試1、靜態(tài)測(cè)試靜態(tài)測(cè)試不實(shí)際運(yùn)行軟件,主要是對(duì)軟件的編程格式、結(jié)構(gòu)等方面進(jìn)行評(píng)估。靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,也可以借助軟件工具自動(dòng)進(jìn)行。靜態(tài)測(cè)試方法也可利用計(jì)算機(jī)作為對(duì)被測(cè)程序進(jìn)行特性分析的工具,但與人工測(cè)試方式有著根本區(qū)別。另一方面,因它并不真正運(yùn)行被測(cè)程序,只進(jìn)行特性分析,這又與動(dòng)態(tài)方法不同。所以,靜態(tài)方法常常稱為“分析”,靜態(tài)測(cè)試是對(duì)被測(cè)程序進(jìn)行特性分析方法的總稱。2.2.1靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試1、靜態(tài)測(cè)試靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))
代碼檢查代碼檢查包括代碼走查、界面檢查、代碼審查等,主要檢查代碼和設(shè)計(jì)的一致性,代碼對(duì)標(biāo)準(zhǔn)的遵循、可讀性,代碼的邏輯表達(dá)的正確性,代碼結(jié)構(gòu)的合理性等方面。代碼檢查的具體內(nèi)容:變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查等。代碼檢查的優(yōu)點(diǎn):在實(shí)際使用中,代碼檢查比動(dòng)態(tài)測(cè)試更有效率,能快速找到缺陷,發(fā)現(xiàn)30%~70%的邏輯設(shè)計(jì)和編碼缺陷;代碼檢查看到的是問題本身而非征兆。代碼檢查的缺點(diǎn):非常耗費(fèi)時(shí)間,而且代碼檢查需要知識(shí)和經(jīng)驗(yàn)的積累。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試階段的任務(wù):(1)檢查算法的邏輯正確性。(2)檢查模塊接口的正確性。(3)檢查輸入?yún)?shù)是否有合法性檢查。(4)檢查調(diào)用其他模塊的接口是否正確。(5)檢查是否設(shè)置了適當(dāng)?shù)某鲥e(cuò)處理。(6)檢查表達(dá)式、語(yǔ)句是否正確,是否含有二義性。(7)檢查常量或全局變量使用是否正確。(8)檢查標(biāo)識(shí)符的使用是否規(guī)范、一致。(9)檢查程序風(fēng)格的一致性、規(guī)范性。(10)檢查代碼是否可以優(yōu)化,算法效率是否最高。(11)檢查代碼注釋是否完整,是否正確反映了代碼的功能。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試階段的任務(wù):靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試可以完成以下工作:(1)發(fā)現(xiàn)下列程序的錯(cuò)誤:錯(cuò)用局部變量和全局變量;未定義的變量、不匹配的參數(shù);不適當(dāng)?shù)难h(huán)嵌套或分支嵌套、死循環(huán)、不允許的遞歸;調(diào)用不存在的子程序,遺漏標(biāo)號(hào)或代碼。(2)找出以下問題的根源:從未使用過的變量;不會(huì)執(zhí)行到的代碼、從未使用過的標(biāo)號(hào);潛在的死循環(huán)。(3)選擇測(cè)試用例。靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))靜態(tài)測(cè)試可以完成以下工作:靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))2、動(dòng)態(tài)測(cè)試動(dòng)態(tài)方法的主要特征是:——計(jì)算機(jī)必須真正運(yùn)行被測(cè)試的程序,通過輸入測(cè)試用例,對(duì)其運(yùn)行情況即輸入與輸出的對(duì)應(yīng)關(guān)系進(jìn)行分析,以達(dá)到檢測(cè)的目的。動(dòng)態(tài)測(cè)試包括:(1)功能確認(rèn)與接口測(cè)試(2)覆蓋率分析(3)性能分析(4)內(nèi)存分析靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(續(xù))2、動(dòng)態(tài)測(cè)試2.2.2黑盒測(cè)試和白盒測(cè)試若測(cè)試規(guī)劃是基于產(chǎn)品的功能,目的是檢查程序各個(gè)功能是否能夠?qū)崿F(xiàn),并檢查其中的功能錯(cuò)誤,則這種測(cè)試方法稱為黑盒測(cè)試(Black-boxTesting)方法。
——黑盒測(cè)試又稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試和基于規(guī)格說(shuō)明的測(cè)試。它是一種從用戶觀點(diǎn)出發(fā)的測(cè)試,一般被用來(lái)確認(rèn)軟件功能的正確性和可操作性。若測(cè)試規(guī)劃基于產(chǎn)品的內(nèi)部結(jié)構(gòu)進(jìn)行測(cè)試,檢查內(nèi)部操作是否按規(guī)定執(zhí)行,軟件各個(gè)部分功能是否得到充分使用,則這種測(cè)試方法稱為白盒測(cè)試(White-boxTesting)方法?!缀袦y(cè)試又稱為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序的測(cè)試,一般用來(lái)分析程序的內(nèi)部結(jié)構(gòu)。
2.2.2黑盒測(cè)試和白盒測(cè)試若測(cè)試規(guī)劃是基于產(chǎn)品的功能,黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試黑盒測(cè)試兩種測(cè)試方法從完全不同的角度出發(fā),反映了測(cè)試思路的兩方面情況,適用于不同的測(cè)試階段。黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試黑盒測(cè)試兩種測(cè)試方法從完全不黑盒測(cè)試和白盒測(cè)試(續(xù))1、黑盒測(cè)試黑盒測(cè)試的基本觀點(diǎn)是:任何程序都可以看作是從輸入定義域映射到輸出值域的函數(shù)過程,被測(cè)程序被認(rèn)為是一個(gè)打不開的黑盒子,黑盒中的內(nèi)容(實(shí)現(xiàn)過程)完全不知道,只明確要做到什么。黑盒測(cè)試主要根據(jù)規(guī)格說(shuō)明書設(shè)計(jì)測(cè)試用例,并不涉及程序內(nèi)部構(gòu)造和內(nèi)部特性,只依靠被測(cè)程序輸入和輸出之間的關(guān)系或程序的功能設(shè)計(jì)測(cè)試用例。黑盒測(cè)試的特點(diǎn):(1)黑盒測(cè)試與軟件的具體實(shí)現(xiàn)過程無(wú)關(guān),在軟件實(shí)現(xiàn)的過程發(fā)生變化時(shí),測(cè)試用例仍然可以使用。(2)黑盒測(cè)試用例的設(shè)計(jì)可以和軟件實(shí)現(xiàn)同時(shí)進(jìn)行,這樣能夠壓縮總的開發(fā)時(shí)間。黑盒測(cè)試和白盒測(cè)試(續(xù))1、黑盒測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))輸入輸出黑盒測(cè)試是在程序接口進(jìn)行測(cè)試,它只是檢查程序功能是否按照規(guī)格說(shuō)明書的規(guī)定正常使用。也被稱為用戶測(cè)試。黑盒測(cè)試和白盒測(cè)試(續(xù))輸入輸出黑盒測(cè)試是在程序接口進(jìn)行測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))黑盒測(cè)試主要是為了發(fā)現(xiàn)以下幾類錯(cuò)誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息訪問錯(cuò)誤?性能上是否能夠滿足要求?是否有初始化或終止性錯(cuò)誤?黑盒測(cè)試的難點(diǎn):在哪個(gè)層次上進(jìn)行測(cè)試?黑盒測(cè)試的具體技術(shù)方法:邊界值分析法等價(jià)類劃分法因果圖法決策表法黑盒測(cè)試和白盒測(cè)試(續(xù))黑盒測(cè)試主要是為了發(fā)現(xiàn)以下幾類錯(cuò)誤:黑盒測(cè)試和白盒測(cè)試(續(xù))2、白盒測(cè)試白盒測(cè)試將被測(cè)程序看作一個(gè)打開的盒子,測(cè)試者能夠看到被測(cè)源程序,可以分析被測(cè)程序的內(nèi)部結(jié)構(gòu),此時(shí)測(cè)試的焦點(diǎn)集中在根據(jù)其內(nèi)部結(jié)構(gòu)設(shè)計(jì)測(cè)試用例。白盒測(cè)試要求是對(duì)某些程序的結(jié)構(gòu)特性做到一定程度的覆蓋,或者說(shuō)這種測(cè)試是“基于覆蓋率的測(cè)試”。通常的程序結(jié)構(gòu)覆蓋有:語(yǔ)句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋路徑覆蓋黑盒測(cè)試和白盒測(cè)試(續(xù))2、白盒測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試需要完全了解程序結(jié)構(gòu)和處理過程,它按照程序內(nèi)部邏輯測(cè)試程序,檢驗(yàn)程序中每條通路是否按預(yù)定要求正確工作。也被稱為程序員測(cè)試。應(yīng)用程序黑盒測(cè)試和白盒測(cè)試(續(xù))白盒測(cè)試需要完全了解程序結(jié)構(gòu)和處理過黑盒測(cè)試和白盒測(cè)試(續(xù))?X=2
y=2xY=4X=2Y=4未知等式與已知等式黑盒白盒3、黑盒測(cè)試法和白盒測(cè)試法的比較黑盒測(cè)試和白盒測(cè)試(續(xù))?X=2y=2xY=4X=黑盒測(cè)試和白盒測(cè)試(續(xù))項(xiàng)目黑盒測(cè)試法白盒測(cè)試法規(guī)劃方面功能的測(cè)試結(jié)構(gòu)的測(cè)試優(yōu)點(diǎn)方面能確保從用戶的角度出發(fā)進(jìn)行測(cè)試能對(duì)程序內(nèi)部的特定部位進(jìn)行覆蓋測(cè)試缺點(diǎn)方面無(wú)法測(cè)試程序內(nèi)部特定部位;當(dāng)規(guī)格說(shuō)明有誤,則不能發(fā)現(xiàn)問題無(wú)法檢查程序的外部特性;無(wú)法對(duì)未實(shí)現(xiàn)規(guī)格說(shuō)明的程序內(nèi)部欠缺部分進(jìn)行測(cè)試應(yīng)用范圍邊界分析法等價(jià)類劃分法決策表測(cè)試語(yǔ)句覆蓋,判定覆蓋,條件覆蓋,判定/條件覆蓋,路徑覆蓋,循環(huán)覆蓋,模塊接口測(cè)試黑盒測(cè)試和白盒測(cè)試(續(xù))項(xiàng)目黑盒測(cè)試法白盒測(cè)試法規(guī)劃功能的測(cè)2.2.3軟件測(cè)試過程單元測(cè)試單元測(cè)試單元測(cè)試集成測(cè)試集成測(cè)試確認(rèn)測(cè)試系統(tǒng)測(cè)試*這三個(gè)測(cè)試可能交叉與前后互換被測(cè)模塊被測(cè)模塊被測(cè)模塊設(shè)計(jì)信息單元軟件需求其它元素用戶信息其它元素*…*驗(yàn)收測(cè)試*交付用戶…圖2-2軟件測(cè)試的過程流程2.2.3軟件測(cè)試過程單元單元單元集成集成確認(rèn)系統(tǒng)*軟件測(cè)試過程(續(xù))單元測(cè)試:針對(duì)每個(gè)單元的測(cè)試,
以確保每個(gè)模塊能正常工作為目標(biāo)。集成測(cè)試:對(duì)已測(cè)試過的模塊進(jìn)行組裝,進(jìn)行集成測(cè)試。目的在于檢驗(yàn)與軟件設(shè)計(jì)相關(guān)的程序結(jié)構(gòu)問題。確認(rèn)(有效性)測(cè)試:是檢驗(yàn)所開發(fā)的軟件能否滿足所有功能和性能需求的最后手段。系統(tǒng)測(cè)試:檢驗(yàn)軟件產(chǎn)品能否與系統(tǒng)的其他部分(比如,硬件、數(shù)據(jù)庫(kù)及操作人員)協(xié)調(diào)工作。驗(yàn)收(用戶)測(cè)試:檢驗(yàn)軟件產(chǎn)品質(zhì)量的最后一道工序。主要突出用戶的作用,同時(shí)軟件開發(fā)人員也應(yīng)有一定程度的參與。軟件測(cè)試過程(續(xù))單元測(cè)試:針對(duì)每個(gè)單元的測(cè)試,以確保每個(gè)一個(gè)實(shí)用軟件測(cè)試過程一種簡(jiǎn)單實(shí)用的軟件測(cè)試過程模型POCERM。測(cè)試過程中必需的基本測(cè)試活動(dòng)及其產(chǎn)生的結(jié)果:擬定軟件測(cè)試計(jì)劃(Plans)編制軟件測(cè)試大綱(Outlines)設(shè)計(jì)和生成測(cè)試用例(testCasegeneration)實(shí)施測(cè)試(Execution)生成軟件測(cè)試報(bào)告(softwaretestingReports)軟件問題報(bào)告SPR(SoftwareProblemReport)測(cè)試結(jié)果報(bào)告(testresultReports)一個(gè)實(shí)用軟件測(cè)試過程一種簡(jiǎn)單實(shí)用的軟件測(cè)試過程模型POCE2.3單元測(cè)試2.3.1單元測(cè)試的主要任務(wù)2.3.2單元測(cè)試的執(zhí)行過程Return2.3單元測(cè)試2.3.1單元測(cè)試的主要任務(wù)Retur2.3.1單元測(cè)試的主要任務(wù)單元測(cè)試針對(duì)每個(gè)程序的模塊,主要測(cè)試5個(gè)方面的問題:——模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、邊界條件、獨(dú)立的路徑和錯(cuò)誤處理。模塊模塊接口局部數(shù)據(jù)結(jié)構(gòu)路徑測(cè)試出錯(cuò)處理邊界條件2.3.1單元測(cè)試的主要任務(wù)單元測(cè)試針對(duì)每個(gè)程序的模塊,單元測(cè)試的主要任務(wù)(續(xù))模塊接口這是對(duì)模塊接口進(jìn)行的測(cè)試,檢查進(jìn)出程序單元的數(shù)據(jù)流是否正確。模塊接口測(cè)試必須在任何其它測(cè)試之前進(jìn)行。模塊接口測(cè)試至少需要如下的測(cè)試項(xiàng)目:(1)調(diào)用所測(cè)模塊時(shí)的輸入?yún)?shù)與模塊的形式參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;(2)所測(cè)模塊調(diào)用子模塊時(shí),它輸入給子模塊的參數(shù)與子模塊中的形式參數(shù)在個(gè)數(shù)、屬性、順序上是否匹配;(3)是否修改了只做輸入用的形式參數(shù);(4)調(diào)用標(biāo)準(zhǔn)函數(shù)的參數(shù)在個(gè)數(shù)、屬性、順序上是否正確;(5)全局變量的定義在各模塊中是否一致。單元測(cè)試的主要任務(wù)(續(xù))模塊接口單元測(cè)試的主要任務(wù)(續(xù))局部數(shù)據(jù)結(jié)構(gòu)在模塊工作過程中,必須測(cè)試模塊內(nèi)部的數(shù)據(jù)能否保持完整性,包括內(nèi)部數(shù)據(jù)的內(nèi)容、形式及相互關(guān)系不發(fā)生錯(cuò)誤。對(duì)于局部數(shù)據(jù)結(jié)構(gòu),應(yīng)該在單元測(cè)試中注意發(fā)現(xiàn)以下幾類錯(cuò)誤:(1)不正確的或不一致的類型說(shuō)明。(2)錯(cuò)誤的初始化或默認(rèn)值。(3)錯(cuò)誤的變量名,如拼寫錯(cuò)誤或書寫錯(cuò)誤。(4)下溢、上溢或者地址錯(cuò)誤。單元測(cè)試的主要任務(wù)(續(xù))局部數(shù)據(jù)結(jié)構(gòu)單元測(cè)試的主要任務(wù)(續(xù))路徑測(cè)試在單元測(cè)試中,最主要的測(cè)試是針對(duì)路徑的測(cè)試。測(cè)試用例必須能夠發(fā)現(xiàn)由于計(jì)算錯(cuò)誤、不正確的判定或不正常的控制流而產(chǎn)生的錯(cuò)誤。常見的錯(cuò)誤有:誤解的或不正確的算術(shù)優(yōu)先級(jí);混合模式的運(yùn)算;錯(cuò)誤的初始化;精確度不夠精確;表達(dá)式的不正確符號(hào)表示。針對(duì)判定和條件覆蓋,測(cè)試用例還要能夠發(fā)現(xiàn)如下錯(cuò)誤:不同數(shù)據(jù)類型的比較;不正確的邏輯操作或優(yōu)先級(jí);應(yīng)當(dāng)相等的地方由于精確度的錯(cuò)誤而不能相等;不正確的判定或不正確的變量;不正確的或不存在的循環(huán)終止;當(dāng)遇到分支循環(huán)時(shí)不能退出;不適當(dāng)?shù)匦薷难h(huán)變量。單元測(cè)試的主要任務(wù)(續(xù))路徑測(cè)試單元測(cè)試的主要任務(wù)(續(xù))邊界條件邊界測(cè)試是單元測(cè)試的最后一步,必須采用邊界值分析方法來(lái)設(shè)計(jì)測(cè)試用例,認(rèn)真仔細(xì)地測(cè)試為限制數(shù)據(jù)處理而設(shè)置的邊界處,看模塊是否能夠正常工作。一些可能與邊界有關(guān)的數(shù)據(jù)類型如數(shù)值、字符、位置、數(shù)量、尺寸等,還要注意這些邊界的首個(gè)、最后一個(gè)、最大值、最小值、最長(zhǎng)、最短、最高、最低等特征。在邊界條件測(cè)試中,應(yīng)設(shè)計(jì)測(cè)試用例檢查以下情況:(1)在n次循環(huán)的第0次、1次、n次是否有錯(cuò)誤。(2)運(yùn)算或判斷中取最大值、最小值時(shí)是否有錯(cuò)誤。(3)數(shù)據(jù)流、控制流中剛好等于、大于、小于確定的比較值是否出現(xiàn)錯(cuò)誤。單元測(cè)試的主要任務(wù)(續(xù))邊界條件單元測(cè)試的主要任務(wù)(續(xù))出錯(cuò)處理測(cè)試出錯(cuò)處理的重點(diǎn)是模塊在工作中發(fā)生了錯(cuò)誤,其中的出錯(cuò)處理設(shè)施是否有效。檢驗(yàn)程序中的出錯(cuò)處理可能面對(duì)的情況有:(1)對(duì)運(yùn)行發(fā)生的錯(cuò)誤描述難以理解。(2)所報(bào)告的錯(cuò)誤與實(shí)際遇到的錯(cuò)誤不一致。(3)出錯(cuò)后,在錯(cuò)誤處理之前就引起系統(tǒng)的干預(yù)。(4)例外條件的處理不正確。(5)提供的錯(cuò)誤信息不足,以至于無(wú)法找到錯(cuò)誤的原因。單元測(cè)試的主要任務(wù)(續(xù))出錯(cuò)處理2.3.2單元測(cè)試的執(zhí)行過程何時(shí)進(jìn)行單元測(cè)試?單元測(cè)試常常是和代碼編寫工作同時(shí)進(jìn)行的,在完成了程序編寫、復(fù)查和語(yǔ)法正確性驗(yàn)證后,就應(yīng)進(jìn)行單元測(cè)試用例設(shè)計(jì)。在單元測(cè)試時(shí),如果模塊不是獨(dú)立的程序,需要設(shè)置一些輔助測(cè)試模塊。輔助測(cè)試模塊有兩種:(1)驅(qū)動(dòng)模塊(Drive)用來(lái)模擬被測(cè)試模塊的上一級(jí)模塊,相當(dāng)于被測(cè)模塊的主程序。它接收數(shù)據(jù),將相關(guān)數(shù)據(jù)傳送給被測(cè)模塊,啟動(dòng)被測(cè)模塊,并打印出相應(yīng)的結(jié)果。(2)樁模塊(Stub)用來(lái)模擬被測(cè)模塊工作過程中所調(diào)用的模塊。它們一般只進(jìn)行很少的數(shù)據(jù)處理。驅(qū)動(dòng)模塊和樁模塊都是額外的開銷,雖然在單元測(cè)試中必須編寫,但并不需要作為最終的產(chǎn)品提供給用戶。2.3.2單元測(cè)試的執(zhí)行過程何時(shí)進(jìn)行單元測(cè)試?單元測(cè)試常2.4集成測(cè)試2.4.1非增量式測(cè)試2.4.2增量式測(cè)試2.4.3不同集成測(cè)試方法的比較2.4.4回歸測(cè)試Return2.4集成測(cè)試2.4.1非增量式測(cè)試Return2.4.4回歸測(cè)試什么是回歸測(cè)試?——在集成測(cè)試策略的環(huán)境中,回歸測(cè)試是對(duì)某些已經(jīng)進(jìn)行過的測(cè)試的某些子集再重新進(jìn)行一遍,以保證上述改變不會(huì)傳播無(wú)法預(yù)料的副作用或引發(fā)新的問題?!诟鼜V的環(huán)境里,回歸測(cè)試就是用來(lái)保證(由于測(cè)試或其他原因的)改動(dòng)不會(huì)帶來(lái)不可預(yù)料的行為或另外的錯(cuò)誤?;貧w測(cè)試可以通過重新執(zhí)行所有的測(cè)試用例的一個(gè)子集人工地進(jìn)行,也可以使用自動(dòng)化的捕獲回放工具來(lái)進(jìn)行。回歸測(cè)試集包括三種不同類型的測(cè)試用例:(1)能夠測(cè)試軟件的所有功能的代表性測(cè)試用例(2)專門針對(duì)可能會(huì)被修改而影響軟件功能的附加測(cè)試(3)針對(duì)修改過的軟件成分的測(cè)試2.4.4回歸測(cè)試什么是回歸測(cè)試?2.5確認(rèn)測(cè)試1、確認(rèn)測(cè)試的準(zhǔn)則確認(rèn)測(cè)試也稱為合格性測(cè)試,是檢驗(yàn)所開發(fā)的軟件是否能按用戶提出的要求進(jìn)行。軟件確認(rèn)要通過一系列證明軟件功能和要求一致的黑盒測(cè)試來(lái)完成。經(jīng)過確認(rèn)測(cè)試,應(yīng)該為已開發(fā)的軟件給出結(jié)論性評(píng)價(jià):(1)經(jīng)過檢驗(yàn)的軟件的功能、性能及其他要求均已滿足需求規(guī)格說(shuō)明書的規(guī)定,則可被認(rèn)為是合格的軟件。(2)經(jīng)過檢驗(yàn)發(fā)現(xiàn)與需求說(shuō)明書有相當(dāng)?shù)钠x,得到一個(gè)各項(xiàng)缺陷清單。Return2.5確認(rèn)測(cè)試1、確認(rèn)測(cè)試的準(zhǔn)則Return確認(rèn)測(cè)試(續(xù))2、配置審查的內(nèi)容確認(rèn)測(cè)試過程的重要環(huán)節(jié)就是配置審查工作。其目的在于確保已開發(fā)軟件的所有文件資料均已編寫齊全,并得到分類編目,足以支持運(yùn)行以后的軟件維護(hù)工作。配置審查的文件資料包括用戶所需的以下資料:(1)用戶手冊(cè)(2)操作手冊(cè)(3)設(shè)計(jì)資料——如:設(shè)計(jì)說(shuō)明書、源程序以及測(cè)試資料(測(cè)試說(shuō)明書、測(cè)試報(bào)告)等確認(rèn)測(cè)試(續(xù))2、配置審查的內(nèi)容2.6系統(tǒng)測(cè)試為什么要進(jìn)行系統(tǒng)測(cè)試?
——由于軟件只是計(jì)算機(jī)系統(tǒng)中的一個(gè)組成部分,軟件開發(fā)完成之后,最終還要和系統(tǒng)中的硬件系統(tǒng)、某些支持軟件、數(shù)據(jù)信息等其他部分配套運(yùn)行。因此,在投入運(yùn)行前要完成系統(tǒng)測(cè)試,以保證各組成部分不僅能單獨(dú)的得到檢驗(yàn),而且在系統(tǒng)各部分協(xié)調(diào)工作的環(huán)境下也能正常工作。Return2.6系統(tǒng)測(cè)試為什么要進(jìn)行系統(tǒng)測(cè)試?Return強(qiáng)度測(cè)試從本質(zhì)上來(lái)說(shuō),強(qiáng)度測(cè)試(也稱壓力測(cè)試-Stre
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025軟件評(píng)測(cè)基礎(chǔ)知識(shí)總結(jié)試題及答案
- 辦公軟件常見考試題型解析試題及答案
- 初級(jí)社會(huì)工作者考試的支持系統(tǒng)建立及試題及答案
- 問題導(dǎo)向中級(jí)社會(huì)工作者考試試題及答案
- 初級(jí)社會(huì)工作者對(duì)個(gè)案分析的理解試題及答案
- 2025系統(tǒng)分析師解題方法試題及答案
- 護(hù)理學(xué)血糖測(cè)試題及答案
- 文言文測(cè)試題及答案高中
- 加權(quán)平均法試題及答案
- 山東省爆破試題及答案
- 潔凈室操作規(guī)程及管理制度
- 2024年高考真題-地理(河北卷) 含答案
- 中國(guó)高血壓防治指南(2024年修訂版)解讀課件
- 平房區(qū)全面推進(jìn)信訪工作法治化測(cè)試練習(xí)試卷附答案
- 湖北省黃岡市(2024年-2025年小學(xué)三年級(jí)語(yǔ)文)人教版隨堂測(cè)試(下學(xué)期)試卷(含答案)
- 土木工程施工設(shè)計(jì)報(bào)告
- 四川省瀘州市2024年中考物理試題(含答案)
- 2024屆浙江省臺(tái)州市天臺(tái)縣英語(yǔ)八年級(jí)第二學(xué)期期末達(dá)標(biāo)檢測(cè)模擬試題含答案
- 銀行保安服務(wù) 投標(biāo)方案(技術(shù)標(biāo))
- 工學(xué)云周報(bào)范文200字
- 國(guó)開(河北)2024年《法律工作者職業(yè)道德》形考任務(wù)1-4答案
評(píng)論
0/150
提交評(píng)論