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

下載本文檔

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

文檔簡介

第七章軟件測試2目錄軟件測試基本概念軟件測試方法和技術軟件測試步驟3有關軟件測試的錯誤觀點“軟件測試是為了證明程序是正確的,即測試能發(fā)現程序中所有的錯誤”。事實上這是不可能的。要通過測試發(fā)現程序中的所有錯誤,就要窮舉所有可能的輸入數據。4例如:對于一個輸入三個16位字長的整型數據的程序,輸入數據的所有組合情況有248

,如果測試一個數據需1ms,則即使一年365天一天24小時不停地測試,也需要約1萬年。5例如:一個小程序的流程圖,它包括了一個執(zhí)行20次的循環(huán),其循環(huán)體有五個分支。這個循環(huán)的不同執(zhí)行路徑數達520條,如果對每一條路徑進行測試需要1毫秒,那么即使一年工作365×24小時,要想把所有路徑測試完,大約需3170年。6“軟件測試不是為了證明程序是正確的,即測試能發(fā)現程序中所有的錯誤”。(×)“程序測試是為了證明程序正確地執(zhí)行了預期的功能”。(√)7軟件測試的目的目的是通過軟件測試以最少的時間和人力找出軟件中潛在的各種錯誤和缺陷。測試是一個為了發(fā)現錯誤而執(zhí)行程序的過程。一個好的測試用例是指很可能找到迄今為至尚未發(fā)現的錯誤的測試用例。一個成功的測試是指揭示了迄今為至尚未發(fā)現的錯誤的測試。8軟件測試的概念

軟件測試就是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統(tǒng),對測試方案可能出現的問題進行分析和評估。執(zhí)行測試用例后,需要跟蹤故障,以確保開發(fā)的產品適合需求。9測試數據程序P比較結果數據預期數據相符不符追查缺陷10軟件質量軟件質量就是“軟件與明確的和隱含的定義的需求相一致的程度”。具體地說,軟件質量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的開發(fā)標準、以及所有專業(yè)開發(fā)的軟件都應具有的隱含特征的程度。11軟件測試與軟件質量的關系測試有助于提高軟件的質量,但是提高軟件的質量不能依賴于測試。測試與質量的關系很象在考試中“檢查”與“成績”的關系。學習好的學生,在考試時通過認真檢查能減少因疏忽而造成的答題錯誤,從而“提高”了考試成績(取得他本來就該得的好成績)。而學習差的學生,他原本就不會做題目,無論檢查多么細心,也很難提高成績。軟件的高質量是設計出來的,而不是靠測試修補出來的。12軟件測試的原則(1)盡早地和不間斷地進行軟件測試(2)測試用例應由測試輸入數據和與之對應的預期輸出結果兩部分組成(3)程序員應避免檢查自己的程序(4)在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件13(5)充分注意測試中的群集現象。(6)嚴格執(zhí)行測試計劃,排除測試的隨意性(7)應當對每一個測試結果做全面檢查(8)妥善保管測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便14目錄軟件測試基本概念軟件測試方法和技術軟件測試步驟15軟件測試方法和技術測試方法和測試技術靜態(tài)測試技術動態(tài)測試技術16靜態(tài)測試技術:

不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。17對需求規(guī)格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執(zhí)行來找錯。例如:不匹配的參數、不適當的循環(huán)嵌套和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑的計算等。靜態(tài)測試結果可用于進一步的查錯,并為測試用例選取提供指導。18動態(tài)測試技術:通過運行被測程序,檢查運行結果與預期結果的差異,并分析運行效率和健壯性等性能。目前,動態(tài)測試是公司測試工作的主要方式。

19軟件測試方法和技術測試方法和測試技術靜態(tài)測試技術動態(tài)測試技術桌前檢查代碼會審步行檢查20桌前檢查(DeskCheck):程序員自己檢查程序效果不太理想。解決辦法:互相交換程序檢查。代碼會審(CodeInspections):由一組人通過閱讀、討論和爭議,對程序進行靜態(tài)分析的過程。步行檢查(Walkthroughs):預先準備測試數據,讓與會者充當“計算機”一檢查程序的狀態(tài)。有時比真正運行程序可能發(fā)現更多的錯誤。21軟件測試方法和技術測試方法和測試技術靜態(tài)測試技術動態(tài)測試技術桌前檢查代碼會審黑盒測試步行檢查白盒測試22軟件測試方法和技術

黑盒測試等價類劃分邊界值分析錯誤推測法因果圖功能圖接口測試

白盒測試邏輯覆蓋判定結構分析循環(huán)結構分析基本路徑覆蓋23黑盒測試(Black-BoxTest)又稱功能測試或數據驅動測試。把測試對象看做一個黑盒,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明。24需求&功能規(guī)格說明產生被測程序測試結果輸出比較測試用例黑盒測試只關心輸入與輸出的對應關系,不關心被測程序的內部關系。25黑盒測試方法是在程序接口上進行測試,主要是為了發(fā)現以下錯誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結果?是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?性能上是否能夠滿足要求?是否有初始化或終止性錯誤?黑盒測試的方法和特點(1)等價類劃分:等價類劃分是將輸入數據域按有效的或無效的(也稱合理的或不合理的)劃分成若干個等價類,測試每個等價類的代表值就等于對該類其它值的測試。(2)邊界值分析:該方法是將測試邊界情況作為重點目標,選取正好等于,剛剛大于或剛剛小于邊界值的情況,根據這些情況選擇測試用例。(3)錯誤推測:錯誤推測法沒有確定的步驟,憑經驗進行。它的基本思想是列出程序中可能發(fā)生錯誤的情況,根據這些情況選擇測試用例。(4)因果圖:因果圖能有效的檢測輸入條件的各種組合可能會引起的錯誤。因果圖的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉換為判定表,最后為判定表的每一列設計一個測試用例。2627白盒測試(White-BoxTest)又稱結構測試或邏輯驅動測試。把測試對象看做一個玻璃盒子,它允許測試人員利用程序內部的邏輯結構及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。28軟件人員使用白盒測試方法,主要想對程序模塊進行如下的檢查:對程序模塊的所有獨立的執(zhí)行路徑至少測試一次—路徑覆蓋測試;對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次—邏輯覆蓋測試;29在循環(huán)的邊界和運行界限內執(zhí)行循環(huán)體—控制流測試;測試內部數據結構的有效性—數據流測試、領域測試等。30黑盒測試與白盒測試優(yōu)缺點比較黑盒測試白盒測試

優(yōu)點缺點性質①適用于各階段測試②從產品功能角度測試③容易入手生成測試數據①可構成測試數據使特定程序部分得到測試②有一定的充分性度量手段③可獲較多工具支持①某些代碼得不到測試②如果規(guī)格說明有誤,則無法發(fā)現③不易進行充分性測試①不易生成測試數據(通常)②無法對未實現規(guī)格說明的部分進行測試③工作量大,通常只用于單元測試,有應用局限是一種確認技術,回答“我們在構造一個正確的系統(tǒng)嗎?”是一種驗證技術,回答“我們在正確地構造一個系統(tǒng)嗎?”31目錄軟件測試基本概念軟件測試方法和技術軟件測試步驟32軟件測試的步驟和策略軟件開發(fā)過程是一個自頂向下、逐步細化的過程,測試過程則是自底向上、逐步集成的過程。低一級測試為上一級測試準備條件,如下頁圖所示33規(guī)格定義設計編碼系統(tǒng)測試集成測試單元測試用戶需求驗收測試自頂向下逐步細化相反順序集成過程

回歸測試34軟件測試步驟單元測試集成測試確認測試系統(tǒng)測試驗收測試35單元測試(開始是單元測試)

集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規(guī)定的功能。n36單元測試一般認為并不包括于測試階段而是包括于編程階段。因此單元測試計劃一般由模塊編寫人員制定,而單元測試一般也由模塊編寫人員進行。編程(同步)單元測試其他測試……37單元測試的內容:1、模塊接口測試2、檢查局部數據結構能否保持完整性3、模塊邊界條件測試4、模塊執(zhí)行路徑測試5、檢查模塊內部錯誤處理是否有效單元測試方法:白盒測試為主,黑盒測試為輔。38單元測試檢查單1、邏輯和算法:正確實現了邏輯和算法。2、數據結構(全局和局部):使用了全局數據結構?哪些?如果有,作了哪些關于全局數據的假設?這些假設正確嗎?使用了局部數據?在算法執(zhí)行的所有步驟期間,保持局部數據的完整性了嗎?393、接口:來自調用模塊的數據匹配被調用的模塊的期望接收的數據?被調用模塊的數據匹配調用的模塊提供的數據?4、獨立路徑:標識了所有穿過模塊的獨立路徑?執(zhí)行了嗎?5、邊界條件:了解邊界條件嗎?進行了測試確保該模塊在其邊界條件上的適當的操作了嗎?6、出錯處理:所有出錯處理路徑均執(zhí)行到了嗎?40軟件測試過程按4個步驟進行,即:單元測試集成測試確認測試系統(tǒng)測試驗收測試41集成測試(第二步是集成測試)

把已測試過的模塊組裝起來,主要對與設計相關的軟件體系結構的裝配進行測試。n42測試內容

各單元的接口是否吻合、代碼是否符合規(guī)定的標準、界面標準是否統(tǒng)一等。人員安排

既要求參與的人熟悉單元的內部細節(jié),又要求他們能夠從足夠高的層次上觀察整個系統(tǒng)。一般由有經驗的測試人員和主要的軟件開發(fā)者來完成集成測試的計劃。43集成測試計劃

集成測試計劃由系統(tǒng)設計人員在設計階段制定,它是和設計規(guī)格說明同時完成的。內容有:測試的描述和范圍測試環(huán)境測試時間表44集成次序測試用例以及測試的預期結果等測試方法:集成測試階段是以黑盒法為主。45軟件測試過程按4個步驟進行,即:單元測試集成測試確認測試系統(tǒng)測試驗收測試46確認測試(第三步是確認測試)

確認測試又稱有效性測試。它的任務是檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標相符合。n確認測試階段有兩項工作,進行確認測試與軟件配置審查。確認測試一般是在模擬環(huán)境中運用黑盒測試方法,由專門測試人員和用戶參加的測試。軟件配置審查的任務是檢查軟件的所有文檔資料的完整性、正確性。如果發(fā)現遺漏和錯誤,應補充和改正,同時要編排好目錄,為以后的軟件維護工作奠定基礎。4748軟件測試過程按4個步驟進行,即:單元測試集成測試確認測試系統(tǒng)測試驗收測試49系統(tǒng)測試

把已經經過確認的軟件納入實際運行環(huán)境中,與其它系統(tǒng)元素(硬件、人員、數據庫等)組合在一起進行測試。n50為了發(fā)現缺陷并度量產品質量,按照系統(tǒng)的功能和性能需求進行的測試一般使用黑盒測試技術一般由獨立的測試人員完成51通常意義上的系統(tǒng)測試包括:功能測試壓力測試(Stresstest)性能測試(Performancetest)容量測試(Capacitytest)用戶界面測試兼容性測試52功能測試53通常意義上的系統(tǒng)測試包括:功能測試壓力測試(Stresstest)性能測試(Performancetest)容量測試(Capacitytest)用戶界面測試兼容性測試54壓力測試也稱強度測試。目的:在軟件投入使用以前或軟件負載達到極限以前,通過執(zhí)行可重復的負載測試,預先分析出軟件可承受的并發(fā)用戶極限值和性能瓶頸,以幫助軟件廠商或用戶優(yōu)化自己的程序。55通常意義上的系統(tǒng)測試包括:功能測試壓力測試(Stresstest)性能測試(Performancetest)容量測試(Capacitytest)用戶界面測試兼容性測試56性能測試對于那些實時和嵌入式系統(tǒng),軟件部分即使?jié)M足功能要求,也未必能夠滿足性能要求,雖然從單元測試起,每一測試步驟都包含性能測試,但只有當系統(tǒng)真正集成之后,在真實環(huán)境中才能全面、可靠地測試運行性能,系統(tǒng)性能測試就是為了完成這一任務。57通常意義上的系統(tǒng)測試包括:功能測試壓力測試(Stresstest)性能測試(Performancetest)容量測試(Capacitytest)用戶界面測試兼容性測試58容量測試對軟件容量的測試,能讓用戶明白到底此軟件能一次性承擔多大訪問量。有了對軟件負載的準確預測,不僅能讓用戶對軟件在實際使用中的性能狀況充滿信心,同時也可以幫助用戶最經濟地規(guī)劃自己的網絡配置,避免無謂的硬件投入,還可以減少網絡系統(tǒng)的宕機時間和因此帶來的經濟損失。59通常意義上的系統(tǒng)測試包括:功能測試壓力測試(Stresstest)性能測試(Performancetest)容量測試(Capacitytest)用戶界面測試兼容性測試60用戶界面的測試:符合標準和規(guī)范直觀性一致性靈活性舒適性正確性實用性61通常意義上的系統(tǒng)測試包括:功能測試壓力測試(Stresstest)性能測試(Performancetest)容量測試(Capacitytest)用戶界面測試兼容性測試62其他還有一些關于測試的分類,例如:健壯性測試容災測試內存泄漏測試并發(fā)性測試安全性測試配套產品測試實際上,這些測試都是因為測試的目的不同,而在制定測試策略和測試設計的時候有不同的側重點。63必做的測試:安裝測試功能測試值域測試界面測試可用性測試說明書測試配置測試加密問題測試裸機測試可選的測試:內存泄漏測試接口測試性能測試并發(fā)性測試安全性測試破壞性測試配套產品測試64軟件測試過程按4個步驟進行,即:單元測試集成測試確認測試系統(tǒng)測試驗收測試65

驗收測試在通過了系統(tǒng)的有效性測試及軟件配置審查之后,就應開始系統(tǒng)的驗收測試。驗收測試是以用戶為主的測試。軟件開發(fā)人員和質量保證人員也應參加。由用戶參加設計測試用例,使用生產中的實際數據進行測試。66驗收測試應交付的文檔有:

驗收測試分析報告最終的用戶手冊和操作手冊項目開發(fā)總結報告。67測試級目的執(zhí)行者測試環(huán)境測試方法單元從單個模塊中發(fā)現邏輯、數據和運算缺陷軟件工程師單獨的;樁和支撐程序白盒測試集成發(fā)現模塊間接口缺陷軟件工程師單獨的和/或模擬;樁和支撐程序白盒測試Top-down,bottom-up,或outside-in系統(tǒng)測定軟件是否滿足需求軟件質保組軟件確認組實際的環(huán)境(可能沒有最終的硬件)功能測試和ALAC68一些問題問題1:有了“黑盒”測試為什么還要“白盒”測試?答:黑盒測試只能觀察軟件的外部表現,即使軟件的輸入輸出都是正確的,卻并不能說明軟件就是正確的。因為程序有可能用錯誤的運算方式得出正確的結果,例如“負負得正,錯錯得對”,只有白盒測試才能發(fā)現真正的原因。白盒測試能發(fā)現程序里的隱患,象內存泄漏、誤差累計問題。在這方面,黑盒測試存在嚴重的不足。69問題2:由于單元測試要寫測試驅動程序,非常麻煩,能否等到整個系統(tǒng)全部開發(fā)完后,再集中精力進行一次性地單元測試呢?答:如果這樣做,在開發(fā)過程中,缺陷會越積越多

溫馨提示

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

評論

0/150

提交評論