測試原理與方法-基礎(chǔ)篇_第1頁
測試原理與方法-基礎(chǔ)篇_第2頁
測試原理與方法-基礎(chǔ)篇_第3頁
測試原理與方法-基礎(chǔ)篇_第4頁
測試原理與方法-基礎(chǔ)篇_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、測試原理與方法 基礎(chǔ)篇1內(nèi)容梗概 測試概念 測試的目的 測試的原則 測試的分類 測試的方法 測試用例 用例的設(shè)計方法2測試的概念 什么是測試在IEEE610.12-1990 標準中是這樣定義的:測試是在特定條件下操作系統(tǒng)或組成,觀察記錄結(jié)果,并對該系統(tǒng)或組成各方面做出客觀評價的過程。它的核心內(nèi)容:測試是帶著“什么應(yīng)該是”的疑問去比較“是什么”的過程3軟件測試Software Testing 軟件測試的經(jīng)典定義:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計要求進行評估的過程。 一種實際輸出與預(yù)期輸出間的審核或者比較過程 一種用來促進鑒定軟件的正確性、完整性、安

2、全性和質(zhì)量的過程 軟件測試活動包括:制定計劃、分析風險、設(shè)計和創(chuàng)建測試用例、關(guān)注測試執(zhí)行等4軟件測試的目的5u測試的目的:利用最少的時間和付出,系統(tǒng)地揭示不同類型的錯誤測試的目的:利用最少的時間和付出,系統(tǒng)地揭示不同類型的錯誤軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程目的是為了:通過“證明程序有錯”,從而排錯,最終證明軟件功能的實現(xiàn)符合功能需求定義驗證性能方面的表現(xiàn)是否能夠被接受測試數(shù)據(jù)可以提供全面、周詳?shù)能浖捎眯院唾|(zhì)量方面的評測指標軟件測試的原則從用戶的角度出發(fā) 通過軟件測試充分暴露軟件中存在的問題和缺陷,從而考慮是否可以接受該產(chǎn)品從開發(fā)者的角度出發(fā) 表明軟件產(chǎn)品不存在錯誤,已經(jīng)正確地實現(xiàn)了用

3、戶的需求,確立人們對軟件質(zhì)量的信心6軟件測試的特點 測試是不完全的 測試具有免疫性 測試是泛型概念(全程測試) 80-20 原則 為效益而測試 缺陷的必然性 軟件測試必須有預(yù)期結(jié)果 事后分析 7軟件測試的基本流程圖8軟件配置軟件配置測試環(huán)境配置測試環(huán)境配置測試測試測試結(jié)果測試結(jié)果判斷判斷錯誤錯誤期望結(jié)果期望結(jié)果錯誤率數(shù)據(jù)錯誤率數(shù)據(jù)排除程序故障排除程序故障修改修改可靠性模型可靠性模型預(yù)計可靠度預(yù)計可靠度軟件測試的分類 從是否需要運行被測軟件的角度,分為:靜態(tài)測試動態(tài)測試 從是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實現(xiàn)算法的角度,分為白盒測試黑盒測試9靜態(tài)測試不運行被測程序本身,也不需要對代碼編譯、鏈接和生成

4、可執(zhí)行文件,僅通過分析或檢查源程序的文法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性,找出欠缺和可疑之處。例:不匹配的參數(shù)不適當?shù)难h(huán)嵌套和分支嵌套不允許的遞歸未使用過的變量空指針的引用可疑的計算等等靜態(tài)測試結(jié)果可用于進一步的查錯,并為測試用例選取提供指導(dǎo)。10靜態(tài)測試11p代碼檢查Desk checking 桌面檢查由程序員自己檢查自己編寫的程序,對源程序代碼進行分析,檢驗,并補充相關(guān)的文檔。檢查項目有:檢查變量的交叉引用表、檢查標號的交叉引用表、檢查子程序、宏、函數(shù)、等值性檢查、常量檢查、標準檢查、風格檢查和補充文檔等Inspection 代碼審查通過閱讀、講解、討論和模擬運行的方式,對程序進行

5、靜態(tài)分析的過程。根據(jù)軟件設(shè)計文檔,通過閱讀程序發(fā)現(xiàn)軟件缺陷Walk-Through 代碼走查人們借助于測試用例的媒介作用,對程序的邏輯和功能提出各種疑問,結(jié)合問題開展熱烈的討論和爭議,以求發(fā)現(xiàn)更多的問題Review 技術(shù)評審開發(fā)組、測試組和相關(guān)人員(產(chǎn)品經(jīng)理等)聯(lián)合進行,也是采用講解、提問并使用編碼模板進行的查找錯誤的活動p靜態(tài)分析計算機輔助的靜態(tài)分析方法。主要對程序進行控制流分析、數(shù)據(jù)流分析、接口分析和表達式分析等。靜態(tài)分析的對象是軟件程序,程序設(shè)計語言不同,相應(yīng)的靜態(tài)分析工具也就不同。動態(tài)測試通過運行被測程序,檢查運行結(jié)果與預(yù)期結(jié)果的差異,并分析運行效率和健壯性等性能。 構(gòu)造測試實例 執(zhí)行

6、程序 分析程序的輸出結(jié)果 12白盒測試又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動測試或基于代碼的測試。盒子指的是被測試的軟件,白盒指的是盒子是可視的,清楚盒子內(nèi)部的東西以及里面是如何運作的。全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。白盒測試的主要方法:代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、路徑覆蓋和程序變異。 對程序模塊的所有獨立的執(zhí)行路徑至少測試一次; 對所有的邏輯判定,取 “ 真 ” 與取 “ 假 ” 的兩種情況都至少測試一次; 在循環(huán)的邊界和運行界限內(nèi)執(zhí)

7、行循環(huán)體; 測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。 13白盒測試一些明顯且表面的問題能夠輕而易舉地通過黑盒測試的手段發(fā)現(xiàn),但對于設(shè)計上的缺陷和錯誤,常規(guī)的黑盒測試方法往往顯得力不從心,或是需要巨大地投入才能小有收獲。而白盒測試則可以從代碼級別對設(shè)計問題進行檢查 對邏輯錯誤和不正確的假設(shè)條件錯誤做原始的排查 發(fā)現(xiàn)關(guān)于執(zhí)行路徑的條件判斷錯誤和一些設(shè)計上的明顯錯誤 發(fā)現(xiàn)一些明顯的排版錯誤而導(dǎo)致的邏輯判斷上的錯誤14白盒測試方法方法一:基本路徑方法一:基本路徑測試測試 畫出程序控制流圖,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,從而設(shè)計出測試用例的方法。1.流向圖符號2.各種復(fù)雜嵌套條件的組合3.導(dǎo)出用例4.圖表矩陣方法二

8、:控制結(jié)構(gòu)測試方法二:控制結(jié)構(gòu)測試條件測試數(shù)據(jù)流測試循環(huán)測試15白盒測試方法:基本路徑測試16基本流向圖符號白盒測試方法:基本路徑測試17流向圖組合符號白盒測試方法:基本路徑測試18嵌套流向圖符號白盒測試方法:基本路徑測試19流向圖連接矩陣白盒測試方法:控制結(jié)構(gòu)測試定義:關(guān)系式簡單條件:布爾變量和關(guān)系式復(fù)合條件:兩個或更多的簡單條件和布爾運算和符號等布爾公式:沒有關(guān)系式的條件測試策略:分支測試:測每一個分支范圍測試:測每一個關(guān)系運算分支和關(guān)系運算測試20條件測試:目的是演練程序模塊中的所有邏輯條件白盒測試方法:控制結(jié)構(gòu)測試21數(shù)據(jù)流測試:按照定義變量的位置和用途選擇測試路徑白盒測試方法:控制結(jié)

9、構(gòu)測試22常見循環(huán)模型Concatenate嵌套的連接的無組織的軟件測試的分類:黑盒測試黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試。在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求說明的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性??梢园l(fā)現(xiàn)的問題沒實現(xiàn)或?qū)崿F(xiàn)不正確的功能界面錯誤數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)訪問錯誤性能錯誤等等23常規(guī)黑盒測試方法介紹功能測試 (functional testing

10、)系統(tǒng)測試(System testing)端到端測試 (end-to-end testing)兼容性測試 (Compability testing)負荷試驗 (load testing)壓力測試 (stress testing)性能測試 (performance testing)可用性測試 (usability testing) 恢復(fù)測試 (recovery testing) 安全測試 (security testing) 測試 (alpha testing) 測試 (beta testing) 24測試用例指對某一功能點如何進行測試的描述。一般多個測試用例的集合稱之為測試用例集,或者測試規(guī)格

11、。測試用例應(yīng)該包含的元素: 所屬模塊 相關(guān)需求 用例標題 前置條件 步驟 預(yù)期結(jié)果 用例類型 優(yōu)先級25測試用例在軟件測試中的作用 1、指導(dǎo)測試的實施2、規(guī)劃測試數(shù)據(jù)的準備 3、編寫測試腳本的設(shè)計規(guī)格說明書 4、評估測試結(jié)果的度量基準 5、分析缺陷的標準 26黑盒用例的設(shè)計方法1. 等價類劃分法2. 邊界值分析法3. 因果圖法4. 對比測試法5. 錯誤推測法 6. 邏輯覆蓋法 27等價類劃分法等價類劃分:是一種完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計測試用例。等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭示程序中的錯誤都是等效的。等價類合理地假設(shè):某個等價類的代表值

12、,與該等價類的其他值,對于測試來說是等價的。因此,可以把全部的輸入數(shù)據(jù)劃分成若干的等價類,在每一個等價類中取一個數(shù)據(jù)來進行測試。這樣就能以較少的具有代表性的數(shù)據(jù)進行測試,而取得較好的測試效果。28邊界值分析法 對取值范圍兩邊的值進行檢查 例:變量的取值范圍定義為1100,那我們對于其邊界值得檢查即為0,1,n(1100之間數(shù)值的等價類), 100,101(100的等價類)29因果圖法提供一種簡明的邏輯關(guān)系表示和相對應(yīng)的響應(yīng)30因果圖法31因果關(guān)系圖的簡化符號因果關(guān)系圖的簡化符號比較法排查版本問題的方法:用同樣的測試數(shù)據(jù)對不同版本的輸出結(jié)果進行比較很多版本平行測試實時的比對測試結(jié)果排查軟件還是硬

13、件問題的方法:不同的硬件相同的軟件比較相同的硬件不同的軟件比較測試排查32黑盒用例設(shè)計的常規(guī)策略 用邊界值分析法和等價分類法提出基本的測試用例; 用猜測法補充新的測試用例; 如果在程序的功能說明中含有輸入條件的組合,宜在一開始就用因果圖法,然后再按以上1、2兩步進行。 33軟件生存期模型34瀑布模型n各項活動按自上而下,相互銜接的固定次序,如同瀑布逐級下落。各項活動按自上而下,相互銜接的固定次序,如同瀑布逐級下落。每項活動均處于一個質(zhì)量環(huán)(輸入每項活動均處于一個質(zhì)量環(huán)(輸入- -處理處理- -輸出輸出- -評審)中。評審)中。35需求定義需求定義系統(tǒng)與軟件設(shè)計系統(tǒng)與軟件設(shè)計集成與系統(tǒng)測試集成與

14、系統(tǒng)測試實現(xiàn)與單元測試實現(xiàn)與單元測試運行與維護運行與維護快速原型模型特點 快速開發(fā)工具 循環(huán) 低成本種類 漸進型 拋棄型36需求分析原型開發(fā)最終系統(tǒng)設(shè)計原型評價最終系統(tǒng)實現(xiàn)用戶反饋演化模型37客戶評價原型客戶評價原型快速設(shè)計快速設(shè)計停止停止開始開始螺旋模型38螺旋模型n螺旋模型將瀑布模型與演化模型結(jié)合起來,并且加入兩種模型均忽略了的風險分析。n螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個新版本。 u制定計劃 確定軟件目標,選定實施方案,弄清項目開發(fā)的限制條件;u風險分析 分析所選方案,考慮如何識別和消除風險;u實施工程 實施軟件開發(fā)u客戶評估 評價開發(fā),提出修正建議。39增量模

15、型n把軟件產(chǎn)品分解成一系列的增量構(gòu)件,在增量開發(fā)迭代中逐步加入。 n每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。n增量開發(fā)方法的新演進版本叫做 “極限程序設(shè)計(eXtreme Programming)”。 40定義定義基本需求基本需求將需求賦予將需求賦予增量構(gòu)件增量構(gòu)件設(shè)計系統(tǒng)設(shè)計系統(tǒng)體系結(jié)構(gòu)體系結(jié)構(gòu)開發(fā)開發(fā)增量構(gòu)件增量構(gòu)件確認確認增量構(gòu)件增量構(gòu)件集成集成增量構(gòu)件增量構(gòu)件確認系統(tǒng)確認系統(tǒng)噴泉模型41需求階段需求階段分析階段分析階段設(shè)計階段設(shè)計階段編程階段編程階段集成與測試階段集成與測試階段維護與演進階段維護與演進階段噴泉模型n體現(xiàn)了迭代和無間隙的特性。n系統(tǒng)某個部分常常重復(fù)工作多

16、次,相關(guān)對象在每次迭代中隨之加入演進的軟件成分。n無間隙是指在各項開發(fā)活動,即分析、設(shè)計和編碼之間不存在明顯的邊界。n噴泉模型是對象驅(qū)動的過程。42智能模型43用戶要求用戶要求需求分析需求分析概要設(shè)計概要設(shè)計詳細設(shè)計詳細設(shè)計程序編碼程序編碼測試測試維護維護支持需求支持需求 分析的分析的專家系統(tǒng)專家系統(tǒng)支持軟件支持軟件 設(shè)計的設(shè)計的專家系統(tǒng)專家系統(tǒng) 支持測試支持測試的專家系統(tǒng)的專家系統(tǒng) 支持維護支持維護的專家系統(tǒng)的專家系統(tǒng)智能模型n智能模型是基于知識的軟件開發(fā)模型,它把瀑布模型和專家系統(tǒng)綜合在一起。n該模型在各個開發(fā)階段都利用了相應(yīng)的專家系統(tǒng)來幫助軟件人員完成開發(fā)工作。n為此,建立了各個階段的知

17、識庫,將模型、相應(yīng)領(lǐng)域知識和軟件工程知識分別存入數(shù)據(jù)庫。以軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的專家系統(tǒng)與包含應(yīng)用領(lǐng)域知識規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu)成該應(yīng)用領(lǐng)域的開發(fā)系統(tǒng)。 44構(gòu)件集成模型45構(gòu)件集成模型特點面向?qū)ο蠡跇?gòu)件庫融合螺旋模型特征支持軟件開發(fā)的迭代方法 軟件重用46V 模型47迭代式開發(fā)模型48迭代模型和瀑布模型區(qū)別49由于瀑布模型的 軟件開發(fā)模型軟件對比模型模型名稱名稱瀑布模型瀑布模型 模形模形 迭代開發(fā)模型迭代開發(fā)模型 優(yōu)點優(yōu)點清楚地標識出了軟件開發(fā)的階段。它采用自頂向下逐步求精的方式把整個開發(fā)過程分成不同的階段,每個階段的工作都很明確,因此便于控制開發(fā)過程。當所有的階段都完成之后,該軟件的開發(fā)過程也隨之結(jié)束。 V模型的價值在于它非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發(fā)過程期間各階段的對應(yīng)關(guān)系迭代和瀑布的最大的差別就在于風險的暴露時間上,迭代開發(fā)模型 可以更早的暴露風險,以達到降低項目成本的目的缺點缺點不適合需求模糊的系統(tǒng)5

溫馨提示

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

最新文檔

評論

0/150

提交評論