軟 件 工 程(軟件測試)_第1頁
軟 件 工 程(軟件測試)_第2頁
軟 件 工 程(軟件測試)_第3頁
軟 件 工 程(軟件測試)_第4頁
軟 件 工 程(軟件測試)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟軟 件件 工工 程程第第10講:軟件測試講:軟件測試主講人:陽王東Email:主要內容 軟件測試概述軟件測試概念測試原則軟件測試過程 黑盒測試 白盒測試法軟件測試概念 軟件測試是軟件質量 “層層把關”的一個重要環(huán)節(jié),是軟件產品在“發(fā)布”之前,對需求分析、設計和實現(xiàn)(編碼)等開發(fā)工作的最后復審。 軟件測試的基本目標是采用行之有效的測試方案,找出迄今未被發(fā)現(xiàn)的、盡可能多的錯誤,并加以糾正。 軟件分析與設計:軟件編碼:軟件測試=4:2:4 成功的軟件測試只能證明軟件的錯誤,而不能證明軟件是正確的。軟件測試任務 測試任務通過采用一定的測試策略,找出軟件中的錯誤; 調試任務,或稱為糾錯任務如果測試到錯

2、誤,定位軟件中的故障源,加以糾正。 被測對象一定有錯(該假定是合理的)。 測試要能發(fā)現(xiàn)盡可能多的錯誤,爭取測試效益最大化。 測試僅能證明錯誤的存在,而不能證明錯誤的不存在。軟件測試過程 軟件測試步驟制定軟件測試大綱編寫測試用例。測試用例為了進行有效的測試而設計的輸入數(shù)據和預期的輸出結果數(shù)據。執(zhí)行測試用例測試總結 測試是一個過程測試不僅是事后的結果檢查測試與開發(fā)并行測試驅動軟件測試過程(續(xù))需求分析概要設計詳細設計編碼編寫單元測試用例編寫集成測試用例編寫確定測試用例需求分析報告概要設計說明書詳細設計說明書執(zhí)行單元測試執(zhí)行集成測試執(zhí)行確定測試系統(tǒng)測試驗收測試硬件環(huán)境網絡環(huán)境項目策劃測試計劃項目開始

3、項目結束軟件測試原則 應盡早和不斷地進行軟件“測試”,即將這種“測試”貫穿于軟件開發(fā)的各個階段,堅持各個階段的技術評審,以便盡早地發(fā)現(xiàn)和預防錯誤。 測試用例中,不僅要選擇合理的輸入數(shù)據,還要選擇不合理的輸入數(shù)據。 在開發(fā)各階段應事先分別制定出相應的測試計劃,在測試開始后應嚴格執(zhí)行,防止隨意性。 對發(fā)現(xiàn)錯誤較多的程序模塊,應進行重點測試。Pareto指出,測試發(fā)現(xiàn)錯誤的80%集中在20%的模塊中。發(fā)現(xiàn)錯誤較多的模塊質量較差,需重點測試,并要測試是否引入了新的錯誤。 避免程序員測試自己的程序。 測試用例的設計應有第三方參與。對于大型軟件的測試,一般的做法是:設計者與測試者共同完成單元測試任務,而綜

4、合測試由專門的測試機構負責,有時其中也可以有設計者參加 用窮舉測試是不現(xiàn)實的,一般通過設計測試用例,充分覆蓋所有條件或所有語句即可。 長期妥善保存測試計劃、測試用例、出錯統(tǒng)計和有關的分析報告。黑盒測試 等價類劃分法 邊界值分析法黑盒測試方法 黑盒測試是從輸入集合中選擇出一個極有可能發(fā)現(xiàn)錯誤的輸入子集,根據功能描述分析,檢查其相應的輸出是否是預期的結果。主要是測試軟件主要是測試軟件是否滿足功能需求是否滿足功能需求 黑盒測試由于注重于功能和數(shù)據信息域的測試,它既適用于由功能模塊組成的系統(tǒng),也適用于由對象構成的系統(tǒng)。一般能發(fā)現(xiàn)下列錯誤:功能錯誤或有遺漏性能錯誤數(shù)據結構或數(shù)據庫訪問錯誤接口錯誤界面有錯

5、初始化或終止錯誤等一些類型的錯誤。設計測試用例原則 黑盒測試方法帶有經驗性質的設計測試用例原則:對有輸入的所有功能,既要用有效的輸入來測試,也要用無效的輸入來測試。經過菜單調用的所有功能都應該被測試,包括通過同一個菜單調用的組合功能也要測試。設計的測試用例數(shù)量,能夠達到合理測試所需的“最少”(減少測試成本)。設計的測試用例,不僅能告知有沒有錯誤,而且能告知錯誤可能是某些類型(提高測試效率)。等價類劃分 等價類劃分的思想是將輸入數(shù)據按有效的(合理的)和無效的(不合理的)劃分成若干個等價類,認為測試等價類中的一個代表值的結果就等于對該類其他值的測試。利用等價類劃分的測試步驟如下: 劃分等價類。從程

6、序的功能說明中找出每個輸入劃分等價類。從程序的功能說明中找出每個輸入條件,然后將其劃分成若干個有效和無效的等價條件,然后將其劃分成若干個有效和無效的等價類。類。設計測試用例。設計測試用例。設計一個有效等價類的測試用例,使其盡可能多地覆設計一個有效等價類的測試用例,使其盡可能多地覆蓋尚未被覆蓋過的有效等價類。如此重復,直到所有蓋尚未被覆蓋過的有效等價類。如此重復,直到所有有效等價類都被覆蓋為止。有效等價類都被覆蓋為止。設計一個測試用例,僅覆蓋一個無效等價類,如此重設計一個測試用例,僅覆蓋一個無效等價類,如此重復,直到所有無效等價類都被覆蓋為止。復,直到所有無效等價類都被覆蓋為止。等價類的劃分原則

7、 如果規(guī)定了輸入值的范圍,則可劃分出一個有效的等價類(輸入值在此范圍內)和兩個無效的等價類(輸入值小于最小值或大于最大值)。 如果規(guī)定了數(shù)據輸入的個數(shù),則可劃分出一個有效的等價類(輸入值的個數(shù)符合規(guī)定)和兩個無效的等價類(輸入值的個數(shù)少于或多于規(guī)定個數(shù))。 如果規(guī)定了輸入數(shù)據的一組值,而且程序對不同的輸入值進行不同的處理,則每個允許的輸入值是一個有效的等價類,此外還有一個無效的等價類(規(guī)定的這一組值以外的值)。 如果規(guī)定了輸入數(shù)據必須遵循的規(guī)則,則可劃分出一個有效的等價類(符合規(guī)則)和若干個無效的等價類(從不同的角度違反規(guī)則)。 如果輸入條件規(guī)定了一個集合,則可劃分出一個有效的等價類(此集合)

8、和一個無效的等價類(此集合的補集)。測試樣例 設有一個檔案管理系統(tǒng),要求用戶輸入以年月表示的日期。假設日期限定在1990年1月2008年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月?,F(xiàn)用等價類劃分法設計測試用例,來測試程序的“日期檢查功能”。等價類劃分的結果輸入等價類輸入等價類有效等價類有效等價類無效等價類無效等價類日期的類型日期的類型及長度及長度6位數(shù)字字符位數(shù)字字符 有非數(shù)字字符有非數(shù)字字符少于少于6位數(shù)字字符位數(shù)字字符多于多于6位數(shù)字字符位數(shù)字字符年份范圍年份范圍在在19902003 之間之間小于小于1990大于大于2003月份范圍月份范圍在在0112之之間間等于等于

9、00大于大于12等價類的測試用例 設計測試用例,以便覆蓋所有的有效等價類列出了列出了3個有效等價類,編號分別為個有效等價類,編號分別為、,設計的測試用例,設計的測試用例如下:如下:測試數(shù)據測試數(shù)據 期望結果期望結果 覆蓋的有效等價類覆蓋的有效等價類200211 輸入有效輸入有效 、 為每一個無效等價類設計一個測試用例,設計結果如下:測試數(shù)據測試數(shù)據 期望結果期望結果 覆蓋的無效等價類覆蓋的無效等價類95June 無效輸入無效輸入 20036 無效輸入無效輸入 2001006 無效輸入無效輸入 198912 無效輸入無效輸入 200401 無效輸入無效輸入 200100 無效輸入無效輸入 200

10、113 無效輸入無效輸入 邊界值方法 邊界值如果輸入條件/輸出條件規(guī)定了值的范圍,則應取剛達到這個范圍的邊界值以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據。 邊界數(shù)目如果輸入條件/輸出條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)和比最大個數(shù)多1個、比最小個數(shù)少1個的數(shù)作為測試數(shù)據。 集合邊界如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合 (如有序表、順序文件等),則應選取集合中的第一個和 最后一個元素作為測試用例。 數(shù)據結構邊界如果程序中使用了一個內部數(shù)據結構,則應當選擇這個內部數(shù)據結構的邊界上的值作為測試用例。 等價類的邊界邊值分析法舉例 按照輸入值范圍的邊界。 例如:輸入值的范圍是-1.0

11、至1.0,則可選擇用例 1.0、1.0、-1.001、1.001。 按照輸入/輸出值個數(shù)的邊界。 例如:輸入文件可有1-255個記錄,則 設計用例:文件的記錄數(shù)為 0個、1個、255個、256個。 輸出值域的邊界。 例如:檢索文獻摘要,最多4篇。設計用例:可檢索0篇、1篇、4篇,和5篇(錯誤)。 輸入/輸出有序集(如順序文件、線性表)的邊界。應選擇第一個元素和最后一個元素。程序的邊界 NextDate函數(shù)的邊界值分析測試用例在NextDate函數(shù)中,隱含規(guī)定了變量mouth和變量day的取值范圍為1mouth12和1day31,并設定變量year的取值范圍為1912year2050邊界值用例測

12、試用例測試用例mouth dayyear預期輸出預期輸出Test 1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出超出1312001.6.22001.6.32001.7.1輸入日期超界輸入日期超界day超

13、出超出131Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Mouth超出超出1122001.1.162001.2.162001.11.162001.12.16Mouth超出超出112白盒測試方法白盒測試方法 語句覆蓋 判定覆蓋 條件覆蓋 判定/條件覆蓋 組合覆蓋 路徑覆蓋白盒測試方法 白盒測試也稱結構測試或邏輯驅動測試,是針對被測單元內部是如何進行工作的測試。它根據程序的控制結構設計測試用例,主要用于軟件或程序驗證。 白盒測試法檢查程序內部邏輯結構,對所有邏輯路徑進行測試,是一

14、種窮舉路徑的測試方法。但即使每條路徑都測試過了,仍然可能存在錯誤。因為:窮舉路徑測試無法檢查出程序本身是否違反了設計規(guī)范,即程序是否是一個錯誤的程序。窮舉路徑測試不可能查出程序因為遺漏路徑而出錯。窮舉路徑測試發(fā)現(xiàn)不了一些與數(shù)據相關的錯誤。白盒測試原則和方法 采用白盒測試方法必須遵循以下幾條原則,才能達到測試的目的:保證一個模塊中的所有獨立路徑至少被測試一次。所有邏輯值均需測試真 (true) 和假 (false) 兩種情況。檢查程序的內部數(shù)據結構,保證其結構的有效性。在上下邊界及可操作范圍內運行所有循環(huán)。 白盒測試主要是檢查程序的內部結構、邏輯、循環(huán)和路徑。常用測試用例設計方法有:邏輯覆蓋法(

15、邏輯驅動測試)基本路徑測試方法白盒測試 覆蓋測試語句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋組合覆蓋路徑覆蓋 循環(huán)測試 路徑測試組合覆蓋判斷/條件覆蓋判斷覆蓋條件覆蓋語句覆蓋邏輯覆蓋法void DoWork (int x,int y,int z) int k=0,j=0; if ( (x3)&(z5) ) j=x*y+10; /語句塊2 j=j%3; /語句塊3X3 & z5執(zhí)行語句塊執(zhí)行語句塊3FFTTabdce語句覆蓋 使得程序中的每個可執(zhí)行語句至少執(zhí)行一次X3 & z5執(zhí)行語句塊執(zhí)行語句塊3FFTTabdcex=4y=5z=5判定覆蓋 使得程序中的每個判定至少都獲得一次

16、“真”值和“假”值, 也就是使程序中的每個取“真”分支和取“假”分支至少均經歷一次X3 & z5執(zhí)行語句塊執(zhí)行語句塊3FFTTabdcex=4y=5z=5x=2y=5z=5abd-TTace-FF條件覆蓋 測試用例 執(zhí)行路徑 覆蓋條件 覆蓋分支 x=2、y=6、z=5 acd-T1、T2、-T3、T4 cd x=4、y=5、 z=15 acd T1、-T2、T3、-T4 cdX3 & z5執(zhí)行語句塊執(zhí)行語句塊3FFTTabdce使得程序中每個判定包含的每個條件的可能取值(真/假)都至少滿足一次。T1:X3T2:Z5判定/條件覆蓋 使得程序中每個判定包含的每個條件的所有情況(真/假)至少出現(xiàn)一次,并且每個判定本身的判定結果(真/假)也至少出現(xiàn)一次 測試用例 執(zhí)行路徑 覆蓋條件 覆蓋分支 x=4、y=6、z=5 abdT1、T2、T3、T4 bd x=2、y=5、 z=15 ace -T1、-T2、 -T3、-T4 ceX3 & z5執(zhí)行語句塊執(zhí)行語句塊3FFTTabdce組合測試組合覆蓋的目的是要使設計的測試用例能覆蓋每一個判定的所有可能的條件取值組合1、x3, z3, z=10 記做

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論