版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章,結(jié)構(gòu)化實(shí)現(xiàn),通常將編碼和測(cè)試稱為實(shí)現(xiàn)。編碼是一種程序,它將軟件設(shè)計(jì)翻譯成計(jì)算機(jī)可以理解的形式,并用某種編程語(yǔ)言編寫(xiě)。作為軟件工程的一個(gè)階段,編碼是設(shè)計(jì)的自然結(jié)果,所以程序的質(zhì)量主要取決于軟件設(shè)計(jì)的質(zhì)量。然而,所選編程語(yǔ)言的特性和編碼風(fēng)格也將對(duì)程序的可靠性、可讀性、可測(cè)試性和可維護(hù)性產(chǎn)生深遠(yuǎn)的影響。5.1編碼5.2軟件測(cè)試基礎(chǔ)5.3邏輯覆蓋5.4控制結(jié)構(gòu)測(cè)試5.5黑盒測(cè)試技術(shù)5.6測(cè)試策略5.7調(diào)試5.8軟件可靠性5.9總結(jié)5.1編碼5.1選擇一般編程語(yǔ)言。高級(jí)語(yǔ)言明顯優(yōu)于匯編語(yǔ)言,因此,除了在非常特殊的應(yīng)用領(lǐng)域(例如,對(duì)使用的執(zhí)行時(shí)間和空間有嚴(yán)格的限制;必須生成任意甚至非法的指令序列;
2、具有特殊結(jié)構(gòu)的微處理器使得在這樣的機(jī)器上不可能實(shí)現(xiàn)高級(jí)語(yǔ)言編譯器),或者在大型系統(tǒng)中執(zhí)行時(shí)間很關(guān)鍵(或者直接依賴于硬件)的一小部分代碼需要用匯編語(yǔ)言編寫(xiě),其他程序應(yīng)該總是用高級(jí)語(yǔ)言編寫(xiě)。為了使程序易于測(cè)試和維護(hù),降低生命周期的總成本,所選擇的高級(jí)語(yǔ)言應(yīng)該具有理想的模塊化機(jī)制和可讀的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);為了便于調(diào)試和提高軟件可靠性,語(yǔ)言特性應(yīng)該使編譯器能夠盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。為了降低軟件開(kāi)發(fā)和維護(hù)的成本,所選擇的語(yǔ)言應(yīng)該具有良好的獨(dú)立編譯機(jī)制。這些要求是語(yǔ)言選擇的理想標(biāo)準(zhǔn),但在實(shí)際的語(yǔ)言選擇中,我們不僅要考慮理論標(biāo)準(zhǔn),還要考慮各種實(shí)際限制。5.1.2編碼風(fēng)格源代碼的邏輯簡(jiǎn)潔明了,易于閱讀
3、和理解,這是一個(gè)好程序的重要標(biāo)準(zhǔn)。為了實(shí)現(xiàn)這一點(diǎn),應(yīng)遵循以下規(guī)則。1.程序中的文檔包括適當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⑨?、程序的可視化組織等等。2.數(shù)據(jù)描述雖然數(shù)據(jù)結(jié)構(gòu)的組織和復(fù)雜性已經(jīng)在設(shè)計(jì)過(guò)程中確定,但是數(shù)據(jù)描述的風(fēng)格是在編寫(xiě)程序時(shí)確定的。為了使數(shù)據(jù)更容易理解和維護(hù),有一些簡(jiǎn)單的原則可以遵循。3.構(gòu)建構(gòu)造語(yǔ)句時(shí)應(yīng)該遵循的原則是,每個(gè)語(yǔ)句都應(yīng)該簡(jiǎn)單直接,并且為了提高效率,程序不應(yīng)該變得太復(fù)雜。在設(shè)計(jì)和編寫(xiě)程序時(shí),應(yīng)考慮以下關(guān)于輸入/輸出風(fēng)格的規(guī)則:檢查所有輸入數(shù)據(jù);檢查輸入項(xiàng)重要組合的合法性;保持輸入格式簡(jiǎn)單;使用數(shù)據(jù)結(jié)束標(biāo)記,不要要求用戶指定數(shù)據(jù)的數(shù)量;清楚地提示交互輸入的請(qǐng)求,并指定可用的選擇或邊
4、界值;當(dāng)編程語(yǔ)言對(duì)格式有嚴(yán)格要求時(shí),輸入格式應(yīng)該一致;設(shè)計(jì)良好的輸出報(bào)告;標(biāo)記所有輸出數(shù)據(jù)。效率效率主要指處理器時(shí)間和內(nèi)存容量。雖然提出提高效率的要求是值得的,但是在進(jìn)一步討論這個(gè)問(wèn)題之前,應(yīng)該記住三個(gè)原則:第一,效率是性能要求,所以效率的要求應(yīng)該在需求分析階段確定。軟件應(yīng)該像要求的那樣有效,而不是像人類那樣有效。其次,良好的設(shè)計(jì)可以提高效率。第三,程序的效率與程序的簡(jiǎn)單性是一致的。不要為了不必要地提高效率而犧牲程序的清晰度和可讀性。5.2軟件測(cè)試的基礎(chǔ),5.2.1測(cè)試目標(biāo)邁爾斯給出了一些關(guān)于測(cè)試的規(guī)則,也可以看作是測(cè)試的目標(biāo)或定義:測(cè)試是執(zhí)行程序以發(fā)現(xiàn)程序中錯(cuò)誤的過(guò)程;一個(gè)好的測(cè)試方案是一個(gè)
5、很有可能發(fā)現(xiàn)到目前為止還沒(méi)有發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;一個(gè)成功的測(cè)試是發(fā)現(xiàn)到目前為止還沒(méi)有發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。因?yàn)闇y(cè)試的目的是暴露程序中的錯(cuò)誤,從心理學(xué)的角度來(lái)看,程序作者測(cè)試自己是不合適的。因此,在綜合測(cè)試階段,其他人通常會(huì)組成一個(gè)測(cè)試團(tuán)隊(duì)來(lái)完成測(cè)試工作。5.2.2黑盒測(cè)試和白盒測(cè)試對(duì)于軟件測(cè)試,黑盒測(cè)試方法將程序視為黑盒,根本不考慮程序的內(nèi)部結(jié)構(gòu)和處理。也就是說(shuō),黑盒測(cè)試是在程序接口上進(jìn)行的測(cè)試,它只檢查程序功能是否能夠按照規(guī)范正常使用,程序是否能夠正確接收輸入數(shù)據(jù)以生成正確的輸出信息,并保持外部信息(如數(shù)據(jù)庫(kù)或文件)的完整性。黑盒測(cè)試也被稱為功能測(cè)試。與黑盒測(cè)試方法相反,白盒測(cè)試方法的前提是可
6、以將程序視為封裝在一個(gè)透明的白盒中,即可以充分理解程序的結(jié)構(gòu)和處理過(guò)程。根據(jù)程序中的邏輯測(cè)試程序,該方法檢查程序中的每個(gè)通道是否能夠按照預(yù)定的要求正確工作。白盒測(cè)試也被稱為結(jié)構(gòu)測(cè)試。5.2.3測(cè)試標(biāo)準(zhǔn)為了設(shè)計(jì)有效的測(cè)試方案,軟件工程師必須充分理解并正確應(yīng)用指導(dǎo)軟件測(cè)試的基本標(biāo)準(zhǔn)。主要測(cè)試標(biāo)準(zhǔn)如下。所有測(cè)試都應(yīng)該可以追溯到用戶需求。測(cè)試計(jì)劃應(yīng)該在測(cè)試開(kāi)始前很久就制定出來(lái)。帕累托原理在軟件測(cè)試中的應(yīng)用。帕累托原理告訴我們,測(cè)試中發(fā)現(xiàn)的80%的錯(cuò)誤可能是由程序中20%的模塊造成的。試驗(yàn)應(yīng)從“小規(guī)?!遍_(kāi)始,逐步進(jìn)行“大規(guī)?!痹囼?yàn)。徹底的測(cè)試是不可能的。為了達(dá)到最好的測(cè)試結(jié)果,應(yīng)該有一個(gè)獨(dú)立的第三方從事
7、測(cè)試工作。5.2.4流程圖設(shè)計(jì)測(cè)試方案時(shí),通常需要仔細(xì)分析程序的控制流程。為了突出程序的控制流,可以使用流程圖(也稱為程序圖)。流程圖只描述了程序的控制流程,根本沒(méi)有顯示數(shù)據(jù)的具體操作和分支或循環(huán)的具體情況。在流程圖中,節(jié)點(diǎn)用圓圈表示,一個(gè)圓圈代表一個(gè)或多個(gè)語(yǔ)句。程序流程圖中的一系列處理塊和菱形決策塊可以映射到流程圖中的一個(gè)節(jié)點(diǎn)。流程圖中的箭頭線稱為邊,它類似于程序流程圖中的箭頭線,代表控制流程。在流程圖中,一條邊必須在一個(gè)節(jié)點(diǎn)處結(jié)束,即使該節(jié)點(diǎn)不代表任何語(yǔ)句(實(shí)際上相當(dāng)于一個(gè)空語(yǔ)句)。被邊和節(jié)點(diǎn)包圍的區(qū)域稱為區(qū)域。計(jì)算區(qū)域數(shù)量時(shí),應(yīng)包括圖外未被包圍的區(qū)域。圖5.1說(shuō)明了將程序流程圖映射到流程
8、圖的方法。圖5.1將程序流程圖映射到流程圖(a)程序流程圖;(b)流程圖,PDL程序:分類1:在記錄保持讀取記錄時(shí)執(zhí)行;2:如果記錄字段1=0 3:則處理記錄;存儲(chǔ)在緩沖區(qū)中;增量計(jì)數(shù)器;4:elseifrecardfield2=0 5:然后重置計(jì)數(shù)器;6:否則過(guò)程記錄;存儲(chǔ)在文件中;7a: end if endif 7b: enddo 8: end,圖5.2是PDL翻譯的流程圖,圖5.3是PDL繪制的包含復(fù)合條件的流程圖,圖5.3是邏輯覆蓋,這是一種設(shè)計(jì)白盒測(cè)試方案的技術(shù)。設(shè)計(jì)測(cè)試方案是測(cè)試階段的關(guān)鍵技術(shù)問(wèn)題。所謂的測(cè)試方案包括特定的測(cè)試目的(例如,要測(cè)試的特定功能)、要輸入的測(cè)試數(shù)據(jù)和預(yù)期
9、的輸出結(jié)果。測(cè)試數(shù)據(jù)和預(yù)期的輸出結(jié)果通常被稱為測(cè)試用例。不同的測(cè)試數(shù)據(jù)有不同的發(fā)現(xiàn)程序錯(cuò)誤的能力。為了提高測(cè)試效率和降低測(cè)試成本,需要選擇高效的測(cè)試數(shù)據(jù)。因?yàn)椴豢赡苓M(jìn)行詳盡的測(cè)試,所以選擇少量“最有效”的測(cè)試數(shù)據(jù)并盡可能地完成測(cè)試就更重要了。選擇性地執(zhí)行程序中一些最有代表性的路徑是徹底測(cè)試的唯一可行的替代方案。所謂的邏輯覆蓋是一系列測(cè)試過(guò)程的總稱,這些測(cè)試過(guò)程逐步進(jìn)行越來(lái)越完整的路徑測(cè)試。測(cè)試數(shù)據(jù)可以分成不同的級(jí)別來(lái)執(zhí)行(或覆蓋)程序邏輯。從覆蓋源程序語(yǔ)句的詳細(xì)分析來(lái)看,大致有以下不同的覆蓋標(biāo)準(zhǔn)。1.語(yǔ)句覆蓋為了暴露程序中的錯(cuò)誤,每個(gè)語(yǔ)句應(yīng)該至少執(zhí)行一次。語(yǔ)句覆蓋的含義是選擇足夠的測(cè)試數(shù)據(jù),以
10、便被測(cè)試程序中的每個(gè)語(yǔ)句至少執(zhí)行一次。圖5.4被測(cè)模塊的流程圖,2。決策覆蓋,也稱為分支覆蓋,意味著不僅每個(gè)語(yǔ)句必須至少執(zhí)行一次,而且每個(gè)決策的每個(gè)可能結(jié)果都應(yīng)該至少執(zhí)行一次,即每個(gè)決策的每個(gè)分支都應(yīng)該至少執(zhí)行一次。3.條件覆蓋的含義是,不僅每個(gè)語(yǔ)句至少執(zhí)行一次,而且判斷表達(dá)式中的每個(gè)條件都可以得到各種可能的結(jié)果。4。決策/條件覆蓋由于決策覆蓋不一定包括條件覆蓋,而條件覆蓋也不一定包括決策覆蓋,因此自然要提出一個(gè)同時(shí)滿足這兩個(gè)覆蓋標(biāo)準(zhǔn)的邏輯覆蓋,即決策/條件覆蓋。其含義是選擇足夠的測(cè)試數(shù)據(jù),以便判斷表達(dá)式中的每個(gè)條件都能得到各種可能的值,并且每個(gè)判斷表達(dá)式也能得到各種可能的結(jié)果。5.條件組合覆
11、蓋條件組合覆蓋是一種更強(qiáng)的邏輯覆蓋標(biāo)準(zhǔn),它要求選擇足夠的測(cè)試數(shù)據(jù),使所有可能的條件組合在每個(gè)判斷表達(dá)式中至少出現(xiàn)一次?;韭窂綔y(cè)試基本路徑測(cè)試是湯姆麥凱布提出的白盒測(cè)試技術(shù)。當(dāng)使用這種技術(shù)設(shè)計(jì)測(cè)試用例時(shí),我們首先計(jì)算過(guò)程設(shè)計(jì)結(jié)果的邏輯復(fù)雜度,并以此復(fù)雜度為指導(dǎo)定義基本的執(zhí)行路徑集。從這個(gè)基本集合中導(dǎo)出的測(cè)試用例可以保證程序中的每個(gè)語(yǔ)句至少被執(zhí)行一次,并且在執(zhí)行時(shí)每個(gè)條件將分別取真和假的值。使用基本路徑測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例的步驟如下。圖5.5平均過(guò)程的流程圖,1。根據(jù)工藝設(shè)計(jì)結(jié)果繪制相應(yīng)的流程圖;/*此過(guò)程計(jì)算指定值范圍內(nèi)不超過(guò)100個(gè)有效數(shù)字的平均值;同時(shí),計(jì)算有效數(shù)字的總和和數(shù)量。*/INT
12、ERVAL RETURNS average,totalinput,totalvalid接口接受值,最小值,最大值;類型值1.100是標(biāo)量陣列;類型平均、總計(jì)、輸入、總計(jì)有效;最小、最大和是標(biāo)量;類型I為整數(shù);1:i1;總計(jì),inputtotalvalid0sum02:執(zhí)行同時(shí)值i-999 3:與總計(jì)輸出100 4:將總計(jì)輸出增加1;5:如果值最小值為6:且值最大值為7:則總有效增量為1;sumsum valuei8:ENDIF增量1;9:ENDDO 10:IF total valid 0 11:THEN average sum/total valid;12:ELSE平均值-999;13: en
13、dif結(jié)束平均值,2。計(jì)算流程圖的循環(huán)復(fù)雜度,定量度量程序的邏輯復(fù)雜度。在獲得描述程序控制流程的流程圖后,可以使用以下三種方法之一來(lái)計(jì)算環(huán)復(fù)雜度。流程圖中的區(qū)域數(shù)等于環(huán)的復(fù)雜度。流圖G的環(huán)復(fù)雜度為V(G)E-N 2,其中E是流圖中的邊數(shù),N是流圖中的節(jié)點(diǎn)數(shù)。流圖G的環(huán)復(fù)雜度V(G)P 1,其中P是流圖中決策節(jié)點(diǎn)的數(shù)目。使用上述任何一種方法,圖55所示流程圖的循環(huán)復(fù)雜度可以計(jì)算為6。3.確定線性獨(dú)立路徑的基本集合所謂獨(dú)立路徑是指至少引入一組新的處理語(yǔ)句或程序的一個(gè)新條件的路徑,用流程圖來(lái)描述。獨(dú)立路徑至少包含一條在定義路徑之前從未使用過(guò)的邊。當(dāng)使用基本路徑測(cè)試方法設(shè)計(jì)測(cè)試用例時(shí),程序的循環(huán)復(fù)雜度
14、決定了程序中獨(dú)立路徑的數(shù)量,這個(gè)數(shù)量是確保程序中所有語(yǔ)句至少執(zhí)行一次所需的測(cè)試數(shù)量的上限。對(duì)于圖5.5中描述的平均過(guò)程,有6條獨(dú)立的路徑,因?yàn)榄h(huán)的復(fù)雜度是6。例如,下面列出了六條獨(dú)立的路徑:路徑1: 1-2-10-11-13路徑2: 1-2-10-12-13路徑3: 1-2-3-10-11-13路徑4: 1-2-3-4-5-8-9通常,在導(dǎo)出測(cè)試用例時(shí)有必要確定決策節(jié)點(diǎn)。在本例中,節(jié)點(diǎn)2、3、5、6和10是決策節(jié)點(diǎn)。4、設(shè)計(jì)能夠執(zhí)行基本集合中每條路徑的測(cè)試用例。應(yīng)該選擇數(shù)據(jù),以便在測(cè)試每條路徑時(shí)正確設(shè)置每個(gè)決策節(jié)點(diǎn)的條件??梢詼y(cè)試上述基本集合的測(cè)試用例如下:路徑1的測(cè)試用例:valuek的有效
15、輸入值,其中ki(i定義如下)valuei-999,其中2i100預(yù)期結(jié)果:基于k的正確平均值和總數(shù),注意路徑1不能獨(dú)立測(cè)試,必須作為路徑4、5和6的一部分進(jìn)行測(cè)試。路徑2的測(cè)試用例:值1-999期望結(jié)果:平均值-999,其他保留初始值,路徑5的測(cè)試用例:值I的有效輸入值,其中i100值最大,其中ki期望結(jié)果:路徑6的k個(gè)測(cè)試用例的正確平均值和總數(shù):值i=有效輸入值,其中i100期望結(jié)果:正確的平均值和總數(shù),5.4.2條件測(cè)試雖然基本的路徑測(cè)試技術(shù)簡(jiǎn)單有效,但還不夠,還需要進(jìn)一步改進(jìn)其他的控制結(jié)構(gòu)測(cè)試技術(shù)通過(guò)條件測(cè)試技術(shù)設(shè)計(jì)的測(cè)試用例可以檢查程序模塊中包含的邏輯條件。簡(jiǎn)單條件是布爾變量或關(guān)系表達(dá)式,其前面可以有一個(gè)非()運(yùn)算符。關(guān)系表達(dá)式的形式如下:E1關(guān)系運(yùn)算符E2,其中E1和E2是算術(shù)表達(dá)式,關(guān)系運(yùn)算符是下列運(yùn)算符之一:“”、“”、“”、“”、“或”。復(fù)合條件由兩個(gè)或多個(gè)簡(jiǎn)單條件、布爾運(yùn)算符和括號(hào)組成。布爾運(yùn)算符包括或()、與()和非( )。不包含關(guān)系表達(dá)式的條件稱為布爾表達(dá)式。在上述條件測(cè)試技術(shù)的基礎(chǔ)上,戴克勤提出了一種條件測(cè)試策略分支相關(guān)操作測(cè)試。如果所有布爾變量和關(guān)系運(yùn)算符在條件中只出現(xiàn)一次,并且沒(méi)有公共變量,BRO測(cè)試可以保證找到條件中的分支錯(cuò)誤和關(guān)系運(yùn)算符錯(cuò)誤。BRO測(cè)試使用條件C的約束來(lái)設(shè)計(jì)測(cè)試用例。具有n個(gè)簡(jiǎn)單條件的條件
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- RNF5-agonist-1-生命科學(xué)試劑-MCE-3083
- Acremine-F-生命科學(xué)試劑-MCE-8674
- 二零二五年度船舶船員勞動(dòng)合同及船舶航行風(fēng)險(xiǎn)承擔(dān)合同
- 2025年度汽車美容店員工勞動(dòng)合同簽訂與解除流程合同
- 2025年度航空設(shè)施面積差額補(bǔ)充合同
- 2025年度汽車銷售合同和購(gòu)車售后服務(wù)質(zhì)量監(jiān)控協(xié)議
- 施工日志填寫(xiě)中的質(zhì)量和安全事故記錄方法
- 運(yùn)動(dòng)與心理健康如何通過(guò)鍛煉提升幸福感
- 教育科技下的道德與法治教育融合探討
- 運(yùn)動(dòng)場(chǎng)地安全檢查與整改措施匯報(bào)
- 2025-2030年中國(guó)清真食品行業(yè)運(yùn)行狀況及投資發(fā)展前景預(yù)測(cè)報(bào)告
- 廣東省茂名市電白區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末質(zhì)量監(jiān)測(cè)生物學(xué)試卷(含答案)
- 《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》全文
- 山東省濱州市2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 2025年河南洛陽(yáng)市孟津區(qū)引進(jìn)研究生學(xué)歷人才50人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度軍人軍事秘密保護(hù)保密協(xié)議與信息安全風(fēng)險(xiǎn)評(píng)估合同3篇
- 蛋雞生產(chǎn)飼養(yǎng)養(yǎng)殖培訓(xùn)課件
- 數(shù)字化轉(zhuǎn)型中的職業(yè)能力重構(gòu)
- 運(yùn)用PDCA降低住院患者跌倒-墜床發(fā)生率
- 2025屆高中數(shù)學(xué)一輪復(fù)習(xí)專練:橢圓(含解析)
- 立春氣象與生活影響模板
評(píng)論
0/150
提交評(píng)論