版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章軟件測試方法
軟件測試的分類方法目標/特性單元測試系統(tǒng)測試驗收測試性能測試強壯性測試功能測試白盒測試黑盒測試測試對象或層次適用性測試可靠性測試集成測試安全性測試Zhu.Kerry@不同的分類按測試的對象或范圍分類,如單元測試、文檔測試、系統(tǒng)測試等)按測試目的分類,如功能測試、回歸測試、性能測試、可靠性測試、安全性測試和兼容性測試等根據測試過程中被測軟件是否被執(zhí)行,分為靜態(tài)測試和動態(tài)測試根據是否針對系統(tǒng)的內部結構和具體實現算法來完成測試,可分為白盒測試和黑盒測試Zhu.Kerry@軟件測試的各個階段開發(fā)生命周期...維護需求定義應用定義應用開發(fā)修訂建立建立測試生命周期...執(zhí)行.執(zhí)行執(zhí)行.測試計劃缺陷跟蹤測試開發(fā)測試設計評估Zhu.Kerry@軟件測試階段階段輸入輸出需求分析需求定義,市場分析文檔,相關技術文檔市場需求分析會議記要,功能設計,技術設計設計審查市場需求文檔,技術設計文檔
測試計劃,測試用例功能驗證代碼完成文件包,功能詳細設計說明書最終技術文檔完整測試用例,完備的測試計劃,缺陷報告,功能驗證測試報告系統(tǒng)測試代碼修改后的文件包完整測試用例,完備的測試計劃
缺陷報告缺陷狀態(tài)報告項目階段報告確認測試代碼凍結文件包確認測試用例缺陷狀態(tài)報告缺陷報告審查版本審查版本發(fā)布代碼發(fā)布文件包測試計劃檢查清單當前版本已知問題的清單版本發(fā)布報告Zhu.Kerry@測試階段(SDLC)Zhu.Kerry@需求和設計審查測試人員參與產品需求分析和系統(tǒng)設計,認真閱讀有關文檔,真正理解客戶的需求和技術上的設計,檢查需求說明書對產品描述的準確性、一致性等,檢查系統(tǒng)設計的合理性和可測試性等Zhu.Kerry@單元測試單元測試的對象是程序系統(tǒng)中的最小單元---模塊或組件上,在編碼階段進行,針對每個模塊進行測試,主要通過白盒測試方法,從程序的內部結構出發(fā)設計測試用例,檢查程序模塊或組件的已實現的功能與定義的功能是否一致、以及編碼中是否存在錯誤。多個模塊可以平行地、對立地測試,通常要編寫驅動模塊和樁模塊單元測試一般由編程人員和測試人員共同完成,而以開發(fā)人員為主單元測試包括代碼評審,代碼評審可以發(fā)現程序50%~70%代碼的缺陷。Zhu.Kerry@集成測試集成測試,也稱組裝測試、聯(lián)合測試、子系統(tǒng)測試,在單元測試的基礎上,將模塊按照設計要求組裝起來同時進行測試,主要目標是發(fā)現與接口有關的模塊之間問題兩種集成方式:一次性集成方式和增殖式集成方式。Zhu.Kerry@功能測試功能測試一般須在完成集成測試后進行,而且是針對應用系統(tǒng)進行測試。功能測試是基于產品功能說明書,是在已知產品所應具有的功能,從用戶角度來進行功能驗證,以確認每個功能是否都能正常使用Zhu.Kerry@系統(tǒng)測試系統(tǒng)測試是將軟件放在整個計算機環(huán)境下,包括軟硬件平臺、某些支持軟件、數據和人員等,在實際運行環(huán)境下進行一系列的測試,包括恢復測試、安全測試、強度測試和性能測試等Zhu.Kerry@驗收測試&安裝測試驗收測試的目的是向未來的用戶表明系統(tǒng)能夠像預定要求那樣工作,驗證軟件的功能和性能如同用戶所合理期待的那樣安裝測試是指按照軟件產品安裝手冊或相應的文檔,在一個和用戶使用該產品完全一樣的環(huán)境中或相當于用戶使用環(huán)境中,進行一步一步的安裝操作性的測試Zhu.Kerry@2.1靜態(tài)分析靜態(tài)分析是不需要執(zhí)行程序而進行測試的技術,其主要功能是檢查軟件與其描述是否一致,是否有沖突或是歧義性。靜態(tài)分析的主要特征是利用計算機作為工具分析源程序,而不是運行程序。靜態(tài)分析是其他測試的前提,靜態(tài)分析包括代碼檢查、靜態(tài)結構分析、代碼質量度量等。靜態(tài)分析可由人工進行,充分發(fā)揮人的邏輯思維優(yōu)勢,也可借助軟件工具進行,加快分析速度和效果。2.1靜態(tài)分析代碼檢查
代碼檢查包括代碼走查和代碼審查,代碼走查與代碼審查的區(qū)別是:代碼走查除了閱讀程序外,還需要由測試員利用人工運行程序并得出輸出結果,然后由參加者對結果進行審查,以達到測試的目的。代碼審查的主要內容是檢查代碼和設計的一致性,代碼對標準的遵循、可讀性,代碼邏輯表達的正確性,代碼結構的合理性等方面;代碼審查可以發(fā)現違背程序編寫標準的問題、程序中不安全、不明確和模糊的部分,找出程序中不可移植部分、違背程序編程風格的問題,包括變量檢查、命名和類型審查、程序邏輯審查、程序語法檢查和程序結構檢查等內容。2.1靜態(tài)分析靜態(tài)結構分析靜態(tài)結構分析主要是以圖形的方式描述程序的內部結構,例如函數調用關系圖、函數內部控制流圖。其中函數調用關系圖以圖形方式描述一個應用程序中各個函數的調用和被調用關系;函數內部控制流圖顯示一個函數的邏輯結構,它由許多節(jié)點組成,一個節(jié)點代表一條語句或數條語句,結點間的連接稱之為邊,邊表示語句間的控制流向。2.1靜態(tài)分析代碼質量度量
軟件質量的ISO/IEC9126國際標準包括六個方面:功能性可靠性易用性效率性可維護性可移植性軟件的質量是軟件屬性的各種標準度量的組合。對于軟件開發(fā)人員來說,靜態(tài)分析只是進行動態(tài)測試的預處理工作,并且靜態(tài)分析已經成為一種自動化的代碼校驗方法。2.1靜態(tài)分析靜態(tài)分析的任務:1、發(fā)現程序的錯誤2、尋找潛伏問題的原因3、提供程序的信息4、選擇測試用例5、為查錯做準備2.2動態(tài)測試動態(tài)測試特點:動態(tài)測試是使被測代碼在相對真實的環(huán)境下運行,從多個角度觀察與檢測程序運行時的功能、邏輯、行為和結構,并且通過實際運行的輸出結果和預期輸出結果的比較,來發(fā)現其中的錯誤。主要特點:運行被測試程序,獲得程序運行的動態(tài)情況和真實結果,從而進行分析。必須生成測試用例來運行程序,測試質量與測試用例密切相關。生成測試用例、分析測試結果的工作量大,使得測試工作消耗較多。動態(tài)測試中涉及人員多、設備多、數據多,要求有較好的管理制度和工作流程。2.2動態(tài)測試動態(tài)測試的內容:動態(tài)測試包括功能確認與接口測試、覆蓋率分析、性能分析、內存分析等。(1)功能確認與接口測試(2)覆蓋率分析(3)性能分析(4)內存分析2.3人工測試與機器測試人工測試技術是指不依賴于具體的計算機,通過人工手段來進行測試的技術。而機器測試是指將大量的重復性工作由計算機完成,是一種依賴于計算機的軟件測試技術,又稱為機器測試技術。機器測試是基于計算機完成的測試技術。包括邊界值測試、分支覆蓋測試、原型和語法測試。其中語法測試是由語言編譯器自動完成的。2.3人工測試與機器測試軟件審查軟件審查的對象是各開發(fā)階段的成果,如需求分析、概要設計、詳細設計等階段的成果以及編碼、測試計劃和測試用例等。軟件審查通常有以下幾個步驟:制定計劃、預審、準備、審查會、返工、終審。2.3人工測試與機器測試人工測試與機器測試的比較人工測試不能保證測試的科學性與嚴密性,這是因為:測試人員要負責大量文檔、報表的制訂和整理工作,工作繁瑣;受軟件分發(fā)日期、開發(fā)成本及測試人員、資源等多方面因素的限制,難以進行全面的測試;如果修正缺陷所花費的時間相當長,回歸測試將變得更為困難;對測試過程中發(fā)現的大量缺陷缺乏科學、有效的管理手段,責任含混不清,沒有人能向決策層提供精確的數據以度量當前的工作進度及工作效率;反復測試帶來的倦怠情緒及其他人為因素使得測試標準前后不一,測試花費的時間越長,測試的嚴格性也就越低;難以對不可視對象或對象的不可視屬性進行測試。2.4黑盒測試黑盒測試是對軟件的功能和界面的測試,其目的是發(fā)現軟件需求或者設計規(guī)格說明中的錯誤,所以又稱功能測試,是一種基于用戶觀點出發(fā)的測試。在測試期間,把被測程序看做一個黑盒子,測試人員并不清楚被測程序的源代碼或者該程序的具體結構,不需要對軟件的結構有深層的了解,而是只知道該程序輸入和輸出之間的關系,依靠能夠反映這一關系的功能規(guī)格說明書,來確定測試用例和推斷測試結果的正確性。黑盒測試僅在程序接口處進行測試,只檢查被測程序功能是否符合規(guī)格說明書的要求,程序是否能適當的接受輸入數據并產生正確的輸出信息。2.4黑盒測試黑盒測試的主要內容(1)可接受性測試/驗收測試(2)
Alpha/Beta測試(3)菜單/幫助測試(4)發(fā)行測試(5)回歸測試(6)RTM測試2.4黑盒測試黑盒測試方法等價類劃分邊界值分析因果圖錯誤推測狀態(tài)測試在黑盒測試方法中,等價類劃分和邊界值分析是最常使用的測試方法,也是軟件測試最基本的方法。2.4黑盒測試——等價類劃分等價類劃分1.問題的提出2.等價類劃分概念3.等價類劃分方法的測試用例設計4.使用等價類劃分設計測試用例2.4黑盒測試——等價類劃分使用等價類劃分設計測試用例(1)弱等價類測試(2)強等價類測試(3)弱健壯等價類測試(4)強健壯等價類測試2.4黑盒測試——邊界值分析邊界值分析的必要性軟件測試常用的一個方法是把測試工作按同樣的形式劃分。對數據進行軟件測試,就是檢查用戶輸入的信息、返回結果以及中間計算結果是否正確。實踐表明,輸入域的邊界值比中間的值更加容易發(fā)現錯誤。實踐證明,大量的錯誤發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。為此,邊界值分析可作為一種測試技術。2.4黑盒測試——邊界值分析邊界值分析邊界值分析也是一種黑盒測試方法,是一種補充等價劃分的測試用例設計技術,它選擇一組測試用例檢查邊界值。它不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例。在設計測試用例時,對邊界處理必須給予足夠的重視,為檢驗邊界的處理而專門設計測試用例,常??梢匀〉昧己玫臏y試效果。提出邊界條件時,一定要測試臨近邊界的合法數據,即測試剛好處于邊界上的合法數據以及剛超過邊界的非法數據。邊界值分析的基本思想是使用最小值、略高于最小值、正常值、略低于最大值和最大值作為輸入變量值。2.4黑盒測試——邊界值分析利用邊界值分析選擇測試用例的原則:(1)如果輸入條件規(guī)定了值的范圍,則應該取剛達到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為測試輸入數據;(2)如果輸入條件規(guī)定了值的個數,則用最大個數、最小個數、比最大個數多1個、比最小個數少1個的數作為測試數據;(3)根據規(guī)格說明的每一個輸出條件,使用規(guī)則(1);(4)根據規(guī)格說明的每一個輸出條件,使用規(guī)則(2);(5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應選取集合的第一個和最后一個元素作為測試用例;(6)如果程序用了一個內部數據結構,應該選取這個內部數據結構的邊界上的值作為測試用例;(7)分析規(guī)格說明,找出其他可能的邊界條件。2.4黑盒測試——錯誤推測使用邊界分析法和等價劃分技術,可以幫助開發(fā)人員設計具有代表性的、容易暴露程序錯誤的測試用例。但是,不同類型不同特點的程序通常有一些特殊的容易出錯的情況。此外,有時分別使用每組測試數據時程序都能正常工作,這些輸入數據的組合卻可能檢測出程序的錯誤。一般說來,即使是一個比較小的程序,可能的輸入組合數也往往十分巨大,因此必須依靠測試人員的經驗和直覺,從各種可能的測試用例中選出一些最可能引起程序出錯的方案。對于程序中可能存在哪類錯誤的推測,是挑選測試用例時的一個重要因素。2.4黑盒測試——因果圖等價類劃分和邊界值分析這兩種方法并沒有考慮到輸入情況的各種組合,也沒有考慮到各個輸入情況之間的依賴關系。輸入條件之間的相互組合,可能會產生一些新的情況。用前面兩種測試方法時可以檢測到各個輸入條件可能出錯的情況,但卻忽略了多個條件組合起來時出錯的情況。但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多。因此必須考慮采用一種適合于描述對于多種條件的組合,相應產生多個動作的形式來考慮設計測試用例。這就需要利用因果圖。因果圖考慮了多個輸入之間的相互組合與相互制約關系,按一定步驟,高效率地選擇測試用例,同時還能指出程序規(guī)格說明中存在的問題。2.4黑盒測試——因果圖利用因果圖生成測試用例的步驟(1)分析軟件規(guī)格說明中,哪些是原因(即輸入條件或輸入條件的等價類),哪些是結果(即輸出條件),并給每個原因和結果賦予一個標識符。(2)分析軟件規(guī)格說明中的語義。找出原因與結果之間,原因與原因之間對應的關系。根據這些關系,畫出因果圖。(3)由于語法或環(huán)境限制,有些原因與原因之間,原因與結果之間的組合情況不可能出現。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。(4)把因果圖轉換為判定表。(5)以判定表的每一列為依據來設計測試用例。2.4黑盒測試——因果圖因果圖中的基本符號2.4黑盒測試——因果圖輸入的約束條件2.4黑盒測試——因果圖因果圖類型劃分(1)形象因果圖(2)數據因果圖2.4黑盒測試——因果圖應注意的幾個問題(1)從作圖的意圖考慮,可以分為問題因果圖和目標因果圖。問題因果圖是尋找問題的起因,回答“為什么”的問題。目標因果圖是用來尋找解決某問題的方法或達到某個目標的途徑,回答了“如何做”的問題。(2)依照軟件產品的特性不同,應選擇不同的因素來進行分析。選擇因素時要充分考慮問題所處的環(huán)境特點和影響等因素,不可以不經考慮隨便套用,否則弄巧成拙,致使簡單的問題更為復雜化。2.5白盒測試白盒測試要求測試人員清楚盒子內部的內容以及內部如何運作,也就是說白盒測試法是通過分析程序內部的邏輯與程序執(zhí)行路線來設計測試用例的測試方法,因此白盒測試也被稱為邏輯驅動測試,以測試的深度為主。由于這種方法按照程序內部的邏輯進行測試,檢驗程序中的每條通路是否都能按預定要求正確工作,所以白盒測試又稱為結構測試。2.5白盒測試白盒測試的作用由于軟件可能存在缺陷,所以要花費時間和精力來測試邏輯細節(jié),軟件存在的缺陷主要包括:1.邏輯錯誤和不正確的假設。當設計和實現主流之外的功能、條件、或控制時,往往出現錯誤。2.主觀相信不可能執(zhí)行某條邏輯路徑,但在正常的情況下可能被執(zhí)行。同時控制流和數據流的一些無意識的假設可能導致設計的錯誤,只有通過路徑測試才能發(fā)現這些錯誤。3.隨機的錯誤。當一個程序被翻譯成程序設計語言的源代碼時,有可能產生某些錯誤,多數可被語法檢查機制發(fā)現,但是還有些只有在進行白盒測試時才可被發(fā)現。2.5白盒測試程序結構分析——控制流分析2.5白盒測試程序結構分析——數據流分析可以利用數據流分析查找使用了未定義的變量錯誤,或定義的變量從未使用過等情況,這些都是程序錯誤的表現形式,如變量名混淆、拼錯變量名字、丟失語句等等。如果程序中的某一語句執(zhí)行時能改變程序中變量V的值,則稱變量V被該語句定義。如果某一語句的執(zhí)行引用了程序中變量V的值,則稱該語句引用了變量V。2.5白盒測試——邏輯覆蓋邏輯覆蓋分類(1)語句覆蓋(2)判定覆蓋(3)條件覆蓋(4)判定/條件覆蓋(5)條件組合覆蓋(6)路徑覆蓋2.5白盒測試——邏輯覆蓋邏輯覆蓋準則(1)ESTCA(ErrorSensitiveTestCasesAnalysis)覆蓋規(guī)則1
對于ArelB(rel可以是<、=、>)型的分支謂詞,應適當地選擇A與B的值,使得測試執(zhí)行到該分支語句時,A<B、A=B和A>B的情況分別出現一次。規(guī)則2
對于Arel1C(rel1可以是>或<,A是變量,C是常量)型的分支謂詞,當rel1為<時,應適當地選擇A的值,使:A=C-M(M是距C最小的機器允許的正數,若A和C均為整型時,M=1)。同樣,當rel1為>時,應適當地選擇A,使:A=C+M規(guī)則3
對輸入的變量賦值,使其在每一測試用例中均有不同的值與符號,并與同一組測試用例中其他變量的值與符號不一致。2.5白盒測試——邏輯覆蓋邏輯覆蓋準則(2)LCSAJ覆蓋[第一層]:語句覆蓋[第二層]:分支覆蓋[第三層]:LCSAJ覆蓋。即程序中的每一個LCSAJ都至少在測試中經歷過一次。[第四層]:兩兩LCSAJ覆蓋。即程序中每兩個首尾相連的LCSAJ組合起來在測試中都要經歷一次?!鄣趎+2層]:每n個首尾相連的LCSAJ組合在測試中都要經歷一次。2.5白盒測試程序插裝程序插裝是一種基本的測試手段,是借助向被測程序中插入操作(語句)來達到測試的目的。那些被插入的語句稱為“探測器”或“探針”。在程序特定部位插入“探針”的目的是為了把程序執(zhí)行過程中發(fā)生的一些重要事件記錄下來,如語句執(zhí)行次數、變量值的變化情況、指針的改變等。2.5白盒測試符號測試符號測試的基本思想是允許程序的輸入不僅可以是數值數據,也可以包括符號值。符號可以是符號變量,也可以是包含這些符號變量的一個表達式。這樣,在執(zhí)行被測程序的過程中符號的計算就代替了普通測試執(zhí)行中對測試用例的數值計算,所得的結果是符號公式或符號謂詞。2.5白盒測試符號測試是程序測試與程序驗證的一個折衷方法。一方面,它沿用了傳統(tǒng)的程序測試方法,通過運行被測試程序來檢驗它的可靠性。另一方面,由于一次符號測試的結果代表了一大類普通測試的結果,證明了程序接受此類輸入后,所得的輸出結果是否正確。理想的情況是程序中僅有有限的幾條可執(zhí)行路徑,若對這幾條路徑都完成了符號測試,確認程序正確性的可能就更大。符號測試方法的優(yōu)點是:可以很容易地確定所給的一組測試用例是否覆蓋了程序的各條路徑。對于任何一組測試用例,可以首先確定它所經歷的測試路徑,然后,再給出輸入變量的符號值,進而得到路徑條件。2.5白盒測試程序變異程序變異方法是一種錯誤驅動測試,錯誤驅動測試分為程序強變異和程序弱變異。1.程序強變異2.程序弱變異2.6白盒測試和黑盒測試的比較白盒測試考慮了黑盒測試不考慮的方面。同樣地,黑盒測試也考慮了白盒測試不考慮的方面。白盒測試只考慮測試軟件產品,它不保證完整的需求規(guī)格
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 非接觸性標測系統(tǒng)引導下的房顫射頻消融術
- 2025年苯噻草胺合作協(xié)議書
- 全日制研究生定向培養(yǎng)協(xié)議書(2篇)
- 管理體系工作參考計劃范文5篇
- 攤位租賃市場租賃協(xié)議
- 旅游接待用車租賃合同
- 財產租賃合同樣書
- 2025年機械自動采樣設備項目發(fā)展計劃
- 八年級語文上冊第五單元寫作說明事物要抓住特征教案新人教版1
- 2024年玉米種植、收購、加工一體化服務合同3篇
- 2022年同等學力申碩英語學科模擬試題(4套全部有解析)
- 2023事業(yè)單位資料分析考試內容:資料分析考試練習題
- ktv營運總監(jiān)崗位職責
- 三級配電箱巡檢記錄
- 《全國統(tǒng)一安裝工程預算定額》工程量計算規(guī)則
- GA/T 798-2008排油煙氣防火止回閥
- GA/T 1163-2014人類DNA熒光標記STR分型結果的分析及應用
- 《中國紅》詩歌朗誦
- 光伏工程啟動驗收鑒定書
- 承攬合同糾紛答辯狀范例2篇
- 招聘與錄用選擇題
評論
0/150
提交評論