




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中南大學醫藥信息系管理信息系統講授:陳先來講授:陳先來Email: Tel:第8 8章章 編碼與測試編碼與測試主要內容主要內容n軟件的編碼軟件的編碼編碼語言編碼語言編碼工具編碼工具n軟件的測試軟件的測試*測試的基本概念測試的基本概念黒盒測試與白盒測試黒盒測試與白盒測試測試用例設計測試用例設計測試策略測試策略面向對象系統的測試面向對象系統的測試8.1 編碼概述編碼概述1.編碼的目的編碼的目的把設計模型翻譯為用所選程序設計語言書寫的源把設計模型翻譯為用所選程序設計語言書寫的源程序。程序。設計模型設計模型源程序源程序可執行代碼可執行代碼編碼編譯、連接8.1 編碼概述編碼概述
2、2.編碼要求編碼要求正確可靠正確可靠簡明清晰簡明清晰具有較高效率具有較高效率8.1 編碼概述編碼概述3.編碼風格要求編碼風格要求使用標準的控制結構使用標準的控制結構(if, while, for, )實現源程序的文檔化實現源程序的文檔化(變量命名、注釋、書寫格(變量命名、注釋、書寫格式、式、)滿足用戶友好的輸入輸出風格滿足用戶友好的輸入輸出風格輸入:有效性檢驗;簡單、一致;顯示提示信息輸出:標志輸出數據;使良好的輸出格式;8.2 編碼語言與編碼工具編碼語言與編碼工具1. 編碼語言的發展編碼語言的發展第一代:機器語言第一代:機器語言(0 1)第二代:匯編語言第二代:匯編語言(MASM, )第三代
3、:過程化語言第三代:過程化語言(C, C#, Basic, Delphi, )第四代:非過程化語言第四代:非過程化語言8.2 編碼語言與編碼工具編碼語言與編碼工具2.常用的編程語言常用的編程語言基礎語言:基礎語言:FORTRAN、COBOL、BASIC結構化語言:結構化語言:PASCAL、C、Ada 面向對象語言:面向對象語言:C+、Java、C#腳本語言:腳本語言:JSP、ASP數據操作語言:數據操作語言:SQL、FoxPro、DBase8.2 編碼語言與編碼工具編碼語言與編碼工具3.選擇編程語言的標準選擇編程語言的標準應用領域應用領域FORTRAN:科學計算COBOL:事務處理Ada、C:
4、系統軟件開發SQL、FoxPro:數據操作算法與計算復雜性算法與計算復雜性數據結構的復雜性數據結構的復雜性效率考慮效率考慮8.2 編碼語言與編碼工具編碼語言與編碼工具年代年代應用領域應用領域主要語言主要語言其它語言其它語言以前以前商業商業COBOLAssembler科學計算科學計算FORTRANALGOL、BASIC、APL系統系統AssemblerForth人工智能人工智能LISPSNOBOL現在現在商業商業COBOL、C+、C#、JavaC、PL/1科學計算科學計算FORTRAN、C、C+、JavaBASIC系統系統C、C+、JavaAda、Modula人工智能人工智能LISP、Prolo
5、g8.2 編碼語言與編碼工具編碼語言與編碼工具3.編碼工具編碼工具Eclipse (Java, 也有也有支持支持C/C+、COBOL、PHP等編程語言的插件可用等編程語言的插件可用)Visual Studio (包含包含Visual Basic、Visual C+、Visual J+和和Visual FoxPro,以及以及創建創建 DHTML 所需要的所需要的 Visual InterDev)Delphi(Pascal語言)語言)PowerBuilder (PowerScript語言語言,可以直接與可以直接與Sybase、SQLServer、Informix、Oracle等大型數等大型數據庫連
6、接據庫連接)NetBeans(支持(支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和和C/C+)8.3 編碼示例編碼示例n略講略講8.4 軟件測試的基本概念軟件測試的基本概念1.軟件測試的目的與任務軟件測試的目的與任務測試測試(Testing) 目的:目的:發現程序錯誤;發現程序錯誤;任務:任務:通過在計算機上執行程序,暴露程序中通過在計算機上執行程序,暴露程序中潛在的錯誤。潛在的錯誤。糾錯糾錯(Debugging)目的:目的:定位和糾正錯誤;定位和糾正錯誤;任務:任務:消除軟件故障,保證程序的可靠運行。消除軟件故障,保證程序的可靠運行。8.4 軟件測試的基本
7、概念軟件測試的基本概念圖8.3 測試和糾錯信息流程8.4 軟件測試的基本概念軟件測試的基本概念2.測試的特性測試的特性挑剔性:挑剔性:測試是對質量的監督與保證,目的是挑測試是對質量的監督與保證,目的是挑錯。錯。復雜性:復雜性:設計測試用例是一項需要細致和高度技設計測試用例是一項需要細致和高度技巧的工作。巧的工作。不徹底性:不徹底性:程序測試只能證明錯誤存在,但不能程序測試只能證明錯誤存在,但不能證明錯誤不存在。證明錯誤不存在。經濟性:經濟性:選擇一些典型的、有代表性的測試用例選擇一些典型的、有代表性的測試用例進行有限測試。應遵循經濟性原則。進行有限測試。應遵循經濟性原則。8.4 軟件測試的基本
8、概念軟件測試的基本概念3. 測試的種類測試的種類靜態分析靜態分析(程序不執行程序不執行)程序程序測試測試動態測試動態測試(程序執行程序執行)靜態分析器分析靜態分析器分析代碼評審代碼評審(人工方式人工方式)代碼會審代碼會審走查走查辦工桌檢查辦工桌檢查黑盒測試黑盒測試(測試程序功能測試程序功能)白盒測試白盒測試(測試程序結構測試程序結構)(自動方式自動方式)8.4 軟件測試的基本概念軟件測試的基本概念n靜態分析:靜態分析:通過被測程序的靜態審查,發現代碼中通過被測程序的靜態審查,發現代碼中潛在的錯誤。潛在的錯誤。靜態分析器分析:靜態分析器分析:借助靜態分析器在計算機上以自動借助靜態分析器在計算機上
9、以自動方式進行檢查,但不要求程序本身在計算機上運行。方式進行檢查,但不要求程序本身在計算機上運行。代碼評審:代碼評審:用人工方式進行脫機完成。用人工方式進行脫機完成。分為:代碼會審、走查和辦公作桌檢查。代碼會審:程序員逐句朗讀并解釋程序,其他人員集中精力,捕捉可能存在的問題。參與人員:參與人員:設計人員、測試人員和程序員。優點:優點:同行之間的互相啟發,更易發現錯誤,有利于互相學習交流經驗;缺點:缺點:人力、物力投入大。8.4 軟件測試的基本概念軟件測試的基本概念l走查:根據已經提出的測試用例,用人工的方法來運行程序,即讓人代替機器沿著程序的邏輯“走”一遍。l目的:目的:不斷地提出對程序的詢問
10、,結合疑問展開討論和爭議,以發現更多的問題。l參與人員:參與人員:測試人員和程序員l辦公桌檢查:由一個人(程序員自己)參加的代碼復審,可按錯誤檢查表來檢查程序或走查程序。n動態測試:動態測試:墨盒測試、白盒測試8.4 軟件測試的基本概念軟件測試的基本概念測試用例測試用例=測試數據測試數據+期望結果期望結果測試結果測試結果=測試數據測試數據+期望結果期望結果+實際結果實際結果4.測試的文檔:測試的文檔:測試計劃、測試報告測試計劃:測試計劃:測試計劃的主體是測試計劃的主體是“測試內容說明測試內容說明”,包括測試項目的名稱、各項測試的目的、,包括測試項目的名稱、各項測試的目的、步驟和進度,以及測試用
11、例的設計等。步驟和進度,以及測試用例的設計等。測試報告:測試報告:測試報告的主體是測試報告的主體是“測試結果測試結果”,它包含測試項目的名稱、實際測試結果與期望它包含測試項目的名稱、實際測試結果與期望測試結果比較,發現問題,以及測試達到的效測試結果比較,發現問題,以及測試達到的效果。果。8.4 軟件測試的基本概念軟件測試的基本概念5.測試過程測試過程項目一開始就應該考慮測試過程,制定測試計項目一開始就應該考慮測試過程,制定測試計劃,然后管理測試計劃的實施。劃,然后管理測試計劃的實施。制定測試過程是軟件工程成熟的表現。制定測試過程是軟件工程成熟的表現。8.5 黑盒測試和白盒測試黑盒測試和白盒測試
12、1.黑盒測試黑盒測試等價分類法等價分類法邊界值分析法邊界值分析法錯誤猜錯法錯誤猜錯法8.5 黑盒測試和白盒測試黑盒測試和白盒測試等價分類法(等價分類法(equivalence partitioning) 等價分類:等價分類:把輸入數據的可能值劃分為若干個等價類,把輸入數據的可能值劃分為若干個等價類,使每類中的任何一個測試用例,都能代表同一等價類中的使每類中的任何一個測試用例,都能代表同一等價類中的其它測試用例。其它測試用例。 采用等價分類法應注意以下兩點:采用等價分類法應注意以下兩點: 既要考慮有效等價類,又要考慮無效等價類;既要考慮有效等價類,又要考慮無效等價類; 每個無效等價類至少要用一個
13、測試用例,不然可能漏掉某每個無效等價類至少要用一個測試用例,不然可能漏掉某一類錯誤,但允許若干個有效等價類合用一個測試用例,一類錯誤,但允許若干個有效等價類合用一個測試用例,以便進一步減少測試的次數。以便進一步減少測試的次數。8.5 黑盒測試和白盒測試黑盒測試和白盒測試例例1:某工廠公開招工,規定報名者年齡在某工廠公開招工,規定報名者年齡在16周歲至周歲至35周周歲歲(在在1967年年2月到月到1986年年3月月)。如果出生年月不在上述范圍。如果出生年月不在上述范圍內,將拒絕接受,并顯示內,將拒絕接受,并顯示“年齡不合格年齡不合格”等出錯信息。試用等出錯信息。試用等價分類法設計這一程序功能的測
14、試用例。等價分類法設計這一程序功能的測試用例。8.5 黑盒測試和白盒測試黑盒測試和白盒測試第一步:劃分等價類第一步:劃分等價類輸入數據輸入數據有效等價類有效等價類無效等價類無效等價類出生年月出生年月(1)6位數字字符位數字字符(2)有非數字字符有非數字字符(3)少于少于6個數字字符個數字字符(4)多于多于6個數字字符個數字字符對應數值對應數值(5)在在196702-198603之間之間(6)198603月份對應數值月份對應數值(8)在在1-12之間之間(9)等于等于“0”(10)128.5 黑盒測試和白盒測試黑盒測試和白盒測試第二步:設計有效等價類需要的測試用例第二步:設計有效等價類需要的測試
15、用例測試數據測試數據期望結果期望結果測試范圍測試范圍197011輸入有效輸入有效(1)、(5)、(8)8.5 黑盒測試和白盒測試黑盒測試和白盒測試第三步:為每一無效等價類設計一個測試用例第三步:為每一無效等價類設計一個測試用例測試數據測試數據期望結果期望結果測試范圍測試范圍MAY,70輸入無效輸入無效(2)有非數字字符有非數字字符19705輸入無效輸入無效(3)少于少于6個數字字符個數字字符1968011輸入無效輸入無效(4)多于多于6個數字字符個數字字符195512年齡不合格年齡不合格(6) 198603196200輸入無效輸入無效(9)等于等于“0”197222輸入無效輸入無效(10) 1
16、2例例2:根據輸入判斷三角形的形狀:根據輸入判斷三角形的形狀測試場景:測試場景:一個程序讀入3個整數,把這三個數值看作一個三角形的3條邊的長度值。這個程序要打印出信息,說明這個三角形是不等邊的、是等腰的、還是等邊的分析:分析:設三角形的3條邊分別為A,B,C。如果它們能夠構成三角形的3條邊,必須滿足:A0,B0,C0,且A+BC,B+CA,A+CB;如果是等腰的,還要判斷A=B,或B=C,或A=C;如果是等邊的,則需判斷是否A=B,且B=C,且A=C。創建等價類表:創建等價類表:輸入條件有效等價類無效等價類是否構成三角形(A0) (1)(B0) (2)(C0) (3)(A+BC) (4)(B+
17、CA) (5)(A+CB) (6)(A0) (7)(B0) (8)(C0) (9)(A+BC)(10)(B+CA)(11)(A+CB)(12)是否等腰三角形(A=B) (13)(B=C) (14)(C=A) (15)(AB)and(BC)and(CA)(16)是否等邊三角形(A=B)and(B=C)and(C=A) (17)(AB) (18)(BC) (19)(CA) (20)設計等價類:設計等價類:序號 【A,B,C】覆蓋等價類輸出1【3,4,5】 ,一般三角形2【0,1,2】 (7)不能構成三角形3【1,0,2】 (8)4【1,2,0】 (9)5【1,2,3】 (10)6【1,3,2】 (
18、11)7【3,1,2】 (12)8【3,3,4】 ,等腰三角形9【3,4,4】 ,10【3,4,3】 ,11【3,4,5】 ,非等腰三角形12【3,3,3】 ,是等邊三角形13【3,4,4】 ,非等邊三角形14【3,4,3】 ,15【3,3,4】 ,8.5 黑盒測試和白盒測試黑盒測試和白盒測試邊界值分析法(邊界值分析法(Boundary Value Analysis) 實踐表明,程序員在處理邊界情況時,很容易因忽略或考實踐表明,程序員在處理邊界情況時,很容易因忽略或考慮不周發生編碼錯誤。如數組容量、循環次數以及輸入數慮不周發生編碼錯誤。如數組容量、循環次數以及輸入數據與輸出數據在邊界值附近程序
19、出錯概率往往較大。據與輸出數據在邊界值附近程序出錯概率往往較大。 采用邊界值分析法就是要這樣來選擇測試用例,使得被測采用邊界值分析法就是要這樣來選擇測試用例,使得被測試程序能在邊界值及其附近運行,從而更有效地暴露程序試程序能在邊界值及其附近運行,從而更有效地暴露程序中潛在的錯誤。中潛在的錯誤。8.5 黑盒測試和白盒測試黑盒測試和白盒測試 例如,程序可能設有語句例如,程序可能設有語句If(196702=value(birthdate)=198603) then read(birthdate) else write “invalid age”寫成寫成35周歲周歲16周歲周歲196702198603
20、196701198604最大符合年齡最大符合年齡最小符合年齡最小符合年齡恰大于合格年齡恰大于合格年齡恰小于合格年齡恰小于合格年齡輸入無效輸入有效合格年齡不合格年齡8.5 黑盒測試和白盒測試黑盒測試和白盒測試輸入等輸入等價類價類測試用例說明測試用例說明測試測試數據數據期望期望結果結果選取理由選取理由月份對月份對應數值應數值月份為月份為1月份為月份為12月份月份12196801198512196800197413最小月份最小月份最大月份最大月份恰小于最小月份恰小于最小月份恰大于最大月份恰大于最大月份輸入無效輸入有效案例:某報表處理系統要求用戶輸入處理報表的日期,日期限制在2003年1月至2008年
21、12月,即系統只能對該段期間內的報表進行處理,如日期不在此范圍內,則顯示輸入錯誤信息。系統日期規定由年、月的6位數字字符組成,前四位代表年,后兩位代表月。如何用邊界值分析法設計測試用例,來測試程序的日期檢查功能?例例2: “報表日期”邊界值分析法測試用例輸入條件輸入條件測試用例說明測試用例說明測試數據測試數據期望結果期望結果選取理由選取理由報表日期類型及長度1個數字字符5顯示出錯僅有1個合法字符6個數字字符200305輸入有效類型及長度均有效5個數字字符20035顯示出錯比有效長度少17個數字字符2003005顯示出錯比有效長度多1有1個非數字字符2003.5顯示出錯只有1個非法字符全是非數字
22、字符MAY-顯示出錯6個非法字符年份范圍年份為2003年200305輸入有效最小年份年份為2008年200805輸入有效最大年份年份2008年200905顯示出錯剛好大于最大年份月份范圍月份為1月200301輸入有效最小月份月份為12月200312輸入有效最大月份月份12200313顯示出錯剛好大于最大月份8.5 黑盒測試和白盒測試黑盒測試和白盒測試錯誤猜測法錯誤猜測法 猜錯就是猜測被測程序放在哪些地方容易出錯,然后針對猜錯就是猜測被測程序放在哪些地方容易出錯,然后針對可能的薄弱環節來設計測試用例。可能的薄弱環節來設計測試用例。 一般先用等價分類法和邊界值分析法設計測試用例,然后一般先用等價分
23、類法和邊界值分析法設計測試用例,然后用猜錯法補充一些例子作為輔助的手段。用猜錯法補充一些例子作為輔助的手段。 例:上例中的出生年月次序顛倒。將例:上例中的出生年月次序顛倒。將“197512”誤輸為誤輸為“121975”其它黑盒測試法其它黑盒測試法 因果圖因果圖8.5 黑盒測試和白盒測試黑盒測試和白盒測試主要技術:邏輯覆蓋測試和路徑測試主要技術:邏輯覆蓋測試和路徑測試2.白盒測試白盒測試(結構測試法)知道產品的內部過程,通過檢測產品的內部動作是否按照說明書的規定正常運行來考察產品是否合格的一種測試方法8.5 黑盒測試和白盒測試黑盒測試和白盒測試邏輯覆蓋測試:邏輯覆蓋測試:用流程圖來設計測計用例,
24、重點考察圖中的判定框。按照用流程圖來設計測計用例,重點考察圖中的判定框。按照對被測試程序所作測試的有效程度由弱到強區分:對被測試程序所作測試的有效程度由弱到強區分: 語句覆蓋:語句覆蓋:每條語句至少執行一次。每條語句至少執行一次。 判定覆蓋:判定覆蓋:每一判定的每個分支至少執行一次。每一判定的每個分支至少執行一次。 條件覆蓋:條件覆蓋:每一判定中的每個條件,分別按每一判定中的每個條件,分別按“真真”、“假假”至少各執行一次。至少各執行一次。 判定判定/條件覆蓋:條件覆蓋:同時滿足判定覆蓋和條件覆蓋的要求。同時滿足判定覆蓋和條件覆蓋的要求。 條件組合覆蓋:條件組合覆蓋:求出判定中所有條件的各種可
25、能組合值,每求出判定中所有條件的各種可能組合值,每一可能的條件子和至少執行一次。一可能的條件子和至少執行一次。8.5 黑盒測試和白盒測試黑盒測試和白盒測試p5種測試標準示例種測試標準示例覆蓋標準覆蓋標準程序結構舉例程序結構舉例測試用例應滿足的條件測試用例應滿足的條件語句覆蓋語句覆蓋A B=.T.判定覆蓋判定覆蓋A B=.T.,A B=.F.ABTFABTF8.5 黑盒測試和白盒測試黑盒測試和白盒測試覆蓋標準覆蓋標準程序結構舉例程序結構舉例測試用例應滿足的條件測試用例應滿足的條件條件覆蓋條件覆蓋A=.T.,A=.F.B=.T.,B=.F.判定判定/條件覆蓋條件覆蓋A B=.T.,A B=.F.A
26、=.T.,A=.F.B=.T.,B=.F.條件組合覆蓋條件組合覆蓋A=.T. B=.T.A=.T. B=.F.A=.F. B=.T.A=.F. B=.F.ABTFABTFp5種測試標準示例種測試標準示例(續續)ABTF8.5 黑盒測試和白盒測試黑盒測試和白盒測試冒泡排序算法流程圖冒泡排序算法流程圖8.5 黑盒測試和白盒測試黑盒測試和白盒測試執行不到執行不到測試數據測試數據8,4不能發現錯誤不能發現錯誤“ 寫成寫成=”語句覆蓋:語句覆蓋:輸入先大后小的輸入先大后小的兩個數,即可覆兩個數,即可覆蓋所有語句。蓋所有語句。如:如:A=8,4, K=28.5 黑盒測試和白盒測試黑盒測試和白盒測試測試數據
27、測試數據8,4,8不能發現錯誤不能發現錯誤“ 寫成寫成=”測試數據測試數據8,4,4不能發現錯誤不能發現錯誤“ 寫成寫成=”判定覆蓋:判定覆蓋:在語句在語句覆蓋的基礎上,增加覆蓋的基礎上,增加兩個能使程序從非正兩個能使程序從非正常出口常出口(AE標志標志)退出退出的測試數據。的測試數據。如:如:A=8,4,8,K=3 ,A=8,4,4,K=3或或 A=8,4,8,4,K=48.5 黑盒測試和白盒測試黑盒測試和白盒測試條件覆蓋:條件覆蓋:使復合條件中的每個條件分別按使復合條件中的每個條件分別按“真真”、“假假”出現一次,才能克服前述缺點。因此,可以選擇如下測試數出現一次,才能克服前述缺點。因此,
28、可以選擇如下測試數據據A=8,4,9,6,K=4, A=8,4,8,4,K=4就能對程序實現條件覆蓋。此時就能對程序實現條件覆蓋。此時Ai(或或Aj)大于、等于或小大于、等于或小于于Ai-1(或或Aj-1)的的3種將分別至少出現一次,無論把種將分別至少出現一次,無論把“ ”誤寫為誤寫為“”或或“=”,都可用這兩組數據檢查出來。,都可用這兩組數據檢查出來。因此,對于本例測試數據可以選擇因此,對于本例測試數據可以選擇A=8,4,9,6,K=4,A=8,4,8,4,K=4或合成一組或合成一組A=8,4,8,4,9,6,K=68.5 黑盒測試和白盒測試黑盒測試和白盒測試p判定覆蓋與條件覆蓋差別:判定覆
29、蓋與條件覆蓋差別:前者把判定看成一個整體,后者則著眼于其中的一個前者把判定看成一個整體,后者則著眼于其中的一個條件。條件。如果一個判定含有一個以上條件,采用判定覆蓋可能如果一個判定含有一個以上條件,采用判定覆蓋可能出現如下漏洞,即判定中有些條件得到測試,另一些條出現如下漏洞,即判定中有些條件得到測試,另一些條件卻被忽略,從而掩蓋程序的錯誤。件卻被忽略,從而掩蓋程序的錯誤。條件覆蓋要求對每一條件進行單獨的檢查,一般來說條件覆蓋要求對每一條件進行單獨的檢查,一般來說它的差錯能力比判定覆蓋強,但也不盡然。它的差錯能力比判定覆蓋強,但也不盡然。8.5 黑盒測試和白盒測試黑盒測試和白盒測試A真真A假假B
30、真真B假假A假假,B真真A真真,B假假A BTFA BTFA的邏輯值的邏輯值 B的邏輯值的邏輯值 可能的測試數可能的測試數據據用以上數據測試用以上數據測試的結果的結果 只覆蓋左分支只覆蓋左分支只覆蓋右分支只覆蓋右分支只覆蓋一個分支的條件覆蓋的實例只覆蓋一個分支的條件覆蓋的實例8.5 黑盒測試和白盒測試黑盒測試和白盒測試條件組合覆蓋條件組合覆蓋求出判定中所有條件的各種可能組合值,每一可能的條件組求出判定中所有條件的各種可能組合值,每一可能的條件組合至少執行一次合至少執行一次8.5 黑盒測試和白盒測試黑盒測試和白盒測試路徑測試法路徑測試法 程序圖:程序圖:是一種簡化的流程圖。是一種簡化的流程圖。1
31、11流程圖流程圖程序圖程序圖8.5 黑盒測試和白盒測試黑盒測試和白盒測試流程圖流程圖程序圖的說明:程序圖的說明:順序執行的多個節點,合并畫成一個結點。順序執行的多個節點,合并畫成一個結點。含有復合條件的判定框,分解成幾個簡單的條件判定框。含有復合條件的判定框,分解成幾個簡單的條件判定框。AB P Q 1AB P P A=B Q 合并節點合并節點的程序圖的程序圖分解為簡單分解為簡單條件后的程條件后的程序圖序圖TFTTF8.5 黑盒測試和白盒測試黑盒測試和白盒測試從流程圖導出程序圖實例從流程圖導出程序圖實例(AE)(AE)8.5 黑盒測試和白盒測試黑盒測試和白盒測試129347856(AE)(AE
32、)123456789abcdefghijklmqn復合判定條件復合判定條件被分解成簡單被分解成簡單的判定條件的判定條件8.5 黑盒測試和白盒測試黑盒測試和白盒測試路徑測試:路徑測試:對程序圖中每一條可能的程序執行路徑至少測對程序圖中每一條可能的程序執行路徑至少測試一次。如果程序中含有循環試一次。如果程序中含有循環(在程序中表現為環在程序中表現為環),則每個,則每個循環至少執行一次。循環至少執行一次。8.5 黑盒測試和白盒測試黑盒測試和白盒測試 路徑測試的特征:路徑測試的特征:滿足結構測試的最低要求滿足結構測試的最低要求(完全覆蓋完全覆蓋):語句覆蓋語句覆蓋+ +判判定覆蓋定覆蓋。從對路徑測試的
33、要求可見,它本身就包含了語句。從對路徑測試的要求可見,它本身就包含了語句覆蓋和判定覆蓋覆蓋和判定覆蓋( (在程序圖上分別稱為點覆蓋與邊覆蓋在程序圖上分別稱為點覆蓋與邊覆蓋) )。1243abced測試路徑測試路徑覆蓋節點覆蓋節點/邊邊覆蓋標準覆蓋標準acd(1),(2),(3),(4)點覆蓋點覆蓋acd, bea, b, c, d邊覆蓋邊覆蓋acd, beae, bcd(1),(2),(3),(4)/a, b, c, d路徑覆蓋路徑覆蓋8.5 黑盒測試和白盒測試黑盒測試和白盒測試有利于安排循環測試有利于安排循環測試單循環結構的測試:單循環結構的測試:1)零次循環,即不執行循環體,直接從循環入口
34、跳到出口;零次循環,即不執行循環體,直接從循環入口跳到出口;2)一次循環,循環體僅執行一次,主要檢查在循環初始化中一次循環,循環體僅執行一次,主要檢查在循環初始化中可能存在錯誤;可能存在錯誤;3)典型次數的循環;典型次數的循環;4)最大值次循環,如果循環次數存在最大值,應按次最大值最大值次循環,如果循環次數存在最大值,應按次最大值進行循環,需要時還可以增加比最大次數少一次或多一次的進行循環,需要時還可以增加比最大次數少一次或多一次的循環測試。循環測試。 多重嵌套循環:多重嵌套循環:可以對某一指定的循環層遍歷單循環測試,可以對某一指定的循環層遍歷單循環測試,而在其它各循環層取最小或典型次數進行循
35、環測試。而在其它各循環層取最小或典型次數進行循環測試。8.5 黑盒測試和白盒測試黑盒測試和白盒測試 選擇測試路徑的原則選擇測試路徑的原則選擇具有功能含義的路徑;選擇具有功能含義的路徑;盡量用短路徑代替長路徑;盡量用短路徑代替長路徑;從上一條測試路徑到下一條測試路徑,應盡量減從上一條測試路徑到下一條測試路徑,應盡量減少變動的部分少變動的部分( (包括變動的邊和節點包括變動的邊和節點) );由簡入繁,如果可能,應先考慮不含循環的測試由簡入繁,如果可能,應先考慮不含循環的測試路徑,然后補充對循環的測試;路徑,然后補充對循環的測試;除非不得已除非不得已( (如為了要覆蓋某條邊如為了要覆蓋某條邊) ),
36、不要選取沒有,不要選取沒有明顯功能含義的復雜路徑。明顯功能含義的復雜路徑。8.5 黑盒測試和白盒測試黑盒測試和白盒測試129347856(AE)(AE)abcdefghkjlmn=q129347856(AE)(AE)abcdefghkjlmn=q129347856(AE)(AE)abcdefghkjlmn=qiii(1)(2)(3)8.5 黑盒測試和白盒測試黑盒測試和白盒測試129347856(AE)(AE)abcdefghkjlmn=qi129347856(AE)(AE)abcdefghkjlmn=qi129347856(AE)(AE)abcdefghkjlmn=qi(4)(5)(6)8.6
37、 測試用例設計測試用例設計1. 黑盒測試用例設計黑盒測試用例設計測試三角形分類程序,該程序的功能是:讀入三角形邊長測試三角形分類程序,該程序的功能是:讀入三角形邊長的的3個整數,判斷它們能否構成三角形。如果能夠,則輸個整數,判斷它們能否構成三角形。如果能夠,則輸出三角形是等邊、等腰或任意三角形的分類信息。出三角形是等邊、等腰或任意三角形的分類信息。8.6 測試用例設計測試用例設計123458910117128.6 測試用例設計測試用例設計2. 白盒測試用例設計白盒測試用例設計P250-P2538.7 多模塊程序的測試策略多模塊程序的測試策略1. 測試的層次性:測試的層次性:單元測試、集成測試、
38、確認測試、系統測試。單元測試、集成測試、確認測試、系統測試。模塊模塊單元單元測試測試單元單元測試測試單元單元測試測試集成集成測試測試確認確認測試測試系統系統測試測試模塊模塊模塊模塊測試報告測試報告測試報告測試報告軟件設計軟件設計信息信息軟件需求軟件需求信息信息測試報告測試報告測試報告測試報告已組裝已組裝軟件軟件已確認已確認軟件軟件可運行可運行的系統的系統系統的其系統的其它成分它成分編碼階段編碼階段測試階段測試階段驗收階段驗收階段8.7 多模塊程序的測試策略多模塊程序的測試策略2. 單元測試(模塊測試):單元測試(模塊測試):層次測試第一步,整體測試的基礎層次測試第一步,整體測試的基礎模塊單元測
39、試單元測試單元測試集成測試確認測試系統測試模塊模塊測試報告測試報告軟件設計信息軟件需求信息測試報告測試報告已組裝軟件已確認軟件可運行的系統系統的其它成分編碼階段測試階段驗收階段8.7 多模塊程序的測試策略多模塊程序的測試策略目的:目的:通過對模塊的靜態分析與動態測試,使其代碼達到模通過對模塊的靜態分析與動態測試,使其代碼達到模塊說明的需求。塊說明的需求。任務:任務:對模塊代碼進行編譯,發現并糾正其語法錯誤;對模塊代碼進行編譯,發現并糾正其語法錯誤;進行靜態分析,驗證模塊結構及其內部調用序列是否正確;進行靜態分析,驗證模塊結構及其內部調用序列是否正確;確定模塊的測試策略,并據此設計出一組測試用例
40、和必要的測確定模塊的測試策略,并據此設計出一組測試用例和必要的測試軟件;試軟件;用所選測試用例測試模塊,直至滿足測試終止標準為止。用所選測試用例測試模塊,直至滿足測試終止標準為止。靜態分析與動態測試的重點,均應放在模塊內部的重要執行路靜態分析與動態測試的重點,均應放在模塊內部的重要執行路徑、出錯處理路徑和局部數據結構,也要重視模塊的對外接口。徑、出錯處理路徑和局部數據結構,也要重視模塊的對外接口。編制測試報告。編制測試報告。8.7 多模塊程序的測試策略多模塊程序的測試策略單元測試的實施步驟:單元測試的實施步驟:編譯編譯靜態分析器靜態分析器分析分析代碼評審代碼評審動態測試動態測試檢查代碼檢查代碼
41、中的語法中的語法錯誤錯誤檢查代碼中的檢查代碼中的結構性錯誤結構性錯誤重點發現功重點發現功能性錯誤能性錯誤發現程序在結發現程序在結構、功能與編構、功能與編碼風格方面的碼風格方面的問題和錯誤。問題和錯誤。測試軟件:測試軟件:在多模塊程序中,每一模塊都可能調用其它模塊或者被其它模塊所調用。所以在單元測試時,需要為被測試模塊編制若干測試軟件,給它的上級模塊或下級模塊作替身。代替上級模塊的稱為測試驅動模塊,代替下級模塊的稱為測試樁模塊。8.7 多模塊程序的測試策略多模塊程序的測試策略3. 集成測試:集成測試:通過單元測試的模塊要按照一定的策略組通過單元測試的模塊要按照一定的策略組裝為完整的程序,在該組裝
42、過程中進行的測試稱為集裝為完整的程序,在該組裝過程中進行的測試稱為集成測試或組裝測試。成測試或組裝測試。模塊單元測試單元測試單元測試集成測試確認測試系統測試模塊模塊測試報告測試報告軟件設計信息軟件需求信息測試報告測試報告已組裝軟件已確認軟件可運行的系統系統的其它成分編碼階段測試階段驗收階段8.7 多模塊程序的測試策略多模塊程序的測試策略集成測試的原因:集成測試的原因: 單元測試中使用了測試軟件,與它們所代替的模塊單元測試中使用了測試軟件,與它們所代替的模塊并不完全等效,故單元測試本身可能有不充分的地并不完全等效,故單元測試本身可能有不充分的地方,存在缺陷。方,存在缺陷。 各模塊之間可能有比較復
43、雜的接口,稍有疏忽就易各模塊之間可能有比較復雜的接口,稍有疏忽就易出錯。例如,有些數據在穿過接口時會不慎丟失,出錯。例如,有些數據在穿過接口時會不慎丟失,有些全局性數據在引用中可能出問題等。有些全局性數據在引用中可能出問題等。 有些在單個模塊中可以允許的誤差,組裝后的積累有些在單個模塊中可以允許的誤差,組裝后的積累可能達到不能容忍的地步,或者模塊的分功能似乎可能達到不能容忍的地步,或者模塊的分功能似乎正常,組裝后也可能產生不了預期的綜合功能。正常,組裝后也可能產生不了預期的綜合功能。8.7 多模塊程序的測試策略多模塊程序的測試策略集成測試的目的:集成測試的目的:將經過單元測試的模塊逐步組裝成具
44、將經過單元測試的模塊逐步組裝成具有良好一致性的完整程序。有良好一致性的完整程序。集成測試的任務:集成測試的任務:制定集成測試實施策略:制定集成測試實施策略:自頂向下,由低向上,或兩頭自頂向下,由低向上,或兩頭逼近策略。逼近策略。確定集成測試的實施步驟,設計測試用例。確定集成測試的實施步驟,設計測試用例。二者的選擇,二者的選擇,應有利于揭露在接口關系、訪問全局性數據應有利于揭露在接口關系、訪問全局性數據( (公用文件與公用文件與數據結構數據結構) )、模塊調用序列和出錯處理等方面存在的隱患。、模塊調用序列和出錯處理等方面存在的隱患。進行測試,即在已通過單元測試的基礎上,逐一地添加進行測試,即在已
45、通過單元測試的基礎上,逐一地添加模塊。模塊。每并入一個模塊,除進行新的測試項目外,還須重每并入一個模塊,除進行新的測試項目外,還須重復進行先前已經進行過的測試,后者也稱為回歸測試。復進行先前已經進行過的測試,后者也稱為回歸測試。8.7 多模塊程序的測試策略多模塊程序的測試策略集成測試的策略:集成測試的策略:自頂向下測試:自頂向下測試:從頂模塊開始,沿被測程序的結構圖從頂模塊開始,沿被測程序的結構圖逐漸向下測試。按照移動路線的差異,又可區分為兩種逐漸向下測試。按照移動路線的差異,又可區分為兩種不同的實施策略:不同的實施策略:M1M2M3M4M5M6M7M8多模塊程序p先廣度后深度實施步驟。先廣度
46、后深度實施步驟。組裝順序:組裝順序:M1-M2-M3-M4-M5-M6-M7-M8p先深度后廣度實施步驟。先深度后廣度實施步驟。組裝順序:組裝順序:M1-M2-M5-M8-M6-M3-M4-M78.7 多模塊程序的測試策略多模塊程序的測試策略M1M2S3S4M5S6S8測試M1M1S2S3S4M1M2S3S4S5S6先深度后廣度的測試時所需的樁模塊先深度后廣度的測試時所需的樁模塊測試M1-M2-M5測試M1-M2M1M2S3S4M5M6S8測試M1-M2-M5-M68.7 多模塊程序的測試策略多模塊程序的測試策略M1M2S3S4M5M6M8M1M2M3S4M5M6M8M1M2M3M4M5M6M
47、8測試M1-M2-M5-M6-M8測試M1-M2-M5-M6-M8-M3測試M1-M2-M5-M6-M8-M3-M48.7 多模塊程序的測試策略多模塊程序的測試策略自低向上測試:自低向上測試:(1)(1)從下一層模塊中找出一個沒有下級模塊的模塊,由下向上從下一層模塊中找出一個沒有下級模塊的模塊,由下向上地逐加新模塊,組成程序中的一個子系統或模塊群;地逐加新模塊,組成程序中的一個子系統或模塊群;(2)(2)從另一個子系統或群中選出另一個無下級模塊的模塊,仿從另一個子系統或群中選出另一個無下級模塊的模塊,仿照前一步組成又一個子系統;照前一步組成又一個子系統;(3)(3)重復上一步,直至得出所有的子
48、系統,把它們組裝為完整重復上一步,直至得出所有的子系統,把它們組裝為完整的程序。的程序。8.7 多模塊程序的測試策略多模塊程序的測試策略M1M2M3M4M5M6M7M8多模塊程序多模塊程序組裝順序:組裝順序:M8-M5-M6-M2M7-M4-M3-M1全部模塊全部模塊(合并以上兩個群合并以上兩個群)8.7 多模塊程序的測試策略多模塊程序的測試策略混合測試方式:混合測試方式:(1)(1)對上層模塊采取自頂向下測試;對上層模塊采取自頂向下測試;(2)(2)對關鍵模塊或子系統采取由底向上測試。對關鍵模塊或子系統采取由底向上測試。8.7 多模塊程序的測試策略多模塊程序的測試策略4. 確認測試:確認測試
49、:其目的在于確認組裝完畢的程序是否滿足軟其目的在于確認組裝完畢的程序是否滿足軟件需求規格說明書的要求。確認測試通常包括有效性測試件需求規格說明書的要求。確認測試通常包括有效性測試和配置復審等內容。和配置復審等內容。模塊單元測試單元測試單元測試集成測試確認測試系統測試模塊模塊測試報告測試報告軟件設計信息軟件需求信息測試報告測試報告已組裝軟件已確認軟件可運行的系統系統的其它成分編碼階段測試階段驗收階段8.7 多模塊程序的測試策略多模塊程序的測試策略驗收測試:驗收測試:如果軟件是給一個客戶開發的,需要進行如果軟件是給一個客戶開發的,需要進行一系列驗收測試來保證滿足客戶所有的需求。驗收測試一系列驗收測
50、試來保證滿足客戶所有的需求。驗收測試主要由用戶而不是開發者來進行的。主要由用戶而不是開發者來進行的。測試與測試與測試:測試:如果一個軟件是給很多客戶使用的,可如果一個軟件是給很多客戶使用的,可使用使用測試與測試與測試。測試。測試:測試:是在一個受控的環境下,由用戶在開發者的指是在一個受控的環境下,由用戶在開發者的指導下進行測試,由開發者負責記錄錯誤和使用中出現的導下進行測試,由開發者負責記錄錯誤和使用中出現的問題。問題。測試:測試:由最終用戶在自己的場所進行,開發者通常不由最終用戶在自己的場所進行,開發者通常不在場,也不能控制應用的環境。由用戶記錄錯誤和使用在場,也不能控制應用的環境。由用戶記錄錯誤和使用中出現的問題,并定期地交給開發者來解決。中出現的問題,并定期地交給開發者來解決。8.7 多模塊程序的測試策略多模塊程序的測試策略5. 系統測試:系統測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司游樂園活動方案
- 公司新年酒會策劃方案
- 公司組織爬山策劃方案
- 公司游艇商務活動方案
- 公司文化集市策劃方案
- 公司綠色騎行活動方案
- 公司新年同樂會活動方案
- 公司母親節福利活動方案
- 公司消防日活動方案
- 公司線上交流活動方案
- 滴滴網約車出行品牌-品牌視覺識別手冊【出行打車】【VI設計】
- 2025年貴州貴陽市城市發展投資集團股份有限公司招聘筆試參考題庫附帶答案詳解
- 反應釜設備知識培訓課件
- 汽車制造業廉政風險控制措施
- 2025年甘肅省農墾集團限責任公司招聘428人歷年高頻重點提升(共500題)附帶答案詳解
- 生物制造產業園項目實施規劃與進度安排
- 高校物業管理服務實施方案
- 工程造價咨詢服務投標方案(專家團隊版-)
- 電焊工安全培訓(超詳)課件
- 幼兒園口算題卡100組口算練習題直接打印版
- 2024年機動車檢測站質量手冊程序文件記錄表格合集(根據補充要求編制)
評論
0/150
提交評論