版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
測(cè)試總體流程圖F驗(yàn)收測(cè)試B單元測(cè)試C整合測(cè)試D系統(tǒng)測(cè)試E性能測(cè)試A測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)立項(xiàng)結(jié)束測(cè)試總體流程圖F驗(yàn)收測(cè)試B單元測(cè)試C整合測(cè)試D系統(tǒng)測(cè)試E性能測(cè)試分類.黑盒測(cè)試.白盒測(cè)試.灰盒測(cè)試測(cè)試分類.黑盒測(cè)試軟件中的難題1.開發(fā)的不是客戶需要的2.計(jì)劃趕不上變化,進(jìn)度無(wú)法按期完成3.挖坑還是開渠?永遠(yuǎn)的資源不足4.不能正確實(shí)現(xiàn)功能5.如何維護(hù)大量的已有軟件?軟件中的難題1.開發(fā)的不是客戶需要的軟件與硬件的區(qū)別軟件硬件易變確定,需求和產(chǎn)物非組件化組件化,由構(gòu)建組成隨時(shí)間而消退隨時(shí)間而磨損成本在研發(fā)上,copy過程幾乎沒有成本生產(chǎn)工程成本高軟件與硬件的區(qū)別軟件硬件易變確定,需求和產(chǎn)物非組件化組件化,軟件工程1.軟件工程是為創(chuàng)造高質(zhì)量軟件提供的一個(gè)框架2.將系統(tǒng)化,規(guī)范化,可度量的方法應(yīng)用于軟件的開發(fā),運(yùn)行和維護(hù),即將工程化應(yīng)用于軟件中3.包括過程,方法和工具三個(gè)層面4.過程,方法和人對(duì)質(zhì)量的影響軟件工程1.軟件工程是為創(chuàng)造高質(zhì)量軟件提供的一個(gè)框架過程1.過程是項(xiàng)目管理的基礎(chǔ)2.定義關(guān)鍵過程區(qū)域框架3.CMM中的KPA過程1.過程是項(xiàng)目管理的基礎(chǔ)方法1.技術(shù)上需要如何做?2.方法涵蓋一系列的任務(wù):需求,設(shè)計(jì),編碼,測(cè)試,維護(hù)方法1.技術(shù)上需要如何做?工具1.為工程,方法提供自動(dòng),半自動(dòng)化的支持2.組建起來被另外一個(gè)工具使用3.組成軟件工程環(huán)境工具1.為工程,方法提供自動(dòng),半自動(dòng)化的支持過程篇—關(guān)于CMMCMM(CapabilityMaturityModel)能力成熟度模型用于軟件開發(fā)過程和開發(fā)能力的改進(jìn)與評(píng)估的模型對(duì)軟件工程的全過程進(jìn)行考察和評(píng)估不告訴你怎么做,但告訴你不用成熟度應(yīng)該關(guān)注的關(guān)鍵過程過程篇—關(guān)于CMMCMM(CapabilityMaturi何為CMM/CMMICMMI,目標(biāo):第一個(gè)是質(zhì)量,第二個(gè)是時(shí)間表,第三就是要用最低的成本。
與原有的能力成熟度模型CMM相比,CMMI涉及面更廣,專業(yè)領(lǐng)域覆蓋軟件工程、系統(tǒng)工程、集成產(chǎn)品開發(fā)和系統(tǒng)采購(gòu)CMMI即CMM集成,是系統(tǒng)工程和軟件工程的集成成熟度模型,CMMI更適合于信息系統(tǒng)集成企業(yè)。CMMI是在CMM基礎(chǔ)上發(fā)展起來的,它繼承并發(fā)揚(yáng)了CMM的優(yōu)良特性,借鑒了其他模型的優(yōu)點(diǎn),融入了新的理論和實(shí)際研究成果。它不僅能夠應(yīng)用在軟件工程領(lǐng)域,而且可以用于系統(tǒng)工程及其他工程領(lǐng)域。
何為CMM/CMMICMMI,目標(biāo):第一個(gè)是質(zhì)量,第二個(gè)是時(shí)CMMI階段模型5.優(yōu)化級(jí):持續(xù)過程改進(jìn),組織性快速重新配置4.量化管理級(jí):過程和產(chǎn)品被量化度量并控制,組織性能提升3.已定義級(jí):組織內(nèi)項(xiàng)目改進(jìn)和執(zhí)行2.已管理級(jí):能重復(fù)以前的成功,有紀(jì)律性1.初始級(jí):過程能力不可預(yù)測(cè),無(wú)秩序
CMMI階段模型5.優(yōu)化級(jí):持續(xù)過程改進(jìn),組織性快速重新配Level1在級(jí)別1:過程是隨機(jī),混亂和無(wú)序的。這種通常沒有一個(gè)穩(wěn)定的環(huán)境,它的成功依賴于組織中個(gè)人的能力和英雄主意,而不是依賴使用經(jīng)過驗(yàn)證的過程。盡管這種混亂,無(wú)序的環(huán)境,對(duì)成熟度1的組織也經(jīng)常能制造出能工作的產(chǎn)品和服務(wù),但是,他們的項(xiàng)目經(jīng)常是超成本和進(jìn)度的。它們有過度承諾的趨勢(shì),在危機(jī)時(shí)放棄過程,不能重復(fù)他們過去的成功。Level1在級(jí)別1:Level21.組織中的項(xiàng)目確保需求得到管理,過程已經(jīng)計(jì)劃,執(zhí)行,度量和控制。2.即使在時(shí)間壓力下,依然能夠保留現(xiàn)有的實(shí)踐。3.管理層在某些已定義點(diǎn)上對(duì)工作產(chǎn)品的狀態(tài)和提交的服務(wù)具有可視性。4.在干系人(風(fēng)險(xiǎn)承擔(dān)者)之間建立了承諾,在必要的時(shí)候進(jìn)行修正。Level21.組織中的項(xiàng)目確保需求得到管理,過程已經(jīng)計(jì)劃Level3工程得到很好地表現(xiàn)和理解,被描述成標(biāo)準(zhǔn),規(guī)程,關(guān)鍵和方法。作為3級(jí)基礎(chǔ)的組織標(biāo)準(zhǔn)過程集已經(jīng)簡(jiǎn)歷和不斷改進(jìn)。2,3級(jí)的區(qū)別在于標(biāo)準(zhǔn),過程和規(guī)程的范圍3級(jí)比2級(jí)的描述更具體和更嚴(yán)格Level3工程得到很好地表現(xiàn)和理解,被描述成標(biāo)準(zhǔn),規(guī)程,Level4使用統(tǒng)計(jì)和量化技術(shù)進(jìn)行控制建立了質(zhì)量和過程性能的量化目標(biāo),作為過程管理的準(zhǔn)則收集了過程性能的詳細(xì)度量,進(jìn)行統(tǒng)計(jì)分析質(zhì)量和過程性能度量數(shù)據(jù)組成組織的度量庫(kù),來支持將來的基于事實(shí)的決策3,4級(jí)的區(qū)別在于過程性能的可預(yù)測(cè)性。Level4使用統(tǒng)計(jì)和量化技術(shù)進(jìn)行控制Level5基于對(duì)過程中的固有偏差的一般原因的定量理解,持續(xù)的進(jìn)行過程改進(jìn)通過漸進(jìn)的和革新的技術(shù)改進(jìn),集中在持續(xù)地過程性能改進(jìn)上指出過程偏差的一般原因和可測(cè)地改進(jìn)組織過程的過程改進(jìn)得到識(shí)別,評(píng)估和實(shí)施敏捷和創(chuàng)新的過程優(yōu)化依賴于授權(quán)員工的參與,他們與業(yè)務(wù)價(jià)值和組織目標(biāo)保持一致Level5基于對(duì)過程中的固有偏差的一般原因的定量理解,持Level2CMM2:可重復(fù)性KPA:軟件配置管理軟件質(zhì)量保證子合同管理Level2CMM2:可重復(fù)性Level2軟件項(xiàng)目跟蹤和監(jiān)控軟件項(xiàng)目計(jì)劃需求管理Level2軟件項(xiàng)目跟蹤和監(jiān)控配置管理1.定義并文檔化配置項(xiàng)的功能和物理屬性2.控制這些屬性的變更3.記錄和報(bào)告變更處理結(jié)果和實(shí)施狀態(tài)4.遵從制定的需求進(jìn)行驗(yàn)證配置管理1.定義并文檔化配置項(xiàng)的功能和物理屬性同行評(píng)審為什么進(jìn)行評(píng)審?.促進(jìn)文檔化,提升可讀性,易理解性等.查找錯(cuò)誤,收集建議.擴(kuò)散知識(shí),產(chǎn)生后備力量評(píng)審什么?.項(xiàng)目中的一系列計(jì)劃.項(xiàng)目各階段的輸出:文檔,代碼等誰(shuí)來評(píng)審?項(xiàng)目組成員,PPQA,上級(jí)領(lǐng)導(dǎo),客戶等同行評(píng)審為什么進(jìn)行評(píng)審?同行評(píng)審.評(píng)審的輸入--待評(píng)審的文檔,代碼--《XXX評(píng)審檢查表》.評(píng)審的輸出--《評(píng)審報(bào)告》--《評(píng)審過程檢查表》同行評(píng)審.評(píng)審的輸入正確看待文檔.文檔是所有事情能夠繼承的保證.如果認(rèn)為不必要,多一分也是多,如果認(rèn)為必要,多少都不夠.文檔是一個(gè)人水平高低的體現(xiàn).需要提高每個(gè)人的寫作能力,練好內(nèi)功正確看待文檔.文檔是所有事情能夠繼承的保證軟件開發(fā)模型—瀑布型1.需求2.設(shè)計(jì)3.代碼4.測(cè)試5.運(yùn)行/維護(hù)軟件開發(fā)模型—瀑布型1.需求軟件開發(fā)模型—原型1.用戶需求不明確是采用2.快速設(shè)計(jì),快速開發(fā)3.迭代的過程4.與用戶一起明確需求5.最終會(huì)被拋棄軟件開發(fā)模型—原型1.用戶需求不明確是采用軟件開發(fā)模型—演化模型.線性迭代.每個(gè)線性過程產(chǎn)生一個(gè)版本.分階段提供給用戶軟件開發(fā)模型—演化模型.線性迭代敏捷式開發(fā)1.是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。2.在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測(cè)試,具備集成和可運(yùn)行的特征。敏捷式開發(fā)1.是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。決定軟件質(zhì)量的因素1.過程2.方法3.工具4.人決定軟件質(zhì)量的因素1.過程測(cè)試目的在產(chǎn)品投入使用前,通過綜合的智力活動(dòng),發(fā)現(xiàn)程序中的顯性和隱形的錯(cuò)誤和缺陷。控制發(fā)布產(chǎn)品的質(zhì)量,提升客戶滿意度測(cè)試目的在產(chǎn)品投入使用前,通過綜合的智力活動(dòng)測(cè)試目的測(cè)試的目的是發(fā)現(xiàn)和確認(rèn)系統(tǒng)有問題,而不是驗(yàn)證系統(tǒng)沒有問題確認(rèn)軟件生命周期中的各個(gè)階段的產(chǎn)品是否正確確認(rèn)最終交付的產(chǎn)品是否符合用戶需求使用測(cè)試數(shù)據(jù)檢驗(yàn)系統(tǒng)運(yùn)行的行為是否是按照預(yù)期目標(biāo)執(zhí)行的測(cè)試目的測(cè)試的目的是發(fā)現(xiàn)和確認(rèn)系統(tǒng)有問題,而不是驗(yàn)證系統(tǒng)沒有測(cè)試原則所有測(cè)試都應(yīng)該追溯到用戶需求應(yīng)該在測(cè)試工作真正開始的較長(zhǎng)時(shí)間內(nèi)就進(jìn)行測(cè)試測(cè)試中發(fā)現(xiàn)的80%的問題可能集中在模塊的20%中測(cè)試原則所有測(cè)試都應(yīng)該追溯到用戶需求測(cè)試原則測(cè)試順序應(yīng)從簡(jiǎn)單到復(fù)雜,從模塊到集成,從白到黑窮舉測(cè)試是不可能的Bug不可避免測(cè)試原則測(cè)試順序應(yīng)從簡(jiǎn)單到復(fù)雜,從模塊到集成,從白到黑常用的測(cè)試技術(shù)1.在產(chǎn)品成型前,對(duì)規(guī)約,設(shè)計(jì),代碼進(jìn)行Review,確認(rèn)與需求是否一致---靜態(tài)測(cè)試2.了解產(chǎn)品內(nèi)部結(jié)構(gòu),確認(rèn)內(nèi)部邏輯是否符合需求,且內(nèi)部構(gòu)件被充分利用---白盒測(cè)試3.如果了解特定的功能,在各種功能中尋找錯(cuò)誤—黑盒測(cè)試常用的測(cè)試技術(shù)1.在產(chǎn)品成型前,對(duì)規(guī)約,設(shè)計(jì),代碼進(jìn)行Rev靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試1.靜態(tài)測(cè)試:指不用執(zhí)行程序的測(cè)試。主要采用Review,代碼走查,同級(jí)評(píng)審,checklist檢查單的方法對(duì)軟件產(chǎn)品進(jìn)行測(cè)試。2.動(dòng)態(tài)測(cè)試:通過執(zhí)行程序,找出產(chǎn)品問題的測(cè)試過程。黑盒,白盒都是動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試1.靜態(tài)測(cè)試:指不用執(zhí)行程序的測(cè)試。主要采白盒測(cè)試白盒測(cè)試發(fā)現(xiàn)的錯(cuò)誤類型:1.語(yǔ)法錯(cuò)誤2.編譯錯(cuò)誤3.邏輯錯(cuò)誤4.判定條件問題5.編程規(guī)范6.MemoryLeak7.PerformanceProblem白盒測(cè)試白盒測(cè)試發(fā)現(xiàn)的錯(cuò)誤類型:白盒測(cè)試邏輯驅(qū)動(dòng)測(cè)試基本路徑測(cè)試白盒測(cè)試邏輯驅(qū)動(dòng)測(cè)試邏輯驅(qū)動(dòng)測(cè)試邏輯驅(qū)動(dòng)測(cè)試:主要是測(cè)試覆蓋率,以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試。包括以下6種類型:1.語(yǔ)句覆蓋2.判斷覆蓋3.條件覆蓋4.判定-條件覆蓋5.條件組合覆蓋6.路徑覆蓋邏輯驅(qū)動(dòng)測(cè)試邏輯驅(qū)動(dòng)測(cè)試:邏輯驅(qū)動(dòng)測(cè)試主要是測(cè)試覆蓋率,以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試。包括以下6種類型:1.語(yǔ)句覆蓋:語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行測(cè)試程序,使得每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次2.判斷覆蓋:也叫分支覆蓋設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行測(cè)試程序,使得每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次3.條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次4.判定-條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次5.條件組合覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得程序中每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次6.路徑覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,要覆蓋程序中所有可能的路徑邏輯驅(qū)動(dòng)測(cè)試主要是測(cè)試覆蓋率,以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試ForExampleVoidDoWork(intx,inty,intz){ intk=0,j=0; if((x>3)&&(z<10)) { k=x*y-1;//語(yǔ)句塊1 j=sqrt(k);} if((x==4)||(y>5)) { j=x*y+10;//語(yǔ)句塊2 } j=j%3;//語(yǔ)句塊3}ForExampleVoidDoWork(intx,流程圖如下:流程圖如下:語(yǔ)句覆蓋為了說明簡(jiǎn)略,分別對(duì)各個(gè)判斷的取真,取假分支編號(hào)為b,c,d,e為了測(cè)試語(yǔ)句覆蓋率只要設(shè)計(jì)一個(gè)測(cè)試用例就可以把三個(gè)執(zhí)行語(yǔ)句塊中的語(yǔ)句覆蓋。測(cè)試用例輸入為:{x=4,y=5,z=5}程序執(zhí)行的路徑是:abd該測(cè)試用例雖然覆蓋了可執(zhí)行語(yǔ)句,但是并不能檢查判斷邏輯是否有問題,例如在第一個(gè)判斷中把&&錯(cuò)誤的寫成||,上面的測(cè)試用例仍然可以覆蓋所有的執(zhí)行語(yǔ)句??梢哉f語(yǔ)句覆蓋率是最弱的邏輯覆蓋準(zhǔn)則語(yǔ)句覆蓋為了說明簡(jiǎn)略,分別對(duì)各個(gè)判斷的取真,取假分支編判定覆蓋如果設(shè)計(jì)兩個(gè)測(cè)試用例則可以滿足分支覆蓋的要求:測(cè)試用例的輸入為:{x=4,y=5,z=5}{x=2,y=5,z=5}雖然可以滿足分支覆蓋的要求,但是也不能對(duì)判斷條件做完整的檢查判定覆蓋如果設(shè)計(jì)兩個(gè)測(cè)試用例則可以滿足分支覆蓋的要求:條件覆蓋對(duì)于這個(gè)簡(jiǎn)單例子的所有條件取值加以標(biāo)記。如:對(duì)于第一個(gè)判斷:條件x>3,取真值為T1,取假值為-T1條件z<10,取真值為T2,取假值為-T2對(duì)于第二個(gè)判斷:條件x=4,取真值為T3,取假值為-T3條件y>5,取真值為T4,取假值為-T4條件覆蓋對(duì)于這個(gè)簡(jiǎn)單例子的所有條件取值加以標(biāo)記。如:設(shè)計(jì)測(cè)試用例如下:測(cè)試用例通過路徑條件取值覆蓋方式x=4,y=6,z=5abdT1,T2,T3,T4bdx=2,y=5,z=5ace-T1,T2,-T3,-T4cex=4,y=5,z=15acdT1,-T2,T3,-T4cd上面的測(cè)試用例不但覆蓋了所有分支的真假兩個(gè)分支,而且覆蓋了判斷中的所有條件的可能值設(shè)計(jì)測(cè)試用例如下:測(cè)試用例通過路徑條件取值覆蓋方式x=4,y測(cè)試用例如下:但是如果設(shè)計(jì)了下面的測(cè)試用例,則雖然滿足了條件覆蓋,但是只覆蓋了第一個(gè)條件的取假分支和第二個(gè)條件的取真分支,不滿足分支覆蓋的要求測(cè)試用例通過路徑條件取值覆蓋分支x=2,y=6,z=5acd-T1,T2,-T3,T4cdx=4,y=5,z=5acdT1,-T2,T3,-T4cd測(cè)試用例如下:但是如果設(shè)計(jì)了下面的測(cè)試用例,則雖然滿足了條件分支條件覆蓋根據(jù)定義只需要設(shè)計(jì)以下兩個(gè)測(cè)試用例便可以覆蓋8個(gè)條件值以及4個(gè)判斷分支測(cè)試用例通過路徑條件取值覆蓋分支x=4,y=6,z=5abdT1,T2,T3,T4bdx=2,y=5,z=11ace-T1,-T2,-T3,-T4ce分支條件覆蓋測(cè)試用例通過路徑條件取值覆蓋分支x=4,y=6,分支條件覆蓋條件分支覆蓋從表面上看,它測(cè)試了所有條件的取值,但是實(shí)際上某些條件掩蓋了另外的一些條件,例如對(duì)于條件表達(dá)式(x>3)&&(z<10)來說,必須兩個(gè)條件都滿足才能確定表達(dá)式為真。如果(x<3)為假,則一般的編譯器不再判斷是否(z<10了,對(duì)于第二個(gè)表達(dá)式(x==4)||(y>5)來說,若x==4測(cè)試結(jié)果為真,就認(rèn)為表達(dá)式的結(jié)果為真,這是不在檢查(y>5)的條件了。因此,采用分支條件覆蓋,邏輯表達(dá)式的錯(cuò)誤不一定能夠查出來了。分支條件覆蓋條件組合覆蓋設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得程序中每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。現(xiàn)在對(duì)例子中的各個(gè)判斷的條件取值組合加以標(biāo)記如下:x>3,z<10記做T1,T2,第一個(gè)判斷的取真分支x>3,z>=10記做T1,-T2,第一個(gè)判斷的取假分支x<=3,z<0記做-T1,T2,第一個(gè)判斷的取假分支x<=3,z>=10記做-T1,-T2,第一個(gè)判斷的取假分支x=4,y>5記做T3,T4,第一個(gè)判斷的取真分支x=4,y<=5記做T3,-T4,第一個(gè)判斷的取真分支x!=4,y>5記做-T3,T4,第一個(gè)判斷的取真分支x!=4,y<=5記做-T3,-T4,第一個(gè)判斷的取假分支條件組合覆蓋條件組合覆蓋測(cè)試用例通過路徑條件取值覆蓋組合號(hào)x=4,y=6,z=5abdT1,T2,T3,T41和5x=4,y=5,z=15acdT1,-T2,T3,-T42和6x=2,y=6,z=5acd-T1,T2,-T3,T43和7x=2,y=5,z=15ace-T1,-T2,-T3,-T44和8上面的測(cè)試用例覆蓋了所有條件的可能取值的組合,覆蓋了所有判斷的可取分支,但是卻丟失了一條路徑abe。條件組合覆蓋測(cè)試用例通過路徑條件取值覆蓋組合號(hào)x=4,y=6基本路徑測(cè)試1.根據(jù)源代碼導(dǎo)出流程圖2.分析程序邏輯復(fù)雜度3.導(dǎo)出測(cè)試Case基本路徑測(cè)試1.根據(jù)源代碼導(dǎo)出流程圖基本路徑測(cè)試舉例-PDL分析計(jì)算不超過100個(gè)數(shù)字的平均值,使用PDL語(yǔ)言INTEFACERETURNSaverage,total.input,total.valid;INTEFACERETURNSvalue,minimum,maxium,sum;TYPEvalue(1:100)ISSCALARARRAY;TYPEiISINTEGER;i=1;Total.input=total.valid=0;1Sum=0DOWHILEvalue(i)<>-9992andtotal.input<103;
incrementtotal.inputby1;4 IFvalue(i)>=minimum5andvalue(i)<=maximum6
THENincrementtotal.validby1; sum=sum+value(i);7 ELSEskip
ENDIF IncrementIby1;8
ENDDO9
IFtotal.valid>0;10
THENaverage=sum/total.valid;11
ELSEaverage=-999;12
ENDIF13 ENDaverage基本路徑測(cè)試舉例-PDL分析計(jì)算不超過100個(gè)數(shù)字的平均值,數(shù)據(jù)流分析
數(shù)據(jù)流分析
環(huán)形復(fù)雜度V(G)=判定節(jié)點(diǎn)+1=5+1基本測(cè)試路徑:1.1-2-10-11-131-2-10-12-131-2-3-10-11-131-2-3-4-5-8-9-2…1-2-3-4-5-6-8-9-2…1-2-3-4-5-6-7-8-9-2…環(huán)形復(fù)雜度V(G)=判定節(jié)點(diǎn)+1=5+1基本路徑測(cè)試用例測(cè)試路徑輸入預(yù)計(jì)輸出條件1Value(k)=有效輸入Value(i)=-999K<I,2<=i=100基于K的正確平均值和總數(shù)路徑1無(wú)法單獨(dú)測(cè)試,要作為4—6的測(cè)試部分2Value(i)=-999求平均值=-999其它按初值匯總3處理>100個(gè)的值前100個(gè)被正確處理4Value(i)=有效輸入Value(k)<minimumi<100,k<j基于k的正確平均值和總數(shù)5Value(i)=有效輸入Value(k)>maxmumi<100,k>=j基于k的正確平均值和總數(shù)6Value(i)=有效輸入i<100基于k的正確平均值和總數(shù)基本路徑測(cè)試用例測(cè)試路徑輸入預(yù)計(jì)輸出條件1Value(k)=
從基本路徑測(cè)試想到的窮舉測(cè)試是不可能的盡量選擇有代表性的主要路徑,更易發(fā)現(xiàn)問題,且對(duì)質(zhì)量的貢獻(xiàn)很大環(huán)形復(fù)雜度的方法也可以應(yīng)用到黑盒測(cè)試中從基本路徑測(cè)試想到的窮舉測(cè)試是不可能的單元測(cè)試單元測(cè)試是對(duì)最小軟件開發(fā)單元的測(cè)試單元測(cè)試重點(diǎn)測(cè)試程序的內(nèi)部結(jié)構(gòu)主要使用白盒測(cè)試方法由開發(fā)人員負(fù)責(zé)單元測(cè)試單元測(cè)試是對(duì)最小軟件開發(fā)單元的測(cè)試單元測(cè)試中的常見錯(cuò)誤不正確的算法混合情況下的條件判斷錯(cuò)誤不正確的初始化計(jì)算結(jié)果的精度不精確語(yǔ)法錯(cuò)誤不正確的邏輯優(yōu)先級(jí)需求實(shí)現(xiàn)上的偏差單元測(cè)試中的常見錯(cuò)誤不正確的算法單元測(cè)試中的常見錯(cuò)誤不正確的循環(huán)處理缺少對(duì)錯(cuò)誤輸入的有效處理對(duì)錯(cuò)誤輸入的處理提示不準(zhǔn)確接口協(xié)議錯(cuò)誤接口處理邏輯錯(cuò)誤內(nèi)存溢出語(yǔ)句處理效率低單元測(cè)試中的常見錯(cuò)誤不正確的循環(huán)處理單元測(cè)試的方法確定測(cè)試的基本路徑進(jìn)行邊界測(cè)試進(jìn)行接口測(cè)試通過打樁的方法,確認(rèn)關(guān)鍵路徑中的功能通過DEBUG工具,內(nèi)存檢查工具,代碼覆蓋率工具單元測(cè)試的方法確定測(cè)試的基本路徑探針設(shè)置探針值在程序中增加DEBUG信息,跟蹤探針結(jié)果主要用于程序調(diào)試探針設(shè)置探針值單元測(cè)試中實(shí)踐問題問題:1.開發(fā)工程師習(xí)慣認(rèn)為代碼完成后,就可以提交了,而省略了單元測(cè)試過程2.開發(fā)時(shí)間緊,沒有時(shí)間做3.沒有規(guī)范化的要求,質(zhì)量不一單元測(cè)試中實(shí)踐問題問題:上述問題對(duì)開發(fā)的影響1.在正式的測(cè)試環(huán)節(jié),延長(zhǎng)測(cè)試時(shí)間2.降低測(cè)試效率3.增加了問題逃逸幾率上述問題對(duì)開發(fā)的影響1.在正式的測(cè)試環(huán)節(jié),延長(zhǎng)測(cè)試時(shí)間對(duì)大家的要求和建議1.開發(fā)中增加單元測(cè)試規(guī)范2.制定測(cè)試程序標(biāo)準(zhǔn)3.開發(fā)在提交程序時(shí),提交單元測(cè)試Case對(duì)大家的要求和建議1.開發(fā)中增加單元測(cè)試規(guī)范Junit使用步驟1.覆蓋setUp()和tearDown()方法2.使用Assert.assert…()Junit使用步驟1.覆蓋setUp()和tearDown單元測(cè)試的工具RationalPurifyPlus包括三個(gè)工具1.測(cè)試VC和java代碼編寫的程序2.Purify檢查內(nèi)存泄露3.Purecoverage檢查代碼覆蓋率單元測(cè)試的工具RationalPurifyPlus態(tài)度決定一切細(xì)節(jié)影響成敗態(tài)度決定一切測(cè)試總體流程圖F驗(yàn)收測(cè)試B單元測(cè)試C整合測(cè)試D系統(tǒng)測(cè)試E性能測(cè)試A測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)立項(xiàng)結(jié)束測(cè)試總體流程圖F驗(yàn)收測(cè)試B單元測(cè)試C整合測(cè)試D系統(tǒng)測(cè)試E性能測(cè)試分類.黑盒測(cè)試.白盒測(cè)試.灰盒測(cè)試測(cè)試分類.黑盒測(cè)試軟件中的難題1.開發(fā)的不是客戶需要的2.計(jì)劃趕不上變化,進(jìn)度無(wú)法按期完成3.挖坑還是開渠?永遠(yuǎn)的資源不足4.不能正確實(shí)現(xiàn)功能5.如何維護(hù)大量的已有軟件?軟件中的難題1.開發(fā)的不是客戶需要的軟件與硬件的區(qū)別軟件硬件易變確定,需求和產(chǎn)物非組件化組件化,由構(gòu)建組成隨時(shí)間而消退隨時(shí)間而磨損成本在研發(fā)上,copy過程幾乎沒有成本生產(chǎn)工程成本高軟件與硬件的區(qū)別軟件硬件易變確定,需求和產(chǎn)物非組件化組件化,軟件工程1.軟件工程是為創(chuàng)造高質(zhì)量軟件提供的一個(gè)框架2.將系統(tǒng)化,規(guī)范化,可度量的方法應(yīng)用于軟件的開發(fā),運(yùn)行和維護(hù),即將工程化應(yīng)用于軟件中3.包括過程,方法和工具三個(gè)層面4.過程,方法和人對(duì)質(zhì)量的影響軟件工程1.軟件工程是為創(chuàng)造高質(zhì)量軟件提供的一個(gè)框架過程1.過程是項(xiàng)目管理的基礎(chǔ)2.定義關(guān)鍵過程區(qū)域框架3.CMM中的KPA過程1.過程是項(xiàng)目管理的基礎(chǔ)方法1.技術(shù)上需要如何做?2.方法涵蓋一系列的任務(wù):需求,設(shè)計(jì),編碼,測(cè)試,維護(hù)方法1.技術(shù)上需要如何做?工具1.為工程,方法提供自動(dòng),半自動(dòng)化的支持2.組建起來被另外一個(gè)工具使用3.組成軟件工程環(huán)境工具1.為工程,方法提供自動(dòng),半自動(dòng)化的支持過程篇—關(guān)于CMMCMM(CapabilityMaturityModel)能力成熟度模型用于軟件開發(fā)過程和開發(fā)能力的改進(jìn)與評(píng)估的模型對(duì)軟件工程的全過程進(jìn)行考察和評(píng)估不告訴你怎么做,但告訴你不用成熟度應(yīng)該關(guān)注的關(guān)鍵過程過程篇—關(guān)于CMMCMM(CapabilityMaturi何為CMM/CMMICMMI,目標(biāo):第一個(gè)是質(zhì)量,第二個(gè)是時(shí)間表,第三就是要用最低的成本。
與原有的能力成熟度模型CMM相比,CMMI涉及面更廣,專業(yè)領(lǐng)域覆蓋軟件工程、系統(tǒng)工程、集成產(chǎn)品開發(fā)和系統(tǒng)采購(gòu)CMMI即CMM集成,是系統(tǒng)工程和軟件工程的集成成熟度模型,CMMI更適合于信息系統(tǒng)集成企業(yè)。CMMI是在CMM基礎(chǔ)上發(fā)展起來的,它繼承并發(fā)揚(yáng)了CMM的優(yōu)良特性,借鑒了其他模型的優(yōu)點(diǎn),融入了新的理論和實(shí)際研究成果。它不僅能夠應(yīng)用在軟件工程領(lǐng)域,而且可以用于系統(tǒng)工程及其他工程領(lǐng)域。
何為CMM/CMMICMMI,目標(biāo):第一個(gè)是質(zhì)量,第二個(gè)是時(shí)CMMI階段模型5.優(yōu)化級(jí):持續(xù)過程改進(jìn),組織性快速重新配置4.量化管理級(jí):過程和產(chǎn)品被量化度量并控制,組織性能提升3.已定義級(jí):組織內(nèi)項(xiàng)目改進(jìn)和執(zhí)行2.已管理級(jí):能重復(fù)以前的成功,有紀(jì)律性1.初始級(jí):過程能力不可預(yù)測(cè),無(wú)秩序
CMMI階段模型5.優(yōu)化級(jí):持續(xù)過程改進(jìn),組織性快速重新配Level1在級(jí)別1:過程是隨機(jī),混亂和無(wú)序的。這種通常沒有一個(gè)穩(wěn)定的環(huán)境,它的成功依賴于組織中個(gè)人的能力和英雄主意,而不是依賴使用經(jīng)過驗(yàn)證的過程。盡管這種混亂,無(wú)序的環(huán)境,對(duì)成熟度1的組織也經(jīng)常能制造出能工作的產(chǎn)品和服務(wù),但是,他們的項(xiàng)目經(jīng)常是超成本和進(jìn)度的。它們有過度承諾的趨勢(shì),在危機(jī)時(shí)放棄過程,不能重復(fù)他們過去的成功。Level1在級(jí)別1:Level21.組織中的項(xiàng)目確保需求得到管理,過程已經(jīng)計(jì)劃,執(zhí)行,度量和控制。2.即使在時(shí)間壓力下,依然能夠保留現(xiàn)有的實(shí)踐。3.管理層在某些已定義點(diǎn)上對(duì)工作產(chǎn)品的狀態(tài)和提交的服務(wù)具有可視性。4.在干系人(風(fēng)險(xiǎn)承擔(dān)者)之間建立了承諾,在必要的時(shí)候進(jìn)行修正。Level21.組織中的項(xiàng)目確保需求得到管理,過程已經(jīng)計(jì)劃Level3工程得到很好地表現(xiàn)和理解,被描述成標(biāo)準(zhǔn),規(guī)程,關(guān)鍵和方法。作為3級(jí)基礎(chǔ)的組織標(biāo)準(zhǔn)過程集已經(jīng)簡(jiǎn)歷和不斷改進(jìn)。2,3級(jí)的區(qū)別在于標(biāo)準(zhǔn),過程和規(guī)程的范圍3級(jí)比2級(jí)的描述更具體和更嚴(yán)格Level3工程得到很好地表現(xiàn)和理解,被描述成標(biāo)準(zhǔn),規(guī)程,Level4使用統(tǒng)計(jì)和量化技術(shù)進(jìn)行控制建立了質(zhì)量和過程性能的量化目標(biāo),作為過程管理的準(zhǔn)則收集了過程性能的詳細(xì)度量,進(jìn)行統(tǒng)計(jì)分析質(zhì)量和過程性能度量數(shù)據(jù)組成組織的度量庫(kù),來支持將來的基于事實(shí)的決策3,4級(jí)的區(qū)別在于過程性能的可預(yù)測(cè)性。Level4使用統(tǒng)計(jì)和量化技術(shù)進(jìn)行控制Level5基于對(duì)過程中的固有偏差的一般原因的定量理解,持續(xù)的進(jìn)行過程改進(jìn)通過漸進(jìn)的和革新的技術(shù)改進(jìn),集中在持續(xù)地過程性能改進(jìn)上指出過程偏差的一般原因和可測(cè)地改進(jìn)組織過程的過程改進(jìn)得到識(shí)別,評(píng)估和實(shí)施敏捷和創(chuàng)新的過程優(yōu)化依賴于授權(quán)員工的參與,他們與業(yè)務(wù)價(jià)值和組織目標(biāo)保持一致Level5基于對(duì)過程中的固有偏差的一般原因的定量理解,持Level2CMM2:可重復(fù)性KPA:軟件配置管理軟件質(zhì)量保證子合同管理Level2CMM2:可重復(fù)性Level2軟件項(xiàng)目跟蹤和監(jiān)控軟件項(xiàng)目計(jì)劃需求管理Level2軟件項(xiàng)目跟蹤和監(jiān)控配置管理1.定義并文檔化配置項(xiàng)的功能和物理屬性2.控制這些屬性的變更3.記錄和報(bào)告變更處理結(jié)果和實(shí)施狀態(tài)4.遵從制定的需求進(jìn)行驗(yàn)證配置管理1.定義并文檔化配置項(xiàng)的功能和物理屬性同行評(píng)審為什么進(jìn)行評(píng)審?.促進(jìn)文檔化,提升可讀性,易理解性等.查找錯(cuò)誤,收集建議.擴(kuò)散知識(shí),產(chǎn)生后備力量評(píng)審什么?.項(xiàng)目中的一系列計(jì)劃.項(xiàng)目各階段的輸出:文檔,代碼等誰(shuí)來評(píng)審?項(xiàng)目組成員,PPQA,上級(jí)領(lǐng)導(dǎo),客戶等同行評(píng)審為什么進(jìn)行評(píng)審?同行評(píng)審.評(píng)審的輸入--待評(píng)審的文檔,代碼--《XXX評(píng)審檢查表》.評(píng)審的輸出--《評(píng)審報(bào)告》--《評(píng)審過程檢查表》同行評(píng)審.評(píng)審的輸入正確看待文檔.文檔是所有事情能夠繼承的保證.如果認(rèn)為不必要,多一分也是多,如果認(rèn)為必要,多少都不夠.文檔是一個(gè)人水平高低的體現(xiàn).需要提高每個(gè)人的寫作能力,練好內(nèi)功正確看待文檔.文檔是所有事情能夠繼承的保證軟件開發(fā)模型—瀑布型1.需求2.設(shè)計(jì)3.代碼4.測(cè)試5.運(yùn)行/維護(hù)軟件開發(fā)模型—瀑布型1.需求軟件開發(fā)模型—原型1.用戶需求不明確是采用2.快速設(shè)計(jì),快速開發(fā)3.迭代的過程4.與用戶一起明確需求5.最終會(huì)被拋棄軟件開發(fā)模型—原型1.用戶需求不明確是采用軟件開發(fā)模型—演化模型.線性迭代.每個(gè)線性過程產(chǎn)生一個(gè)版本.分階段提供給用戶軟件開發(fā)模型—演化模型.線性迭代敏捷式開發(fā)1.是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。2.在敏捷開發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測(cè)試,具備集成和可運(yùn)行的特征。敏捷式開發(fā)1.是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。決定軟件質(zhì)量的因素1.過程2.方法3.工具4.人決定軟件質(zhì)量的因素1.過程測(cè)試目的在產(chǎn)品投入使用前,通過綜合的智力活動(dòng),發(fā)現(xiàn)程序中的顯性和隱形的錯(cuò)誤和缺陷。控制發(fā)布產(chǎn)品的質(zhì)量,提升客戶滿意度測(cè)試目的在產(chǎn)品投入使用前,通過綜合的智力活動(dòng)測(cè)試目的測(cè)試的目的是發(fā)現(xiàn)和確認(rèn)系統(tǒng)有問題,而不是驗(yàn)證系統(tǒng)沒有問題確認(rèn)軟件生命周期中的各個(gè)階段的產(chǎn)品是否正確確認(rèn)最終交付的產(chǎn)品是否符合用戶需求使用測(cè)試數(shù)據(jù)檢驗(yàn)系統(tǒng)運(yùn)行的行為是否是按照預(yù)期目標(biāo)執(zhí)行的測(cè)試目的測(cè)試的目的是發(fā)現(xiàn)和確認(rèn)系統(tǒng)有問題,而不是驗(yàn)證系統(tǒng)沒有測(cè)試原則所有測(cè)試都應(yīng)該追溯到用戶需求應(yīng)該在測(cè)試工作真正開始的較長(zhǎng)時(shí)間內(nèi)就進(jìn)行測(cè)試測(cè)試中發(fā)現(xiàn)的80%的問題可能集中在模塊的20%中測(cè)試原則所有測(cè)試都應(yīng)該追溯到用戶需求測(cè)試原則測(cè)試順序應(yīng)從簡(jiǎn)單到復(fù)雜,從模塊到集成,從白到黑窮舉測(cè)試是不可能的Bug不可避免測(cè)試原則測(cè)試順序應(yīng)從簡(jiǎn)單到復(fù)雜,從模塊到集成,從白到黑常用的測(cè)試技術(shù)1.在產(chǎn)品成型前,對(duì)規(guī)約,設(shè)計(jì),代碼進(jìn)行Review,確認(rèn)與需求是否一致---靜態(tài)測(cè)試2.了解產(chǎn)品內(nèi)部結(jié)構(gòu),確認(rèn)內(nèi)部邏輯是否符合需求,且內(nèi)部構(gòu)件被充分利用---白盒測(cè)試3.如果了解特定的功能,在各種功能中尋找錯(cuò)誤—黑盒測(cè)試常用的測(cè)試技術(shù)1.在產(chǎn)品成型前,對(duì)規(guī)約,設(shè)計(jì),代碼進(jìn)行Rev靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試1.靜態(tài)測(cè)試:指不用執(zhí)行程序的測(cè)試。主要采用Review,代碼走查,同級(jí)評(píng)審,checklist檢查單的方法對(duì)軟件產(chǎn)品進(jìn)行測(cè)試。2.動(dòng)態(tài)測(cè)試:通過執(zhí)行程序,找出產(chǎn)品問題的測(cè)試過程。黑盒,白盒都是動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試1.靜態(tài)測(cè)試:指不用執(zhí)行程序的測(cè)試。主要采白盒測(cè)試白盒測(cè)試發(fā)現(xiàn)的錯(cuò)誤類型:1.語(yǔ)法錯(cuò)誤2.編譯錯(cuò)誤3.邏輯錯(cuò)誤4.判定條件問題5.編程規(guī)范6.MemoryLeak7.PerformanceProblem白盒測(cè)試白盒測(cè)試發(fā)現(xiàn)的錯(cuò)誤類型:白盒測(cè)試邏輯驅(qū)動(dòng)測(cè)試基本路徑測(cè)試白盒測(cè)試邏輯驅(qū)動(dòng)測(cè)試邏輯驅(qū)動(dòng)測(cè)試邏輯驅(qū)動(dòng)測(cè)試:主要是測(cè)試覆蓋率,以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試。包括以下6種類型:1.語(yǔ)句覆蓋2.判斷覆蓋3.條件覆蓋4.判定-條件覆蓋5.條件組合覆蓋6.路徑覆蓋邏輯驅(qū)動(dòng)測(cè)試邏輯驅(qū)動(dòng)測(cè)試:邏輯驅(qū)動(dòng)測(cè)試主要是測(cè)試覆蓋率,以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試。包括以下6種類型:1.語(yǔ)句覆蓋:語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行測(cè)試程序,使得每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次2.判斷覆蓋:也叫分支覆蓋設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行測(cè)試程序,使得每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次3.條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次4.判定-條件覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次5.條件組合覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得程序中每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次6.路徑覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,要覆蓋程序中所有可能的路徑邏輯驅(qū)動(dòng)測(cè)試主要是測(cè)試覆蓋率,以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試ForExampleVoidDoWork(intx,inty,intz){ intk=0,j=0; if((x>3)&&(z<10)) { k=x*y-1;//語(yǔ)句塊1 j=sqrt(k);} if((x==4)||(y>5)) { j=x*y+10;//語(yǔ)句塊2 } j=j%3;//語(yǔ)句塊3}ForExampleVoidDoWork(intx,流程圖如下:流程圖如下:語(yǔ)句覆蓋為了說明簡(jiǎn)略,分別對(duì)各個(gè)判斷的取真,取假分支編號(hào)為b,c,d,e為了測(cè)試語(yǔ)句覆蓋率只要設(shè)計(jì)一個(gè)測(cè)試用例就可以把三個(gè)執(zhí)行語(yǔ)句塊中的語(yǔ)句覆蓋。測(cè)試用例輸入為:{x=4,y=5,z=5}程序執(zhí)行的路徑是:abd該測(cè)試用例雖然覆蓋了可執(zhí)行語(yǔ)句,但是并不能檢查判斷邏輯是否有問題,例如在第一個(gè)判斷中把&&錯(cuò)誤的寫成||,上面的測(cè)試用例仍然可以覆蓋所有的執(zhí)行語(yǔ)句??梢哉f語(yǔ)句覆蓋率是最弱的邏輯覆蓋準(zhǔn)則語(yǔ)句覆蓋為了說明簡(jiǎn)略,分別對(duì)各個(gè)判斷的取真,取假分支編判定覆蓋如果設(shè)計(jì)兩個(gè)測(cè)試用例則可以滿足分支覆蓋的要求:測(cè)試用例的輸入為:{x=4,y=5,z=5}{x=2,y=5,z=5}雖然可以滿足分支覆蓋的要求,但是也不能對(duì)判斷條件做完整的檢查判定覆蓋如果設(shè)計(jì)兩個(gè)測(cè)試用例則可以滿足分支覆蓋的要求:條件覆蓋對(duì)于這個(gè)簡(jiǎn)單例子的所有條件取值加以標(biāo)記。如:對(duì)于第一個(gè)判斷:條件x>3,取真值為T1,取假值為-T1條件z<10,取真值為T2,取假值為-T2對(duì)于第二個(gè)判斷:條件x=4,取真值為T3,取假值為-T3條件y>5,取真值為T4,取假值為-T4條件覆蓋對(duì)于這個(gè)簡(jiǎn)單例子的所有條件取值加以標(biāo)記。如:設(shè)計(jì)測(cè)試用例如下:測(cè)試用例通過路徑條件取值覆蓋方式x=4,y=6,z=5abdT1,T2,T3,T4bdx=2,y=5,z=5ace-T1,T2,-T3,-T4cex=4,y=5,z=15acdT1,-T2,T3,-T4cd上面的測(cè)試用例不但覆蓋了所有分支的真假兩個(gè)分支,而且覆蓋了判斷中的所有條件的可能值設(shè)計(jì)測(cè)試用例如下:測(cè)試用例通過路徑條件取值覆蓋方式x=4,y測(cè)試用例如下:但是如果設(shè)計(jì)了下面的測(cè)試用例,則雖然滿足了條件覆蓋,但是只覆蓋了第一個(gè)條件的取假分支和第二個(gè)條件的取真分支,不滿足分支覆蓋的要求測(cè)試用例通過路徑條件取值覆蓋分支x=2,y=6,z=5acd-T1,T2,-T3,T4cdx=4,y=5,z=5acdT1,-T2,T3,-T4cd測(cè)試用例如下:但是如果設(shè)計(jì)了下面的測(cè)試用例,則雖然滿足了條件分支條件覆蓋根據(jù)定義只需要設(shè)計(jì)以下兩個(gè)測(cè)試用例便可以覆蓋8個(gè)條件值以及4個(gè)判斷分支測(cè)試用例通過路徑條件取值覆蓋分支x=4,y=6,z=5abdT1,T2,T3,T4bdx=2,y=5,z=11ace-T1,-T2,-T3,-T4ce分支條件覆蓋測(cè)試用例通過路徑條件取值覆蓋分支x=4,y=6,分支條件覆蓋條件分支覆蓋從表面上看,它測(cè)試了所有條件的取值,但是實(shí)際上某些條件掩蓋了另外的一些條件,例如對(duì)于條件表達(dá)式(x>3)&&(z<10)來說,必須兩個(gè)條件都滿足才能確定表達(dá)式為真。如果(x<3)為假,則一般的編譯器不再判斷是否(z<10了,對(duì)于第二個(gè)表達(dá)式(x==4)||(y>5)來說,若x==4測(cè)試結(jié)果為真,就認(rèn)為表達(dá)式的結(jié)果為真,這是不在檢查(y>5)的條件了。因此,采用分支條件覆蓋,邏輯表達(dá)式的錯(cuò)誤不一定能夠查出來了。分支條件覆蓋條件組合覆蓋設(shè)計(jì)足夠多的測(cè)試用例,運(yùn)行測(cè)試程序,使得程序中每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。現(xiàn)在對(duì)例子中的各個(gè)判斷的條件取值組合加以標(biāo)記如下:x>3,z<10記做T1,T2,第一個(gè)判斷的取真分支x>3,z>=10記做T1,-T2,第一個(gè)判斷的取假分支x<=3,z<0記做-T1,T2,第一個(gè)判斷的取假分支x<=3,z>=10記做-T1,-T2,第一個(gè)判斷的取假分支x=4,y>5記做T3,T4,第一個(gè)判斷的取真分支x=4,y<=5記做T3,-T4,第一個(gè)判斷的取真分支x!=4,y>5記做-T3,T4,第一個(gè)判斷的取真分支x!=4,y<=5記做-T3,-T4,第一個(gè)判斷的取假分支條件組合覆蓋條件組合覆蓋測(cè)試用例通過路徑條件取值覆蓋組合號(hào)x=4,y=6,z=5abdT1,T2,T3,T41和5x=4,y=5,z=15acdT1,-T2,T3,-T42和6x=2,y=6,z=5acd-T1,T2,-T3,T43和7x=2,y=5,z=15ace-T1,-T2,-T3,-T44和8上面的測(cè)試用例覆蓋了所有條件的可能取值的組合,覆蓋了所有判斷的可取分支,但是卻丟失了一條路徑abe。條件組合覆蓋測(cè)試用例通過路徑條件取值覆蓋組合號(hào)x=4,y=6基本路徑測(cè)試1.根據(jù)源代碼導(dǎo)出流程圖2.分析程序邏輯復(fù)雜度3.導(dǎo)出測(cè)試Case基本路徑測(cè)試1.根據(jù)源代碼導(dǎo)出流程圖基本路徑測(cè)試舉例-PDL分析計(jì)算不超過100個(gè)數(shù)字的平均值,使用PDL語(yǔ)言INTEFACERETURNSaverage,total.input,total.valid;INTEFACERETURNSvalue,minimum,maxium,sum;TYPEvalue(1:100)ISSCALARARRAY;TYPEiISINTEGER;i=1;Total.input=total.valid=0;1Sum=0DOWHILEvalue(i)<>-9992andtotal.input<103;
incrementtotal.inputby1;4 IFvalue(i)>=minimum5andval
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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年度差旅服務(wù)與智能出行平臺(tái)合作協(xié)議4篇
- 專業(yè)化國(guó)內(nèi)物流服務(wù)運(yùn)輸協(xié)議范本(2024版)一
- 2025年度建筑工程測(cè)量監(jiān)理合同協(xié)議4篇
- 2024新三板掛牌協(xié)議及證券事務(wù)顧問服務(wù)合同3篇
- 2024藍(lán)皮合同下載
- 2025年度柴油運(yùn)輸企業(yè)環(huán)保設(shè)施建設(shè)合同4篇
- 2025年度環(huán)保環(huán)保設(shè)備銷售與售后服務(wù)合同4篇
- 2025年度柴油生產(chǎn)技術(shù)改造項(xiàng)目合同范本4篇
- 個(gè)人房產(chǎn)買賣合同書稿版B版
- 2024投資擔(dān)保借款保證合同范本
- 產(chǎn)品共同研發(fā)合作協(xié)議范本5篇
- 風(fēng)水學(xué)的基礎(chǔ)知識(shí)培訓(xùn)
- 吸入療法在呼吸康復(fù)應(yīng)用中的中國(guó)專家共識(shí)2022版
- 1-35kV電纜技術(shù)參數(shù)表
- 信息科技課程標(biāo)準(zhǔn)測(cè)(2022版)考試題庫(kù)及答案
- 施工組織設(shè)計(jì)方案針對(duì)性、完整性
- 2002版干部履歷表(貴州省)
- DL∕T 1909-2018 -48V電力通信直流電源系統(tǒng)技術(shù)規(guī)范
- 2024年服裝制版師(高級(jí))職業(yè)鑒定考試復(fù)習(xí)題庫(kù)(含答案)
- 門診部縮短就診等候時(shí)間PDCA案例-課件
評(píng)論
0/150
提交評(píng)論