軟件工程-軟件測(cè)試ppt課件_第1頁(yè)
軟件工程-軟件測(cè)試ppt課件_第2頁(yè)
軟件工程-軟件測(cè)試ppt課件_第3頁(yè)
軟件工程-軟件測(cè)試ppt課件_第4頁(yè)
軟件工程-軟件測(cè)試ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件生存周期軟件生存周期可行性研究可行性研究需求分析需求分析概要設(shè)計(jì)概要設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)編編 碼碼集成測(cè)試集成測(cè)試確認(rèn)測(cè)試確認(rèn)測(cè)試使用與維護(hù)使用與維護(hù)退役退役軟件定義軟件定義軟件開(kāi)發(fā)軟件開(kāi)發(fā)軟件使用軟件使用與維護(hù)與維護(hù)軟件生命周期軟件生命周期防不勝防的軟件錯(cuò)誤防不勝防的軟件錯(cuò)誤 例:例:1963年年, 美國(guó)美國(guó), 飛往火星的火箭爆炸飛往火星的火箭爆炸, 損失損失$ 10 million. 緣由緣由: FORTRAN循循環(huán)環(huán) DO 5 I = 1, 3 誤寫(xiě)為誤寫(xiě)為 DO 5 I = 1.3軟軟 件件 測(cè)測(cè) 試試 (Testing)軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵步驟,是對(duì)軟件規(guī)軟件測(cè)試是保證軟

2、件質(zhì)量的關(guān)鍵步驟,是對(duì)軟件規(guī)格說(shuō)明、設(shè)計(jì)和編碼的最后復(fù)審,其工件量約占總格說(shuō)明、設(shè)計(jì)和編碼的最后復(fù)審,其工件量約占總工作量工作量40%以上對(duì)于人命關(guān)天的情況,測(cè)試相當(dāng)以上對(duì)于人命關(guān)天的情況,測(cè)試相當(dāng)于其它部分總成本的于其它部分總成本的3 5倍)。倍)。1. 基本概念基本概念1、定義:測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序、定義:測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程。的過(guò)程。留意:留意: 只能盡可能查錯(cuò),不能證明程序中只能盡可能查錯(cuò),不能證明程序中 沒(méi)有錯(cuò);沒(méi)有錯(cuò); 測(cè)試員與程序員不應(yīng)是同一個(gè)人。測(cè)試員與程序員不應(yīng)是同一個(gè)人。2、黑盒和白盒測(cè)試、黑盒和白盒測(cè)試 黑盒測(cè)試黑盒測(cè)試(black-

3、box , or closed-box testing): 不考慮程序內(nèi)部的結(jié)構(gòu),只觀察程序的入不考慮程序內(nèi)部的結(jié)構(gòu),只觀察程序的入口和出口,是否能完成規(guī)格要求的輸入輸出口和出口,是否能完成規(guī)格要求的輸入輸出. 功能測(cè)試功能測(cè)試 白盒測(cè)試白盒測(cè)試(white-box , or open-box, clear-box testing): 程序的結(jié)構(gòu)和處理過(guò)程象白盒子一樣透明程序的結(jié)構(gòu)和處理過(guò)程象白盒子一樣透明. 結(jié)構(gòu)測(cè)試結(jié)構(gòu)測(cè)試1. 基本概念基本概念141416161616161610103 32 22 22 2若程序執(zhí)行需若程序執(zhí)行需10-3秒,則對(duì)于所有合法輸入秒,則對(duì)于所有合法輸入的測(cè)試大

4、約需用一萬(wàn)年,而且還應(yīng)測(cè)試輸入非法的測(cè)試大約需用一萬(wàn)年,而且還應(yīng)測(cè)試輸入非法數(shù)據(jù)的情況。數(shù)據(jù)的情況。主要問(wèn)題:窮盡測(cè)試主要問(wèn)題:窮盡測(cè)試(complete test)通常是不可能的。通常是不可能的。例:例:(Black-box) 程序要求輸入程序要求輸入3個(gè)整形數(shù)據(jù)。若字長(zhǎng)個(gè)整形數(shù)據(jù)。若字長(zhǎng)16位,則各種可能輸入的排列組合共有位,則各種可能輸入的排列組合共有 (種)(種)例:例:(White-box) 下圖所示的程序中共有下圖所示的程序中共有 5201014條可能的執(zhí)行通路,顯然,每條條可能的執(zhí)行通路,顯然,每條通路都執(zhí)行一遍是不現(xiàn)實(shí)的。通路都執(zhí)行一遍是不現(xiàn)實(shí)的。1. 基本概念基本概念循環(huán)循環(huán)

5、2020次次3、測(cè)試步驟:、測(cè)試步驟:(1) 單元測(cè)試單元測(cè)試 程序設(shè)計(jì)程序設(shè)計(jì) & 編碼編碼 bugs(2) 集成測(cè)試集成測(cè)試 模塊之間的連接模塊之間的連接(3) 系統(tǒng)測(cè)試系統(tǒng)測(cè)試 需求需求 & 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)(4) 驗(yàn)收測(cè)試驗(yàn)收測(cè)試 用戶參與用戶參與(5) 平行測(cè)試平行測(cè)試 新老系統(tǒng)進(jìn)行比較新老系統(tǒng)進(jìn)行比較.綜合綜合測(cè)試測(cè)試1. 基本概念基本概念測(cè)試階段的信息流:測(cè)試階段的信息流:測(cè)試測(cè)試評(píng)價(jià)評(píng)價(jià)調(diào)試調(diào)試可靠性可靠性模型模型軟件配置軟件配置測(cè)試配置測(cè)試配置測(cè)試結(jié)果測(cè)試結(jié)果可靠性預(yù)測(cè)可靠性預(yù)測(cè)錯(cuò)錯(cuò) 誤誤正正 確確錯(cuò)誤率數(shù)據(jù)錯(cuò)誤率數(shù)據(jù)預(yù)期結(jié)果預(yù)期結(jié)果2. 單元測(cè)試白盒)單元測(cè)

6、試白盒)主要測(cè)試以下五個(gè)方面:主要測(cè)試以下五個(gè)方面:1、模塊接口:、模塊接口: 內(nèi)部檢查:傳輸參數(shù)的數(shù)目、屬性、單位、內(nèi)部檢查:傳輸參數(shù)的數(shù)目、屬性、單位、次序是否匹配;全程變量的定義是否一致;只次序是否匹配;全程變量的定義是否一致;只做輸入的變?cè)袩o(wú)被修改,等等。做輸入的變?cè)袩o(wú)被修改,等等。 外部檢查:翻開(kāi)、終了、關(guān)閉文件的操作;外部檢查:翻開(kāi)、終了、關(guān)閉文件的操作;文件和屬性;文件和屬性;IO錯(cuò)誤處理;輸出拼寫(xiě),等等。錯(cuò)誤處理;輸出拼寫(xiě),等等。2、局部數(shù)據(jù)結(jié)構(gòu):、局部數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)說(shuō)明數(shù)據(jù)說(shuō)明(declaration);初始化與缺省值的設(shè);初始化與缺省值的設(shè)置;變量名拼寫(xiě);數(shù)據(jù)類(lèi)型的相

7、容性;上置;變量名拼寫(xiě);數(shù)據(jù)類(lèi)型的相容性;上下溢下溢出及地址異常,等等。出及地址異常,等等。2.單元測(cè)試單元測(cè)試3、重要的執(zhí)行通路:、重要的執(zhí)行通路: 由于窮盡測(cè)試不可能,故通常針對(duì)最常見(jiàn)的由于窮盡測(cè)試不可能,故通常針對(duì)最常見(jiàn)的錯(cuò)誤設(shè)計(jì)測(cè)試方案。錯(cuò)誤設(shè)計(jì)測(cè)試方案。4、出錯(cuò)處理通路:、出錯(cuò)處理通路: 預(yù)見(jiàn)出現(xiàn)錯(cuò)誤的條件,設(shè)置處理。預(yù)見(jiàn)出現(xiàn)錯(cuò)誤的條件,設(shè)置處理。5、邊界條件、邊界條件 單元測(cè)試中最后,也可能是最重單元測(cè)試中最后,也可能是最重要的任務(wù),因?yàn)檐浖T谄溥吔缡?。要的任?wù),因?yàn)檐浖T谄溥吔缡А?、代碼審查、代碼審查(code inspection) 徹底檢查徹底檢查: 例如例如 Lu

8、cent Technologies 的測(cè)試策略,的測(cè)試策略,是由三人一組是由三人一組(包括包括 author, reader, 和和recorder),逐行檢查源代碼。逐行檢查源代碼。 演習(xí):由人扮演演習(xí):由人扮演computer,模擬執(zhí)行情況。,模擬執(zhí)行情況。2.單元測(cè)試單元測(cè)試優(yōu)點(diǎn)優(yōu)點(diǎn): 一次審查可發(fā)現(xiàn)多個(gè)錯(cuò)誤,不必改一個(gè)測(cè)一個(gè)。一次審查可發(fā)現(xiàn)多個(gè)錯(cuò)誤,不必改一個(gè)測(cè)一個(gè)。單元測(cè)試的主要手段單元測(cè)試的主要手段 :2、制作測(cè)試軟件:、制作測(cè)試軟件:Stub (存根和(存根和 Driver驅(qū)動(dòng)驅(qū)動(dòng)軟件的編寫(xiě),屬額外開(kāi)支。模塊高內(nèi)聚可簡(jiǎn)化這一軟件的編寫(xiě),屬額外開(kāi)支。模塊高內(nèi)聚可簡(jiǎn)化這一過(guò)程。過(guò)程。

9、3. 集成測(cè)試集成測(cè)試 (Integration Testing)1、非漸增式測(cè)試、非漸增式測(cè)試 (Big-bang testing)Test A,B, C, DTestATestBTestCTestD3.集成測(cè)試集成測(cè)試兩種方式的比較:兩種方式的比較: Incremental testing 可以較早發(fā)現(xiàn)模塊間的接口錯(cuò)可以較早發(fā)現(xiàn)模塊間的接口錯(cuò)誤;誤;Big-bang testing 最后才組裝,因此錯(cuò)誤發(fā)現(xiàn)得最后才組裝,因此錯(cuò)誤發(fā)現(xiàn)得晚。晚。 Big-bang testing 中發(fā)現(xiàn)錯(cuò)誤后難以診斷定位;中發(fā)現(xiàn)錯(cuò)誤后難以診斷定位; Incremental testing 中,出現(xiàn)的錯(cuò)誤往往跟

10、最新加中,出現(xiàn)的錯(cuò)誤往往跟最新加入的模塊有關(guān)。入的模塊有關(guān)。 Incremental testing 在不斷集成的過(guò)程中使模塊不在不斷集成的過(guò)程中使模塊不斷在新的條件下受到新的檢測(cè),測(cè)試更徹底。斷在新的條件下受到新的檢測(cè),測(cè)試更徹底。 Incremental testing 較較 Big-bang testing 費(fèi)時(shí)。費(fèi)時(shí)。 Big-bang testing 可以同時(shí)并行測(cè)試所有模塊,能充可以同時(shí)并行測(cè)試所有模塊,能充分利用人力。分利用人力。2、漸增式測(cè)試、漸增式測(cè)試 (Incremental testing) 自頂向下測(cè)試自頂向下測(cè)試第第1步:測(cè)試頂端模塊,用存根程序步:測(cè)試頂端模塊,用存

11、根程序(stub)代替直接附屬的下層模塊代替直接附屬的下層模塊 Stub: 模擬未測(cè)試模塊的活動(dòng)模擬未測(cè)試模塊的活動(dòng).3.集成測(cè)試集成測(cè)試3、Incremental testing 的幾種策略的幾種策略MS1S2第第2步:根據(jù)深度優(yōu)先或?qū)挾葍?yōu)先的策略,每次步:根據(jù)深度優(yōu)先或?qū)挾葍?yōu)先的策略,每次用一個(gè)實(shí)際模塊代換一個(gè)用一個(gè)實(shí)際模塊代換一個(gè)stub。3.集成測(cè)試集成測(cè)試第第3步:在結(jié)合進(jìn)一個(gè)模塊的同時(shí)進(jìn)行測(cè)試。步:在結(jié)合進(jìn)一個(gè)模塊的同時(shí)進(jìn)行測(cè)試。MS1S2M1S3S4M2S2第第4步:回歸測(cè)試步:回歸測(cè)試(regression testing)全部或全部或部分地重復(fù)以前做過(guò)的測(cè)試。部分地重復(fù)以前做

12、過(guò)的測(cè)試。 自底向上測(cè)試自底向上測(cè)試第第1步:把低層模塊組合成族,每族實(shí)現(xiàn)一個(gè)子功能。步:把低層模塊組合成族,每族實(shí)現(xiàn)一個(gè)子功能。第第2步:用驅(qū)動(dòng)程序步:用驅(qū)動(dòng)程序(Driver)協(xié)調(diào)測(cè)試數(shù)據(jù)的協(xié)調(diào)測(cè)試數(shù)據(jù)的IO,測(cè),測(cè)試子功能族。試子功能族。3.集成測(cè)試集成測(cè)試優(yōu)點(diǎn):在早期即對(duì)主要控制及關(guān)鍵的抉擇進(jìn)行檢驗(yàn)。優(yōu)點(diǎn):在早期即對(duì)主要控制及關(guān)鍵的抉擇進(jìn)行檢驗(yàn)。問(wèn)題:?jiǎn)栴}:Stub只是對(duì)低層模塊的模擬,測(cè)試時(shí)沒(méi)有重只是對(duì)低層模塊的模擬,測(cè)試時(shí)沒(méi)有重要的數(shù)據(jù)自下往上流,許多重要的測(cè)試須推要的數(shù)據(jù)自下往上流,許多重要的測(cè)試須推遲進(jìn)行,而且在早期不能充分展開(kāi)人力。遲進(jìn)行,而且在早期不能充分展開(kāi)人力。Driv

13、er: 調(diào)用模塊細(xì)節(jié)逐個(gè)進(jìn)行測(cè)試調(diào)用模塊細(xì)節(jié)逐個(gè)進(jìn)行測(cè)試.DM1M2第第3 3步:去掉步:去掉DriverDriver,自下而上把子功能族合成,自下而上把子功能族合成更大的子功能族。更大的子功能族。MMMMMMMMMMMMDDDDDD3.集成測(cè)試集成測(cè)試留意:兩種策略留意:兩種策略的優(yōu)、缺點(diǎn)剛好的優(yōu)、缺點(diǎn)剛好互補(bǔ),但單用其互補(bǔ),但單用其中任一種都不實(shí)中任一種都不實(shí)際,通常根據(jù)軟際,通常根據(jù)軟件的特點(diǎn)將二者件的特點(diǎn)將二者混用?;煊?。 Sandwich testing (三文治測(cè)試)(三文治測(cè)試)3.集成測(cè)試集成測(cè)試Target layerTop-downBottom-up4. 驗(yàn)收測(cè)試驗(yàn)收測(cè)試(

14、Acceptance testing)義務(wù):驗(yàn)收軟件的有效性功能和性能達(dá)標(biāo))。義務(wù):驗(yàn)收軟件的有效性功能和性能達(dá)標(biāo))。手段:黑盒測(cè)試;用戶參與;主要用實(shí)際數(shù)據(jù)進(jìn)手段:黑盒測(cè)試;用戶參與;主要用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。行測(cè)試。內(nèi)容:按合同規(guī)定審查軟件配置;內(nèi)容:按合同規(guī)定審查軟件配置; 設(shè)計(jì)測(cè)試計(jì)劃,使通過(guò)測(cè)試保證軟件能滿設(shè)計(jì)測(cè)試計(jì)劃,使通過(guò)測(cè)試保證軟件能滿足所有功能、性能要求;足所有功能、性能要求; 文檔與程序一致,具有維護(hù)階段所必須的文檔與程序一致,具有維護(hù)階段所必須的細(xì)節(jié);細(xì)節(jié); 嚴(yán)格按用戶手冊(cè)操作,以檢查手冊(cè)的完整嚴(yán)格按用戶手冊(cè)操作,以檢查手冊(cè)的完整性和正確性。性和正確性。5. 設(shè)計(jì)測(cè)試方案設(shè)

15、計(jì)測(cè)試方案(Plan of testing)主要技術(shù):主要技術(shù):1、邏輯覆蓋、邏輯覆蓋(Logical coverage) 適用于白盒測(cè)試適用于白盒測(cè)試 覆蓋程度由弱到強(qiáng)順次為:覆蓋程度由弱到強(qiáng)順次為: 語(yǔ)句覆蓋語(yǔ)句覆蓋(Statement coverage):每個(gè)語(yǔ)句至少執(zhí)行每個(gè)語(yǔ)句至少執(zhí)行一次。一次。義務(wù):義務(wù):預(yù)定要測(cè)試的功能預(yù)定要測(cè)試的功能 設(shè)計(jì)輸入的測(cè)試數(shù)據(jù)設(shè)計(jì)輸入的測(cè)試數(shù)據(jù)(test cases) 列出預(yù)期結(jié)果列出預(yù)期結(jié)果(expected output)5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案例:例:?jiǎn)栴}:若問(wèn)題:若AND錯(cuò)錯(cuò)寫(xiě) 為寫(xiě) 為 O R , 或, 或X1錯(cuò)寫(xiě)為錯(cuò)寫(xiě)為X 1AND

16、B=0TA=2OR X 1TX = X / AX = X + 1前往前往FFTest case : A=2 , B=0 , X=4. 判定覆蓋判定覆蓋(Branch coverage):在:在的基礎(chǔ)上,的基礎(chǔ)上,每個(gè)判定的每個(gè)分支至少執(zhí)行一次。每個(gè)判定的每個(gè)分支至少執(zhí)行一次。5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案Test cases:A=3 , B=0 , X=3A=2 , B=1 , X=1問(wèn)題:若問(wèn)題:若X1錯(cuò)錯(cuò)寫(xiě)為寫(xiě)為X 1AND B=0TA=2OR X 1TX = X / AX = X + 1前往前往FF 條件覆蓋條件覆蓋(Condition coverage):在:在的基礎(chǔ)上,使的基礎(chǔ)上,使

17、每個(gè)判定表達(dá)式的每個(gè)條件都取到各種可能的結(jié)果。每個(gè)判定表達(dá)式的每個(gè)條件都取到各種可能的結(jié)果。5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案Test cases:A=2 , B=0 , X=4(滿足(滿足A1, B=0; A=2, X1)A=1, B=1, X=1(滿足滿足A1, B0; A 2, X1)問(wèn):條件覆蓋問(wèn):條件覆蓋 ? 判定覆蓋判定覆蓋 答答: 不一定。不一定。 反例反例: A=2, B=0, X=1 A=1, B=1, X=2 斷定斷定/條件覆蓋:即判定覆蓋條件覆蓋:即判定覆蓋條件覆蓋條件覆蓋 入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1前往前往FF 條

18、件組合覆蓋:每個(gè)判定表達(dá)式條件組合覆蓋:每個(gè)判定表達(dá)式中條件的各種可能組合都至少出中條件的各種可能組合都至少出現(xiàn)一次。現(xiàn)一次。5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案入口入口A 1AND B=0TA=2OR X 1TX = X / AX = X + 1前往前往FF全部可能的條件組合為:全部可能的條件組合為: A1, B=0 A1, B 0 A1, B=0 A1, B 0 A=2, X1 A=2, X 1 A 2, X1 A 2,X 1 Test cases: A=2, B=0, X=4 (T T) A=2. B=1, X=1 (F T) A=1, B=0, X=2 (F T) A=1, B=1, X=1

19、 (F F)問(wèn)題:沒(méi)有測(cè)試到問(wèn)題:沒(méi)有測(cè)試到T F的情形的情形考察考察control flow graph 的角度,還可考慮下述覆蓋:的角度,還可考慮下述覆蓋: 點(diǎn)覆蓋點(diǎn)覆蓋5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案 邊覆蓋邊覆蓋= 語(yǔ)句覆蓋語(yǔ)句覆蓋 路徑覆蓋路徑覆蓋(Path coverage): 每條可能的路徑都至少執(zhí)每條可能的路徑都至少執(zhí)行一次,若圖中有環(huán),則每行一次,若圖中有環(huán),則每個(gè)環(huán)至少經(jīng)過(guò)一次。個(gè)環(huán)至少經(jīng)過(guò)一次。=判定覆蓋判定覆蓋Test cases: A=1 , B=1 , X=1 A=1 , B=1 , X=2 A=3 , B=0 , X=1 A=2 , B=0 , X=4 路徑覆蓋路徑

20、覆蓋 條件組合覆蓋條件組合覆蓋 劃分經(jīng)驗(yàn)劃分經(jīng)驗(yàn) 當(dāng)規(guī)定了輸入范圍時(shí):當(dāng)規(guī)定了輸入范圍時(shí):5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案2、等價(jià)劃分、等價(jià)劃分(Equivalence Partitioning) 適用于黑盒測(cè)試適用于黑盒測(cè)試 劃分一組劃分一組 等價(jià)類(lèi)等價(jià)類(lèi) 描繪一組輸入條件的有效或無(wú)效描繪一組輸入條件的有效或無(wú)效條件條件, 測(cè)試程序是否有設(shè)計(jì)方案中該有的輸出結(jié)果測(cè)試程序是否有設(shè)計(jì)方案中該有的輸出結(jié)果.無(wú)效類(lèi)無(wú)效類(lèi) 有效類(lèi)有效類(lèi) 無(wú)效類(lèi)無(wú)效類(lèi) 當(dāng)規(guī)定了輸入的一組值,且對(duì)不同值做不同處理時(shí):例:教工分房方當(dāng)規(guī)定了輸入的一組值,且對(duì)不同值做不同處理時(shí):例:教工分房方案中,按教授、副教授、講師、助教分

21、別計(jì)分案中,按教授、副教授、講師、助教分別計(jì)分 有效類(lèi)有效類(lèi)4個(gè);無(wú)效類(lèi)個(gè);無(wú)效類(lèi)1個(gè)個(gè) 當(dāng)規(guī)定了輸入的規(guī)則時(shí):當(dāng)規(guī)定了輸入的規(guī)則時(shí): 例:例:(PASCAL) 語(yǔ)言規(guī)定,每個(gè)語(yǔ)句以語(yǔ)言規(guī)定,每個(gè)語(yǔ)句以“ ;” 結(jié)結(jié) 束束 有效類(lèi)有效類(lèi)1個(gè);無(wú)效類(lèi)若干以個(gè);無(wú)效類(lèi)若干以“ ,”終了、以終了、以“ :”終了、以空格結(jié)束等等)終了、以空格結(jié)束等等) 當(dāng)輸入為整型時(shí):有效類(lèi)可分為當(dāng)輸入為整型時(shí):有效類(lèi)可分為Z+、0、Z 三三種種 當(dāng)處理表格時(shí):有效類(lèi)可分為空表、含一項(xiàng)的表、當(dāng)處理表格時(shí):有效類(lèi)可分為空表、含一項(xiàng)的表、含多項(xiàng)的表等含多項(xiàng)的表等注:注: 以上經(jīng)驗(yàn)亦適用于輸出數(shù)據(jù);以上經(jīng)驗(yàn)亦適用于輸出數(shù)據(jù)

22、; 不需要測(cè)試編譯程序肯定能發(fā)現(xiàn)的錯(cuò)誤。不需要測(cè)試編譯程序肯定能發(fā)現(xiàn)的錯(cuò)誤。5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案 設(shè)計(jì)步驟設(shè)計(jì)步驟 設(shè)計(jì)一個(gè)新方案以盡可能多地覆蓋尚未被覆蓋設(shè)計(jì)一個(gè)新方案以盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類(lèi);重復(fù)這一步驟直到所有有效類(lèi)都的有效等價(jià)類(lèi);重復(fù)這一步驟直到所有有效類(lèi)都被覆蓋為止。被覆蓋為止。 設(shè)計(jì)一個(gè)新方案以覆蓋一個(gè)且僅一個(gè)尚未被覆設(shè)計(jì)一個(gè)新方案以覆蓋一個(gè)且僅一個(gè)尚未被覆蓋的無(wú)效等價(jià)類(lèi);重復(fù)這一步驟直到所有無(wú)效類(lèi)蓋的無(wú)效等價(jià)類(lèi);重復(fù)這一步驟直到所有無(wú)效類(lèi)都被覆蓋為止。(通常程序執(zhí)行一個(gè)錯(cuò)誤后即不都被覆蓋為止。(通常程序執(zhí)行一個(gè)錯(cuò)誤后即不繼續(xù)檢測(cè)其它錯(cuò)誤,故每次只測(cè)一個(gè)無(wú)效

23、類(lèi))繼續(xù)檢測(cè)其它錯(cuò)誤,故每次只測(cè)一個(gè)無(wú)效類(lèi))5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案3、邊界值分析、邊界值分析(Boundary Value Analysis)留意:留意: 程序最容易在邊界發(fā)生錯(cuò)誤;程序最容易在邊界發(fā)生錯(cuò)誤; 通常與等價(jià)劃分結(jié)合進(jìn)行。通常與等價(jià)劃分結(jié)合進(jìn)行。4、錯(cuò)誤推測(cè)、錯(cuò)誤推測(cè)(Failure Prediction)思緒:思緒: 列出可能有的錯(cuò)誤;列出可能有的錯(cuò)誤; 列出容易發(fā)生錯(cuò)誤的特殊情況。列出容易發(fā)生錯(cuò)誤的特殊情況。 以此為基礎(chǔ)設(shè)計(jì)測(cè)試方案。以此為基礎(chǔ)設(shè)計(jì)測(cè)試方案。根據(jù):直覺(jué)、閱歷根據(jù):直覺(jué)、閱歷工具:常見(jiàn)錯(cuò)誤清單、判定表等。工具:常見(jiàn)錯(cuò)誤清單、判定表等。5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)

24、測(cè)試方案5、實(shí)用策略、實(shí)用策略(Practical Strategies) 黑盒設(shè)計(jì)黑盒設(shè)計(jì) 白盒補(bǔ)充白盒補(bǔ)充 在任何情況下都應(yīng)該使用邊界值分析的方法;在任何情況下都應(yīng)該使用邊界值分析的方法; 必要時(shí)用等價(jià)劃分法補(bǔ)充;必要時(shí)用等價(jià)劃分法補(bǔ)充; 必要時(shí)再用錯(cuò)誤推測(cè)法補(bǔ)充;必要時(shí)再用錯(cuò)誤推測(cè)法補(bǔ)充; 對(duì)照程序邏輯,檢查測(cè)試方案??筛鶕?jù)對(duì)程對(duì)照程序邏輯,檢查測(cè)試方案。可根據(jù)對(duì)程序可靠性的要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),序可靠性的要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),必要時(shí)補(bǔ)充一些測(cè)試方案。必要時(shí)補(bǔ)充一些測(cè)試方案。注注: 即使用上述綜合策略設(shè)計(jì)測(cè)試方案,仍不能即使用上述綜合策略設(shè)計(jì)測(cè)試方案,仍不能保證發(fā)現(xiàn)一切錯(cuò)誤。

25、例如保證發(fā)現(xiàn)一切錯(cuò)誤。例如Lucent公司經(jīng)過(guò)包公司經(jīng)過(guò)包括逐行檢查源代碼在內(nèi)的多方面測(cè)試之后,括逐行檢查源代碼在內(nèi)的多方面測(cè)試之后,其軟件能達(dá)標(biāo)運(yùn)行的成功率為其軟件能達(dá)標(biāo)運(yùn)行的成功率為 5. 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案80%。6.調(diào)調(diào) 試試(Debugging)測(cè)試測(cè)試 發(fā)現(xiàn)錯(cuò)誤發(fā)現(xiàn)錯(cuò)誤調(diào)試調(diào)試 改正錯(cuò)誤改正錯(cuò)誤第第1步:確定錯(cuò)誤的位置步:確定錯(cuò)誤的位置(95%工作量工作量); 第第2步:改正錯(cuò)誤。步:改正錯(cuò)誤。Failure外錯(cuò)誤通常是由系統(tǒng)設(shè)計(jì)產(chǎn)生的外錯(cuò)誤通常是由系統(tǒng)設(shè)計(jì)產(chǎn)生的.Fault缺點(diǎn)、內(nèi)錯(cuò)誤、缺點(diǎn)、內(nèi)錯(cuò)誤、error、bug起因于軟件生產(chǎn)中的人為起因于軟件生產(chǎn)中的人為錯(cuò)誤錯(cuò)誤.程

26、序的程序的 failure 通常有一個(gè)清晰的表現(xiàn)特征,但是通常有一個(gè)清晰的表現(xiàn)特征,但是 fault 往往很難往往很難被發(fā)現(xiàn)。被發(fā)現(xiàn)。Execution of casesTestcasesResultsDebuggingAdditional testsSuspected causesIdentified causesCorrectionsRegression testsDebugging6.調(diào)調(diào) 試試1、調(diào)試技術(shù)、調(diào)試技術(shù) 輸出存儲(chǔ)器內(nèi)容輸出存儲(chǔ)器內(nèi)容(memory dump): 以八進(jìn)制或十六進(jìn)制的形式印出存儲(chǔ)器的內(nèi)容。以八進(jìn)制或十六進(jìn)制的形式印出存儲(chǔ)器的內(nèi)容。缺陷:缺陷: 輸出信息量極大,

27、輸出信息量極大, 不易解讀且大多無(wú)用;不易解讀且大多無(wú)用; 輸出的是程序在某一輸出的是程序在某一 時(shí)刻的靜態(tài)情況,且時(shí)刻的靜態(tài)情況,且 往往不是出錯(cuò)時(shí)的狀態(tài)。往往不是出錯(cuò)時(shí)的狀態(tài)。6.調(diào)調(diào) 試試 插入插入“watch points”(或稱或稱“spy points”) 人工插入打印人工插入打印 缺陷:缺陷: 改動(dòng)源代碼,增加了出錯(cuò)機(jī)會(huì);改動(dòng)源代碼,增加了出錯(cuò)機(jī)會(huì); 打印信息可能太多。打印信息可能太多。 自動(dòng)調(diào)試工具自動(dòng)調(diào)試工具 無(wú)須打印額外信息,且不無(wú)須打印額外信息,且不改動(dòng)源代碼改動(dòng)源代碼6.調(diào)調(diào) 試試2、調(diào)試策略、調(diào)試策略 調(diào)試過(guò)程的關(guān)鍵不是調(diào)試技術(shù),而是用來(lái)推調(diào)試過(guò)程的關(guān)鍵不是調(diào)試技術(shù),

28、而是用來(lái)推斷錯(cuò)誤原因的基本策略。主要有:斷錯(cuò)誤原因的基本策略。主要有: 試探法,憑經(jīng)驗(yàn)猜測(cè)。試探法,憑經(jīng)驗(yàn)猜測(cè)。 回溯法:由癥狀回溯法:由癥狀(symptom)最先出現(xiàn)的地方,最先出現(xiàn)的地方,沿沿control flow向回檢查。適用于小型程序。向回檢查。適用于小型程序。 對(duì)分法:在關(guān)鍵點(diǎn)插入變量的正確值,那么:對(duì)分法:在關(guān)鍵點(diǎn)插入變量的正確值,那么:6.調(diào)調(diào) 試試輸出正確輸出正確錯(cuò)誤在前半段錯(cuò)誤在前半段錯(cuò)誤在后半段錯(cuò)誤在后半段NY收集數(shù)據(jù)收集數(shù)據(jù)組織數(shù)據(jù)組織數(shù)據(jù)研究數(shù)據(jù)研究數(shù)據(jù)間的關(guān)系間的關(guān)系提出假設(shè)提出假設(shè)證明假設(shè)證明假設(shè)糾正錯(cuò)誤糾正錯(cuò)誤能能能能不不能能不能不能YesNo What Whe

29、re When How3W1H Table6.調(diào)調(diào) 試試 歸納法:從錯(cuò)誤癥狀中找出規(guī)律,推斷根源。歸納法:從錯(cuò)誤癥狀中找出規(guī)律,推斷根源。列舉可能列舉可能的原因的原因排除不正確排除不正確的假設(shè)的假設(shè)精化余下精化余下的假設(shè)的假設(shè)證明證明假設(shè)假設(shè)收集更多數(shù)據(jù)收集更多數(shù)據(jù)糾正糾正錯(cuò)誤錯(cuò)誤有剩余有剩余能能不能不能無(wú)剩余無(wú)剩余 演繹法:普通演繹法:普通 特殊特殊 從假設(shè)中逐步排除、精化,從而導(dǎo)出錯(cuò)誤根源。從假設(shè)中逐步排除、精化,從而導(dǎo)出錯(cuò)誤根源。6.調(diào)調(diào) 試試7. 軟件可靠性軟件可靠性(Reliability)1、基本概念、基本概念 可靠性可靠性(Reliability):程序在給定的時(shí)間間隔:程序在給

30、定的時(shí)間間隔內(nèi),按照說(shuō)明書(shū)的規(guī)定,成功地運(yùn)行的概率。內(nèi),按照說(shuō)明書(shū)的規(guī)定,成功地運(yùn)行的概率。 可用性可用性(Usability):程序在給定的時(shí)間點(diǎn),按:程序在給定的時(shí)間點(diǎn),按照說(shuō)明書(shū)的規(guī)定,成功地運(yùn)行的概率。照說(shuō)明書(shū)的規(guī)定,成功地運(yùn)行的概率。 正確性正確性(Correctness):程序的功能正確。:程序的功能正確。ReliabilityCorrectnessUsability7. 軟件可靠性軟件可靠性設(shè)系統(tǒng)故障停機(jī)時(shí)間為設(shè)系統(tǒng)故障停機(jī)時(shí)間為td1, td2, ; 正常運(yùn)行時(shí)間正常運(yùn)行時(shí)間為為tu1, tu2, ; 則系統(tǒng)的則系統(tǒng)的“穩(wěn)態(tài)可用性穩(wěn)態(tài)可用性為為Availability = (S

31、hooman, 1983)其中其中 MTTF = Mean Time To Failure = MTTR = Mean Time To Repair = MTTR MTTFMTTFn1iuitn10ttu1td1tu2td2n1iditn12、估算、估算 MTTF: MTTF = 7. 軟件可靠性軟件可靠性)/I(E/IK(E1TCTT其中:其中:K為經(jīng)驗(yàn)常數(shù)典型值約在為經(jīng)驗(yàn)常數(shù)典型值約在200左右);左右); ET為測(cè)試前故障總數(shù);為測(cè)試前故障總數(shù); IT為程序長(zhǎng)度機(jī)器指令總數(shù));為程序長(zhǎng)度機(jī)器指令總數(shù)); 為測(cè)試包括調(diào)試時(shí)間;為測(cè)試包括調(diào)試時(shí)間; EC( )為時(shí)間從為時(shí)間從0至至 期間改正

32、的錯(cuò)誤數(shù)。期間改正的錯(cuò)誤數(shù)。前提假設(shè):前提假設(shè): ET / IT Constant (通常為(通常為0.5 2%) 調(diào)試中沒(méi)有引入新故障即調(diào)試中沒(méi)有引入新故障即ET與時(shí)間與時(shí)間無(wú)關(guān))無(wú)關(guān)) MTTF與剩余故障成反比與剩余故障成反比換個(gè)角度看問(wèn)題換個(gè)角度看問(wèn)題7. 軟件可靠性軟件可靠性MTTFKIE)(ETTC意義:可根據(jù)對(duì)軟件平穩(wěn)運(yùn)行時(shí)間的要求,估算需改意義:可根據(jù)對(duì)軟件平穩(wěn)運(yùn)行時(shí)間的要求,估算需改正多少個(gè)錯(cuò)誤后才能結(jié)束測(cè)試。正多少個(gè)錯(cuò)誤后才能結(jié)束測(cè)試。還有一個(gè)問(wèn)題還有一個(gè)問(wèn)題 ET = ?估算方法:估算方法: 植入故障法:植入故障法: 人為植入人為植入NS個(gè)故障,測(cè)后發(fā)現(xiàn)個(gè)故障,測(cè)后發(fā)現(xiàn)ns

33、個(gè)植入故障和個(gè)植入故障和n個(gè)個(gè)原有故障,則設(shè)原有故障,則設(shè)TSSSEnnNNnNn Hyman 分別測(cè)試法:分別測(cè)試法: 二人組分別獨(dú)立測(cè)試同一程序,甲測(cè)得故二人組分別獨(dú)立測(cè)試同一程序,甲測(cè)得故障總數(shù)為障總數(shù)為B1,乙測(cè)得為,乙測(cè)得為B2,其中有,其中有bc是相同的,是相同的,設(shè)以甲的測(cè)試結(jié)果為基準(zhǔn)即相當(dāng)于設(shè)以甲的測(cè)試結(jié)果為基準(zhǔn)即相當(dāng)于中的植中的植入故障),則設(shè)入故障),則設(shè)7. 軟件可靠性軟件可靠性T1c221cEBbBBBBBb一般多測(cè)幾個(gè)一般多測(cè)幾個(gè) 取平均。取平均。B3、正確性說(shuō)明、正確性說(shuō)明 目的:研究能證明程序正確性的自動(dòng)系統(tǒng)。目的:研究能證明程序正確性的自動(dòng)系統(tǒng)。7. 軟件可靠性

34、軟件可靠性p1p2p3pn-1pna(1) = inputa(2)a(3)a(n-1)a(n) = outputa(i):斷言斷言(assertion)證明:對(duì)任一個(gè)證明:對(duì)任一個(gè)i,執(zhí)行了,執(zhí)行了pi到到pi+1之間的語(yǔ)句后,可之間的語(yǔ)句后,可將將a(i)變?yōu)樽優(yōu)閍(i+1),則證明由,則證明由a(1)可導(dǎo)出可導(dǎo)出a(n)。若。若a(1)和和a(n)正確,且程序確定可終正確,且程序確定可終止,則證明程序正確。止,則證明程序正確。但是:即使有了正確性證明程序,軟件測(cè)試也仍然但是:即使有了正確性證明程序,軟件測(cè)試也仍然是需要的。是需要的。由于:由于:正確性證明只證明程序功能正確,但不能正確性證明

35、只證明程序功能正確,但不能驗(yàn)證動(dòng)態(tài)特性;驗(yàn)證動(dòng)態(tài)特性; 證明過(guò)程本身也可能發(fā)生錯(cuò)誤。證明過(guò)程本身也可能發(fā)生錯(cuò)誤。原理:原理:100%50%100%測(cè)試用例完成率測(cè)試用例完成率 = = 已完成用例已完成用例 / / 全部用例全部用例測(cè)試時(shí)間使用率測(cè)試時(shí)間使用率 = = 所用時(shí)間所用時(shí)間 / / 總時(shí)間總時(shí)間第一第一階段階段第二第二階段階段第三第三階段階段8.日立預(yù)測(cè)法日立預(yù)測(cè)法日立預(yù)測(cè)法日立預(yù)測(cè)法 測(cè)試期間繪制并檢查兩種曲線測(cè)試期間繪制并檢查兩種曲線1、測(cè)試完成率曲線:、測(cè)試完成率曲線:閱歷:閱歷:工程的成敗取工程的成敗取決于第一階段決于第一階段向第二階段轉(zhuǎn)向第二階段轉(zhuǎn)移斷點(diǎn)的位置,移斷點(diǎn)的位置,一般成功的工一般成功的工程其轉(zhuǎn)折點(diǎn)位程其轉(zhuǎn)折點(diǎn)位于于15%;若超;若超過(guò)過(guò)55%則破產(chǎn)則破產(chǎn)不可避免。不可避免。錯(cuò)誤發(fā)現(xiàn)率錯(cuò)誤發(fā)現(xiàn)率 = 單位時(shí)間內(nèi)發(fā)現(xiàn)的錯(cuò)誤數(shù)單位時(shí)間內(nèi)發(fā)現(xiàn)的錯(cuò)誤數(shù)時(shí)間時(shí)間峰值時(shí)間峰值時(shí)間成成功功的的工工程程失敗的失敗的工程工程極壞的工程極壞的工程8.日立預(yù)測(cè)法日立預(yù)測(cè)法2、錯(cuò)誤發(fā)現(xiàn)率曲線:、錯(cuò)誤發(fā)現(xiàn)率曲線:閱歷:閱歷:剛過(guò)峰值點(diǎn)后剛過(guò)峰值點(diǎn)后曲線的導(dǎo)數(shù)關(guān)曲線的導(dǎo)數(shù)關(guān)系到工程的成系到工程的成敗。若導(dǎo)數(shù)值敗。若導(dǎo)數(shù)值大于大于- 0.3,則,則失敗不可避免。失敗不可避免。其它可靠性預(yù)測(cè)模型其它可靠性預(yù)測(cè)模型(reliability predictio

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論