信息系統(tǒng)分析與開發(fā)技術(shù)(第3版) 課件 第九章 信息系統(tǒng)測試方法和技術(shù)_第1頁
信息系統(tǒng)分析與開發(fā)技術(shù)(第3版) 課件 第九章 信息系統(tǒng)測試方法和技術(shù)_第2頁
信息系統(tǒng)分析與開發(fā)技術(shù)(第3版) 課件 第九章 信息系統(tǒng)測試方法和技術(shù)_第3頁
信息系統(tǒng)分析與開發(fā)技術(shù)(第3版) 課件 第九章 信息系統(tǒng)測試方法和技術(shù)_第4頁
信息系統(tǒng)分析與開發(fā)技術(shù)(第3版) 課件 第九章 信息系統(tǒng)測試方法和技術(shù)_第5頁
已閱讀5頁,還剩114頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第九章信息系統(tǒng)測試方法和技術(shù)目錄9.1測試概述9.2測試步驟9.3測試方法9.4測試過程9.5面向?qū)ο蟮臏y試9.6系統(tǒng)測試管理9.7信息系統(tǒng)測試案例1983年IEEE提出的軟件工程術(shù)語中給軟件測試下的定義是:“使用人工或自動的手段來運行或測定某個軟件系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清預期結(jié)果與實際結(jié)果之間的差別”。該定義明確指出測試的目的是為了檢驗信息系統(tǒng)是否滿足需求。GrenfordJ.Myers對測試的概念和目標的歸納: ⑴測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程; ⑵測試是為了證明程序有錯,而不是證明程序無錯誤;⑶好的測試方案是能夠發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案; ⑷成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。

9.1.1測試的概念和目標9.1測試概述測試的目標就是希望能以最少的人力和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷。從上述的目標可以歸納出測試的定義是“為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”。具體的說,測試是根據(jù)開發(fā)各階段的需求、設(shè)計等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計測試用例(即輸入數(shù)據(jù)和預期的輸出結(jié)果),并利用這些測試用例來運行程序,以便發(fā)現(xiàn)錯誤的過程。9.1.1測試的概念和目標9.1測試概述假設(shè)一個程序P有輸入量X和Y及輸出量Z。在字長為32位的計算機上運行。若X、Y取整數(shù),按黑盒方法進行窮舉測試:可能采用的測試數(shù)據(jù)組:232×232

=264

如果測試一組數(shù)據(jù)需要1毫秒,一年工作365×24小時,完成所有測試需5億年

9.1.1測試的概念和目標9.1測試概述白盒測試對一個具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能也是天文數(shù)字。給出一個小程序的流程圖,它包括了一個執(zhí)行20次的循環(huán),包含的不同執(zhí)行路徑數(shù)達520條。對每一條路徑進行測試需要1毫秒,一年工作365×24小時,測試完需3170年

9.1.1測試的概念和目標9.1測試概述

不論使用什么測試技術(shù),我們都不可能采用窮舉測試,如何選擇測試用例?

以盡可能少的數(shù)據(jù)發(fā)現(xiàn)盡可能多的錯誤

9.1.1測試的概念和目標9.1測試概述信息系統(tǒng)測試應(yīng)包括軟件測試、硬件測試和網(wǎng)絡(luò)測試。硬件測試、網(wǎng)絡(luò)測試可以根據(jù)具體的性能指標來進行,而信息系統(tǒng)的開發(fā)工作主要集中在軟件上。所以我們所說的測試更多的是指軟件測試。軟件測試不僅是測試程序,而是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的最終復審,是軟件質(zhì)量保證的關(guān)鍵步驟。

9.1.1測試的概念和目標9.1測試概述1.給測試配備最好的人員2.測試必須由獨立的部門實施3.應(yīng)當對每一個測試結(jié)果做全面的檢查。4.應(yīng)當盡早地、及時地和不斷地進行測試5.測試用例應(yīng)由輸入數(shù)據(jù)和與之對應(yīng)的預期輸出結(jié)果組成。6.設(shè)計測試用例時,應(yīng)當包括合理的輸入條件和不合理的輸入條件7.嚴格執(zhí)行測試計劃,排除測試的隨意性8.充分重視測試中的群集現(xiàn)象9.妥善保存所有的測試數(shù)據(jù)(文件)9.1.2測試的原則9.1測試概述①按照是否關(guān)注軟件結(jié)構(gòu)與算法分類,可以分為黑盒測試和白盒測試。②按照程序是否被執(zhí)行分類,可以分為靜態(tài)測試和動態(tài)測試。③按照信息系統(tǒng)測試過程分類,可以分為單元測試、集成測試、確認測試、驗收測試和系統(tǒng)測試。④按照測試對象分類,可以分為單元測試、組件測試、模塊測試、程序測試、系統(tǒng)測試和文檔測試。⑤按照信息系統(tǒng)測試的內(nèi)容分類,可以分為回歸測試、功能測試、負載測試、壓力測試、性能測試、易用性測試、安裝與反安裝測試、恢復測試、安全性測試、兼容性測試和比較測試。⑥按照測試執(zhí)行時是否需要人工干預分類,可以分為手工測試和自動化測試。9.1.3測試分類9.1測試概述目錄9.1測試概述9.2測試步驟9.3測試方法9.4測試過程9.5面向?qū)ο蟮臏y試9.6系統(tǒng)測試管理9.7信息系統(tǒng)測試案例(1)擬定測試計劃在制定測試計劃時,要充分考慮整個項目的開發(fā)時間和開發(fā)進度,以及一些人為因素、客觀條件等,使得測試計劃是可行的。測試計劃的主要內(nèi)容有測試內(nèi)容、進度安排、測試所需的環(huán)境和條件(包括設(shè)備、被測項目、人員等)、測試培訓安排等。(2)編制測試大綱測試大綱是測試的依據(jù)。它明確詳盡地規(guī)定了在測試中針對系統(tǒng)的每一項功能或特性所必須完成的基本測試項目和測試完成的標準。無論是自動測試還是手動測試,都必須滿足測試大綱的要求。9.2測試步驟(3)設(shè)計和生成測試用例。在設(shè)計測試用例時,產(chǎn)生測試設(shè)計說明文檔,其內(nèi)容主要包括被測項目、輸入數(shù)據(jù)、測試過程、預期輸出結(jié)果等。(4)實施測試。測試的實施階段是由一系列的測試周期組成的。在每個測試周期中,測試人員和開發(fā)人員將依據(jù)預先編制好的測試大綱和準備好的測試用例,對被測軟件或設(shè)備進行完整的測試。(5)生成測試報告。測試完成后,要形成相應(yīng)的測試報告,主要對測試進行概要說明,列出測試的結(jié)論,指出缺陷和錯誤。9.2測試步驟

由于每種測試所花費的成本不同,如果測試步驟安排得不合理,將造成為了尋找錯誤原因而浪費大量的時間,以及重復測試。因此,合理安排測試步驟對于提高測試效率、降低測試成本有很大的作用。信息系統(tǒng)測試分別按硬件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)和軟件系統(tǒng)進行測試,最后對整個系統(tǒng)進行總的綜合測試。測試的步驟如圖7.1所示。9.2測試步驟9.2測試步驟在進行信息系統(tǒng)開發(fā)中,通常需要根據(jù)項目的情況選購硬件設(shè)備。在設(shè)備到貨后,應(yīng)在各個相關(guān)廠商配合下進行初驗測試,初驗通過后將與軟件、網(wǎng)絡(luò)等一起進行系統(tǒng)測試。初驗測試所作的工作主要有:①配置檢測。檢測是否按合同提供了相應(yīng)的配置。②硬件設(shè)備的外觀檢查。③硬件測試。首先進行加電檢測,觀看運行狀態(tài)是否正常,有無報警、屏幕有無亂碼提示和死機現(xiàn)象,是否能進入正常提示狀態(tài)。然后進行操作檢測,用一些常用的命令來檢測機器是否能執(zhí)行命令,結(jié)果是否正常。通過以上測試,要求形成相應(yīng)的硬件測試報告,在測試報告中包含測試步驟、測試過程和測試結(jié)論等。

9.2.1硬件測試9.2測試步驟如果信息系統(tǒng)不是單機,需要在局域網(wǎng)或廣域網(wǎng)運行,按合同會選購網(wǎng)絡(luò)設(shè)備。在網(wǎng)絡(luò)設(shè)備到貨后,應(yīng)在各個相關(guān)廠商配合下進行初驗測試,初驗通過后將與軟件、硬件等一起進行系統(tǒng)測試。初驗測試所做的工作主要有:①網(wǎng)絡(luò)設(shè)備的外觀檢查。對交換機、路由器等網(wǎng)絡(luò)設(shè)備及配件進行開箱檢查,檢查外觀有無明顯劃痕和損傷。②硬件測試。對交換機、路由器等硬件進行加電檢測,觀察其工作狀態(tài)是否正常,有無錯誤和報警。③網(wǎng)絡(luò)連通測試。檢測網(wǎng)絡(luò)是否連通??梢杂肞ING、TELNET、FTP等命令來檢查。通過以上測試,要求形成相應(yīng)的網(wǎng)絡(luò)測試報告,在測試報告中包含測試步驟、測試過程和測試的結(jié)論等。

9.2.2網(wǎng)絡(luò)測試9.2測試步驟軟件測試可以分成四個步驟:單元測試、集成測試、系統(tǒng)測試和驗收測試。單元測試是對程序的最小單位——模塊進行測試,檢驗每個模塊是否能單獨工作,從而發(fā)現(xiàn)模塊的編碼問題和算法問題;然后將多個模塊連接起來,進行集成測試,以檢驗概要設(shè)計中對模塊之間接口設(shè)計的問題;系統(tǒng)測試是將開發(fā)的軟件與硬件和其它因素綜合起來進行全面的檢測,對整個系統(tǒng)進行總的功能、性能等方面的測試;在提交用戶的時候進行驗收測試,確認系統(tǒng)是否已經(jīng)滿足客戶的需求。

9.2.3軟件測試9.2測試步驟目錄9.1測試概述9.2測試步驟9.3測試方法9.4測試過程9.5面向?qū)ο蟮臏y試9.6系統(tǒng)測試管理9.7信息系統(tǒng)測試案例1.白盒測試白盒測試(White-boxTesting),也稱為結(jié)構(gòu)測試,將軟件看成透明的白盒,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯來設(shè)計測試用例,對程序的路徑和過程進行測試,檢查是否滿足設(shè)計的需要,主要用于軟件驗證。白盒測試是以程序的源代碼為基礎(chǔ)進行測試而不使用用戶界面。這種類型的測試需要從代碼句法中發(fā)現(xiàn)內(nèi)部代碼在算法、溢出、路徑、條件等中的缺陷或者錯誤,進而加以修正。測試者必須看到被測的源程序,以被測對象的內(nèi)部設(shè)計知識為基礎(chǔ),選定專門的測試用例,以便檢查和發(fā)現(xiàn)邏輯路徑、模塊間接口、共享和傳遞數(shù)據(jù)結(jié)構(gòu)中的缺陷。

9.3.1白盒測試和黑盒測試9.3測試方法1.白盒測試白盒測試的原則為:(1)程序模塊中的所有獨立路徑至少執(zhí)行一次;(2)在所有的邏輯判斷中,取“真”和取“假”的兩種情況至少都能執(zhí)行一次;(3)每個循環(huán)都應(yīng)在邊界條件和一般條件下各執(zhí)行一次;(4)測試程序內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。白盒測試主要方法有邏輯覆蓋和基本路徑測試。邏輯覆蓋又包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋等。

9.3.1白盒測試和黑盒測試9.3測試方法白盒測試用例設(shè)計包括:(1)邏輯覆蓋,以程序內(nèi)在邏輯結(jié)構(gòu)為基礎(chǔ)的測試,包括以下六種類型:①語句覆蓋:每一條可執(zhí)行語句至少覆蓋一次;②條件覆蓋:設(shè)計足夠多的測試用例,運行所測程序,使程序中每個判斷的每個條件的每個可能取值至少執(zhí)行一次;③判定覆蓋:又稱為分支覆蓋,設(shè)計若干個測試用例,運行所測程序,使程序中每個判斷的取真分支和取假分支至少執(zhí)行一次;

9.3.1白盒測試和黑盒測試9.3測試方法(1)邏輯覆蓋(續(xù))④判定/條件覆蓋:設(shè)計足夠多的測試用例,運行所測程序,使程序中每個判斷的每個條件的所有可能取值至少執(zhí)行一次,并且每個可能的判斷結(jié)果也至少執(zhí)行一次;⑤路徑覆蓋:設(shè)計足夠多的測試用例,運行所測程序,要覆蓋程序中所有可能的路徑;⑥條件組合覆蓋:設(shè)計足夠多的測試用例,運行所測程序,使程序中每個判斷的所有可能的條件取值至少執(zhí)行一次。

9.3.1白盒測試和黑盒測試9.3測試方法(A>1)

and

(B=0)(A=2)

or

(X>1)X=X/AX=X+1TTFFabdce

9.3.1白盒測試和黑盒測試9.3測試方法1.白盒測試測試用例的設(shè)計格式如下【輸入的(A,B,X),輸出的(A,B,X)】為圖例設(shè)計滿足語句覆蓋的測試用例是:【(2,0,4),(2,0,3)】覆蓋ace語句覆蓋是最弱的邏輯覆蓋準則語句覆蓋9.3.1白盒測試和黑盒測試9.3測試方法滿足要求的測試用例:【(2,0,4),(2,0,3)】覆蓋ace【(1,1,1),(1,1,1)】覆蓋abd判定覆蓋1.白盒測試

9.3.1白盒測試和黑盒測試9.3測試方法對于第一個判斷:條件A>1取真為,取假為

條件B=0取真為,取假為對于第二個判斷:條件A=2取真為,取假為

條件X>1取真為,取假為條件覆蓋T4

9.3.1白盒測試和黑盒測試9.3測試方法條件覆蓋測試用例覆蓋分支條件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)】L3(b,e)或【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e)

9.3.1白盒測試和黑盒測試9.3測試方法條件組合覆蓋就是設(shè)計足夠的測試用例,運行被測程序,使得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。記 ①A>1,B=0作

②A>1,B≠0作

③A≯1,B=0作 ④A≯1,B≠0作 ⑤A=2,X>1作

⑥A=2,X≯1作

⑦A≠2,X>1作

⑧A≠2,X≯1作

9.3.1白盒測試和黑盒測試9.3測試方法測試用例覆蓋條件覆蓋組合【(2,0,4),(2,0,3)】(L1) ①,⑤【(2,1,1),(2,1,2)】(L3) ②,⑥【(1,0,3),(1,0,4)】(L3) ③,⑦【(1,1,1),(1,1,1)】(L2) ④,⑧

9.3.1白盒測試和黑盒測試1.白盒測試9.3測試方法(2)基本路徑測試①程序的控制流圖:描述程序控制流的一種圖示方法;②計算程序環(huán)境復雜性:通過對程序控制流程圖的分析和判斷來計算模塊復雜性。從程序的環(huán)路復雜性可導出程序基本路徑集合中的獨立路徑條數(shù),這是確定程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界;③導出測試用例:通過程序控制流程圖的基本路徑來導出基本的程序路徑的集合;④準備測試用例:確保基本路徑集中的每一條路徑的執(zhí)行;⑤圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現(xiàn)自動地確定一個基本路徑集。

9.3.1白盒測試和黑盒測試1.白盒測試9.3測試方法

9.3.1白盒測試和黑盒測試1.白盒測試9.3測試方法2.黑盒測試黑盒測試(Black-boxTesting),也稱為功能測試或數(shù)據(jù)驅(qū)動測試,將軟件看成不能被打開的黑盒子,在完全不考慮軟件的內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。根據(jù)系統(tǒng)分析說明書設(shè)計測試用例,通過輸入和輸出的特性檢測判定是否滿足指定的功能。黑盒測試是從用戶觀點出發(fā)的測試,已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用。在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試。黑盒測試只檢查程序功能是否符合需求規(guī)格說明書的規(guī)定,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。

9.3.1白盒測試和黑盒測試9.3測試方法

黑盒測試只作用于程序的接口處,主要是為了發(fā)現(xiàn)以下幾類錯誤:(1)是否有錯誤的功能或遺漏的功能?(2)界面是否存在錯誤?輸入是否能夠正確接受?輸出是否正確?(3)是否有數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤?(4)性能是否能夠接受?(5)是否有初始化或終止性錯誤?黑盒測試方法主要用于軟件確認測試,具體方法包括等價類劃分、邊界值分析、因果圖和錯誤推測法等。

9.3.1白盒測試和黑盒測試9.3測試方法黑盒測試用例設(shè)計包括:(1)等價類劃分:把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。(2)邊界值分析:對輸入的條件進行分析并且汲取其中的邊界值條件,然后通過對這些邊界值的測試來查出更多的錯誤。(3)錯誤推測法:靠經(jīng)驗和直覺來推測程序中可能存在的各種錯誤,從而有針對性地編寫測試用例。可以列舉出可能的錯誤和可能發(fā)生錯誤的地方,然后選擇用例。(4)因果圖:通過畫因果圖,在圖上標明約束和限制,轉(zhuǎn)換成判定表,然后設(shè)計測試用例。因果圖法適合于檢查程序輸入條件的各種組合情況。(5)功能圖FD:通過使用功能圖形式化地表示程序的功能說明,并機械地生成功能圖的測試用例。

9.3.1白盒測試和黑盒測試9.3測試方法白盒測試和黑盒測試這兩種測試方法從完全不同的起點出發(fā),各有側(cè)重、各有優(yōu)缺點,構(gòu)成互補關(guān)系。白盒測試可以有效地發(fā)現(xiàn)程序內(nèi)部的編碼和邏輯錯誤,但無法檢驗出程序是否完成了規(guī)定的功能。黑盒測試可以根據(jù)程序的規(guī)格說明檢測出程序是否完成了規(guī)定的功能,但未必能夠提供對代碼的完全覆蓋,而且規(guī)格說明往往會出現(xiàn)歧義或不完整的情況,這在一定程度上降低了黑盒測試的效果。因此,在實際測試中這兩種方法往往被結(jié)合起來使用,一般來說在單元測試階段白盒法使用較多而在集成測試階段則較多用到黑盒方法。

9.3.1白盒測試和黑盒測試9.3測試方法1.靜態(tài)測試靜態(tài)測試(StaticTest)是對軟件文檔或程序進行掃描分析,不運行程序代碼。采用人工檢測或計算機輔助靜態(tài)分析工具評審軟件設(shè)計規(guī)格說明書和程序代碼,度量程序靜態(tài)復雜度,檢查軟件是否符合編程標準,靜態(tài)測試只進行特性分析。

9.3.2靜態(tài)測試和動態(tài)測試9.3測試方法1)編碼的標準和規(guī)范標準是建立起來和必須遵守的規(guī)則。規(guī)范是建議最佳做法,推薦更好方式。2)代碼走查代碼走查依靠人工或借助分析工具檢查程序代碼以發(fā)現(xiàn)錯誤或缺陷。3)代碼審查代碼審查是一種正式的檢查和評估方法,它是用逐步檢查源代碼中有無邏輯或語法錯誤的辦法來檢測故障。4)評審評審通常在審查后進行,審查小組根據(jù)代碼審查的錯誤記錄來評估該程序,決定是否需要重新進行審議。

9.3.2靜態(tài)測試和動態(tài)測試9.3測試方法2.動態(tài)測試動態(tài)測試(DynamicTest)的基本特征是通過運行軟件來檢驗軟件的動態(tài)行為和運行結(jié)果的正確性,包括被測程序、測試數(shù)據(jù)和軟件需求規(guī)約三個基本要素。根據(jù)動態(tài)測試在軟件開發(fā)過程中所處的階段及其作用,可分為單元測試、集成測試、系統(tǒng)測試、驗收測試和回歸測試,貫穿于整個軟件開發(fā)過程的各個階段。

動態(tài)測試包括覆蓋率分析、功能確認與接口測試、性能分析等內(nèi)容。

9.3.2靜態(tài)測試和動態(tài)測試9.3測試方法1)覆蓋率分析覆蓋率分析主要對代碼的執(zhí)行路徑覆蓋范圍進行評估,語句覆蓋、判定覆蓋、條件覆蓋、條件/判定覆蓋、修正條件/判定覆蓋、基本路徑覆蓋都是從不同要求出發(fā),為設(shè)計測試用例提出依據(jù)。2)功能確認與接口測試這部分的測試包括各個單元功能的正確執(zhí)行、單元間的接口,包括單元接口、局部數(shù)據(jù)結(jié)構(gòu)、重要的執(zhí)行路徑、錯誤處理的路徑和影響上述幾點的邊界條件等內(nèi)容。

9.3.2靜態(tài)測試和動態(tài)測試9.3測試方法3)性能分析代碼運行速度緩慢是開發(fā)過程中一個重要問題。如果不能解決應(yīng)用程序的性能問題,將降低并極大地影響應(yīng)用程序的質(zhì)量,于是查找和修改性能瓶頸成為調(diào)整整個代碼性能的關(guān)鍵。目前性能分析工具大致分為純軟件的測試工具、純硬件的測試工具(如邏輯分析儀和仿真器等)和軟硬件結(jié)合的測試工具三類。2.動態(tài)測試

9.3.2靜態(tài)測試和動態(tài)測試9.3測試方法1.驗證驗證是檢驗軟件是否已正確地實現(xiàn)了產(chǎn)品規(guī)格說明書所定義的系統(tǒng)功能和特性。驗證過程提供證據(jù)表明軟件相關(guān)產(chǎn)品與所有生命周期活動的要求(如正確性、完整性、一致性和準確性等)相一致。驗證工作的內(nèi)容:1)驗證工具驗證的主要工具是審查單,對于不同的驗證類型有不同的審查單。例如,有需求審查單、功能設(shè)計規(guī)格說明審查單、內(nèi)部設(shè)計說明審查單、測試計劃審查單、代碼驗證審查單等。

9.3.3驗證和確認9.3測試方法驗證工作的內(nèi)容:2)驗證不同階段的文檔①驗證需求:驗證需求就是要保證用戶的需求在轉(zhuǎn)化成設(shè)計之前能得到完全理解。②驗證功能設(shè)計:驗證功能設(shè)計就是要確保功能設(shè)計完全符合用戶的需求。③驗證內(nèi)部設(shè)計:驗證內(nèi)部設(shè)計就是確保內(nèi)部設(shè)計完全符合功能設(shè)計規(guī)格說明。④驗證代碼:驗證代碼就是要確保代碼完全符合內(nèi)部設(shè)計規(guī)格說明。

9.3.3驗證和確認9.3測試方法2.確認確認是指能夠保證所開發(fā)的系統(tǒng)可追溯到用戶需求的一系列活動。確認過程提供證據(jù)表明軟件是否滿足系統(tǒng)需求,并解決了相應(yīng)問題。確認主要包括單元確認、集成確認、系統(tǒng)確認和驗收確認。驗證是檢驗開發(fā)的軟件產(chǎn)品和設(shè)計規(guī)格說明書的一致性,而確認是檢驗產(chǎn)品功能的有效性,即是否滿足用戶的實際需求。驗證和確認是互相補充的。因此應(yīng)將驗證和確認結(jié)合起來,發(fā)揮它們的最大作用。

9.3.3驗證和確認9.3測試方法1.自動化測試軟件測試的工作量往往很大,而且在軟件測試的過程中有許多工作是重復性的。由于在軟件生命周期中約50%的成本可能用于測試,因此如何使軟件測試自動化已成為軟件測試人員研究的課題。軟件測試自動化的程度越高,就會使測試人員感到測試變得非常容易,同時能夠幫助測試人員進行更加徹底的測試,降低軟件測試的成本,幫助提高軟件質(zhì)量。軟件測試自動化還有可能使原來一些手工不能測試的工作得以進行。

9.3.4自動化測試和隨機測試9.3測試方法1.自動化測試軟件測試自動化是試圖用自動化手段幫助人們進行測試。軟件測試活動本身質(zhì)量的高低從根本上來說取決于所采用的軟件測試方法。如果所采用的軟件測試方法本身并不是一種好方法,也就不能指望將這種軟件測試方法自動化以后能夠帶來高質(zhì)量的測試。軟件測試自動化涉及到軟件測試活動的各個方面。從選擇和產(chǎn)生測試數(shù)據(jù)、組織軟件的測試運行、考察和記錄軟件動態(tài)運行的行為、判斷軟件動態(tài)行為的正確性、結(jié)束測試過程和通過軟件測試結(jié)果分析軟件性質(zhì)等各個方面都存在可以自動化的可能。在軟件生命周期中各個階段都可以使用到各種自動化測試工具,這些工具常被稱為CAST(ComputerAidedSoftwareTesting)工具。

9.3.4自動化測試和隨機測試9.3測試方法自動化測試的優(yōu)點:(1)具有一致性和可重復性。(2)方便進行回歸測試。(3)增加軟件信任度。(4)更好地利用資源。(5)速度快,效率高。

9.3.4自動化測試和隨機測試9.3測試方法在以下的一些情況下可能比較適合自動化測試:(1)產(chǎn)品型項目。(2)能夠自動編譯、自動發(fā)布的系統(tǒng)。(3)增量式開發(fā)、持續(xù)集成的項目。(4)回歸測試。(5)需要頻繁運行測試。(6)多次重復、機械性動作。(7)將繁瑣的任務(wù)轉(zhuǎn)化為自動化測試。

9.3.4自動化測試和隨機測試9.3測試方法自動化測試的局限性:(1)軟件自動化測試并不能代替人的工作,不能期望將所有的測試活動進行自動化。軟件測試工具不能發(fā)現(xiàn)所有的問題,測試人員還需要做大量的工作。(2)軟件測試自動化可能降低測試的效率。(3)自動化測試不能發(fā)現(xiàn)大量的錯誤。(4)缺乏測試經(jīng)驗。如果測試的組織差、文檔較少或不一致,則自動化測試的效果會比較差。(5)技術(shù)問題。商用軟件自動化測試工具是軟件產(chǎn)品。如果產(chǎn)品不具備解決問題的能力和技術(shù)支持或者產(chǎn)品適應(yīng)環(huán)境變化的能力不強,將使得軟件自動化測試工具的作用大大降低。

9.3.4自動化測試和隨機測試9.3測試方法2.隨機測試隨機測試(Ad-hocTesting)隨機測試沒有書面測試用例、記錄期望結(jié)果、檢查列表、腳本或指令,主要是根據(jù)測試者的經(jīng)驗對軟件進行功能和性能抽查?;舅枷胧菍浖妮斎肟臻g進行隨機取樣,以此作為軟件系統(tǒng)測試數(shù)據(jù)。隨機取樣可按照軟件實際使用時的概率分布進行,也可按照其它概率分布進行。前者稱為代表性隨機測試,后者稱為非代表性隨機測試。

9.3.4自動化測試和隨機測試9.3測試方法隨機測試是根據(jù)測試說明書執(zhí)行用例測試的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試用例(TestCase)沒有覆蓋到的部分。對于軟件更新和新增加的功能要重點測試。重點對一些特殊點、特殊的使用環(huán)境、并發(fā)性進行檢查。尤其對以前測試發(fā)現(xiàn)的重大Bug,進行再次測試,可以結(jié)合回歸測試一起進行。

9.3.4自動化測試和隨機測試9.3測試方法理論上,每一個被測軟件版本都需要執(zhí)行隨機測試,尤其對于將要發(fā)布的版本更要重視隨機測試。隨機測試最好由具有豐富測試經(jīng)驗的熟悉被測軟件的測試人員進行測試。對于被測試的軟件越熟悉,執(zhí)行隨機測試越容易。只有不斷地積累測試經(jīng)驗,包括具體的測試執(zhí)行和對缺陷跟蹤記錄的分析,不斷總結(jié),才能提高。

9.3.4自動化測試和隨機測試9.3測試方法目錄9.1測試概述9.2測試步驟9.3測試方法9.4測試過程9.5面向?qū)ο蟮臏y試9.6系統(tǒng)測試管理9.7信息系統(tǒng)測試案例1.單元測試的定義單元測試是對軟件基本組成單元進行的測試。單元測試的對象是軟件設(shè)計的最小單位——模塊。單元測試是在系統(tǒng)開發(fā)過程中要進行的最低級別的測試活動,在單元測試活動中,各獨立單元模塊將在與系統(tǒng)的其他部分相隔離的情況下進行測試。單元測試集中對源代碼實現(xiàn)的每一個程序單元進行測試,檢查各個程序模塊是否正確實現(xiàn)了規(guī)定的功能。其目的在于發(fā)現(xiàn)各個模塊內(nèi)部可能存在的各種錯誤。單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例。多個模塊可以并行進行單元測試。

9.4.1單元測試9.4測試過程2.單元測試的目標單元測試的主要目標是確保各單元模塊編碼的正確性,不僅測試代碼的功能性,還要保證代碼在結(jié)構(gòu)上可靠和健全,并且能夠在所有條件下正確響應(yīng)。單元測試的具體目標有:(1)數(shù)據(jù)能夠正確地流入和流出單元;(2)單元內(nèi)部數(shù)據(jù)保持完整性;(3)在為限制數(shù)據(jù)加工而設(shè)置的邊界處,能夠正確工作;(4)單元的運行要滿足特定的邏輯覆蓋;(5)能夠正確、有效地處理單元中發(fā)生的錯誤。

9.4.1單元測試9.4測試過程3.單元測試的任務(wù)單元測試任務(wù):

1)模塊接口測試

2)模塊局部數(shù)據(jù)結(jié)構(gòu)測試

3)模塊中所有獨立執(zhí)行通路測試

4)模塊的各條錯誤處理通路測試

5)模塊邊界條件測試

9.4.1單元測試9.4測試過程4.單元測試過程單元測試的過程主要由以下幾個步驟組成:1)在詳細設(shè)計階段完成單元測試計劃2)建立單元測試環(huán)境,完成測試設(shè)計和開發(fā)3)執(zhí)行單元測試用例,并且詳細記錄測試結(jié)果4)判定測試用例是否通過5)提交《單元測試報告》

9.4.1單元測試9.4測試過程1.集成測試的定義集成測試是在軟件系統(tǒng)集成過程中所進行的測試,將已分別通過測試的單元按照設(shè)計要求組合起來再進行的測試。主要目的是檢查軟件單元之間的接口是否正確。集成測試主要是測試軟件單元的組合能否正常工作以及與其它組的模塊能否集成起來工作,還要測試構(gòu)成系統(tǒng)的所有模塊組合能否正常工作。

9.4.2集成測試9.4測試過程2.集成測試的任務(wù)1)將各模塊連接起來,檢查模塊調(diào)用時,數(shù)據(jù)經(jīng)過接口是否丟失;

2)將各個子功能模塊組合起來,檢查能否達到預期要求的各項功能;

3)一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利影響;

4)全局數(shù)據(jù)結(jié)構(gòu)是否有問題,會不會被異常修改;

5)單個模塊的誤差積累起來,是否被放大,從而達到不可接受的程度。

9.4.2集成測試9.4測試過程3.集成測試的基本方法集成測試通常采用非增量式集成測試和增量式集成測試這兩種模式。(1)非增量式集成測試模式。先分別測試每個模塊,再把所有模塊按設(shè)計要求放在一起結(jié)合成所要的程序。這種方法容易出現(xiàn)混亂,因為測試時可能發(fā)現(xiàn)很多錯誤,為每個錯誤定位和糾正非常困難,并且在改正一個錯誤的同時又可能引入新的錯誤,新舊錯誤混雜,更難斷定出錯的原因和位置。 (2)增量式集成測試模式。把下一個要測試的模塊同已經(jīng)測試好的模塊結(jié)合起來進行測試,測試完成后,再把下一個需要測試的模塊結(jié)合起來測試。程序一段一段地擴展,測試的范圍一步一步地增大,錯誤易于定位和糾正,界面的測試亦可做到完全徹底。

9.4.2集成測試9.4測試過程1.系統(tǒng)測試的定義通過單元測試和集成測試,僅能保證軟件開發(fā)的功能得以實現(xiàn),不能確認在實際運行時,它是否滿足用戶的需要,是否大量存在實際使用條件下會被誘發(fā)產(chǎn)生錯誤的隱患。系統(tǒng)測試將通過確認測試,作為基于計算機系統(tǒng)的一個元素,與計算機硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等系統(tǒng)元素結(jié)合起來,在實際運行環(huán)境下對計算機系統(tǒng)進行一系列的組裝和確認測試。系統(tǒng)測試的目的在于通過與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與其矛盾的地方,系統(tǒng)測試用例應(yīng)根據(jù)需求規(guī)格說明書來設(shè)計,并在實際運行環(huán)境下運行。

9.4.3系統(tǒng)測試9.4測試過程2.系統(tǒng)測試的基本方法1)功能測試(FunctionalTesting)功能測試是系統(tǒng)測試中最基本的測試,它不管軟件內(nèi)部的實現(xiàn)邏輯,主要根據(jù)產(chǎn)品的需求規(guī)格說明書和測試需求列表,驗證產(chǎn)品的功能實現(xiàn)是否符合產(chǎn)品的需求規(guī)格。2)壓力測試(StressTesting)壓力測試也稱為強度測試、負載測試。壓力測試是模擬實際應(yīng)用的軟硬件及用戶使用過程的系統(tǒng)負荷,長時間或超大負荷地運行測試軟件,來測試系統(tǒng)的性能、可靠性、穩(wěn)定性等。壓力測試總是迫使系統(tǒng)在異常的資源配置下運行。

9.4.3系統(tǒng)測試9.4測試過程3)容量測試容量測試目的是通過測試預先分析出反映軟件系統(tǒng)應(yīng)用特征的某項指標的極限值,系統(tǒng)在其極限值狀態(tài)下沒有出現(xiàn)任何軟件故障或還能保持主要功能正常運行。容量測試還將確定測試對象在給定時間內(nèi)能夠持續(xù)處理的最大負載或工作量。對軟件容量的測試,能讓軟件開發(fā)商或用戶了解該軟件系統(tǒng)的承載能力或提供服務(wù)的能力。如某個電子商務(wù)網(wǎng)站所能承受的、同時進行交易或結(jié)算的在線用戶數(shù)。知道了系統(tǒng)的實際容量,如果不能滿足設(shè)計要求,就應(yīng)該尋求新的技術(shù)解決方案,以提高系統(tǒng)的容量。

9.4.3系統(tǒng)測試9.4測試過程

壓力測試、容量測試和性能測試的測試目的雖然有所不同,但其手段和方法在一定程度上比較相似,通常會使用特定的測試工具,來模擬超常的數(shù)據(jù)量、負載等,監(jiān)測系統(tǒng)的各項性能指標,如CPU和內(nèi)存的使用情況、響應(yīng)時間、數(shù)據(jù)傳輸量等。一定要設(shè)法破壞它!

9.4.3系統(tǒng)測試9.4測試過程5)安全測試安全測試檢查系統(tǒng)對非法侵入的防范能力。安全測試期間,測試人員假扮非法入侵者,采用各種辦法試圖突破防線。6)容錯測試容錯測試主要檢查系統(tǒng)的容錯能力。當系統(tǒng)出錯時,能否在指定時間間隔內(nèi)修正錯誤并重新啟動系統(tǒng)。容錯測試首先要采用各種辦法強制系統(tǒng)發(fā)生故障,然后驗證系統(tǒng)是否能盡快恢復。對于自動恢復需驗證重新初始化、檢查點、數(shù)據(jù)恢復和重新啟動等機制的正確性。對于人工干預的恢復系統(tǒng),還需估測平均修復時間,確定其是否在可接受的范圍內(nèi)。

9.4.3系統(tǒng)測試9.4測試過程1.驗收測試的定義驗收測試是在軟件產(chǎn)品完成了功能測試和系統(tǒng)測試之后,在產(chǎn)品發(fā)布之前所進行的軟件測試活動,它是技術(shù)測試的最后一個階段,通過了驗收測試,產(chǎn)品就進入發(fā)布階段。驗收測試一般根據(jù)產(chǎn)品規(guī)格說明書嚴格檢查產(chǎn)品,檢查產(chǎn)品和產(chǎn)品規(guī)格說明書的一致性,同時考慮用戶的實際使用情況,確保所開發(fā)的軟件產(chǎn)品符合用戶的各項要求。驗收測試的目標是確認被測系統(tǒng)滿足其操作需求,并確保在將系統(tǒng)正式交付給用戶前正常工作并可以使用。驗收測試是在測試組的協(xié)助下由一個或多個用戶代表來進行測試。它對應(yīng)于系統(tǒng)開發(fā)的需求分析階段。

9.4.4驗收測試9.4測試過程2.驗收測試標準完成軟件驗收要通過一系列黑盒測試。驗收測試同樣需要制訂測試計劃和過程,測試計劃應(yīng)規(guī)定測試的種類和測試進度,測試過程則定義一些特殊的測試用例,旨在說明軟件與需求是否一致。無論是計劃還是過程,都應(yīng)該著重考慮軟件是否滿足合同規(guī)定的所有功能和性能,文檔資料是否完整、準確,人機界面和其他方面(例如,可移植性、兼容性、錯誤恢復能力和可維護性等)是否令用戶滿意。

9.4.4驗收測試9.4測試過程3.驗收測試的主要內(nèi)容1)配置復審 配置復審是驗收復審的一個重要環(huán)節(jié),其目的在于保證軟件配置齊全、分類有序,并且包括軟件維護所必需的細節(jié)。2)合法性檢查 檢查開發(fā)者在軟件開發(fā)時,使用的開發(fā)工具是否合法。對在編程中使用的一些非本單位自己開發(fā)的,也不是由開發(fā)工具提供的控件、組件、函數(shù)庫等,檢查其是否有合法的發(fā)布許可。3)軟件文檔檢查文檔質(zhì)量的度量準則就是評審各階段文檔的合適性。文檔檢查主要包括:完備性、正確性、簡明性、可追蹤性、自說明性、規(guī)范性。

9.4.4驗收測試9.4測試過程3.驗收測試的主要內(nèi)容4)軟件代碼測試源代碼一般性檢查僅對系統(tǒng)關(guān)鍵模塊的源代碼進行抽查。軟件一致性檢查主要包括編譯檢查、裝/卸載檢查、運行模塊檢查。5)軟件功能和性能檢查軟件功能和性能檢查主要包括界面測試、可用性測試、功能測試、穩(wěn)定性測試、性能測試、強壯性測試、邏輯性測試、破壞性測試、安全性測試等。6)測試結(jié)果交付內(nèi)容測試結(jié)束后,由測試組填寫軟件測試報告,并將測試報告與全部測試材料一并交給用戶代表。測試報告主要有軟件測試計劃、軟件測試日志、軟件文檔檢查報告、軟件代碼測試報告、軟件系統(tǒng)測試報告、測試總結(jié)報告、測試人員簽字登記表。

9.4.4驗收測試9.4測試過程4.α、β測試一個軟件產(chǎn)品,可能擁有眾多用戶,不可能由每個用戶驗收,此時多采用稱為α、β測試的過程,以期發(fā)現(xiàn)那些似乎只有最終用戶才能發(fā)現(xiàn)的問題。α測試是指軟件開發(fā)公司組織內(nèi)部人員模擬各類用戶行為,對即將面市軟件產(chǎn)品(稱為α版本)進行測試,試圖發(fā)現(xiàn)錯誤并修正。α測試的關(guān)鍵在于盡可能逼真地模擬實際運行環(huán)境和用戶對軟件產(chǎn)品的操作并盡最大努力涵蓋所有可能的用戶操作方式。經(jīng)過α測試調(diào)整的軟件產(chǎn)品稱為β版本。β測試是指軟件開發(fā)公司組織各方面的典型用戶在日常工作中實際使用β版本,并要求用戶報告異常情況、提出批評意見。然后軟件開發(fā)公司再對β版本進行改錯和完善。

9.4.4驗收測試9.4測試過程目錄9.1測試概述9.2測試步驟9.3測試方法9.4測試過程9.5面向?qū)ο蟮臏y試9.6系統(tǒng)測試管理9.7信息系統(tǒng)測試案例1.對認定的對象的測試

OOA中認定的對象是對問題空間中的結(jié)構(gòu)、其它系統(tǒng)、設(shè)備、被記憶的事件、系統(tǒng)涉及的人員等實際實例的抽象。對它的測試可以從如下方面考慮:(1)認定的對象是否全面,其名稱應(yīng)該盡量準確、適用,問題空間中所涉及到的實例是否都反映在認定的抽象對象中。(2)認定的對象是否具有多個屬性。只有一個屬性的對象通常應(yīng)看作其它對象的屬性而不是抽象為獨立的對象。

9.5.1面向?qū)ο髮哟谓Y(jié)構(gòu)測試9.5面向?qū)ο蟮臏y試1.對認定的對象的測試(3)對認定為同一對象的實例是否有共同的、區(qū)別于其它實例的共同屬性,是否提供或需要相同的服務(wù),如果服務(wù)隨著不同的實例而變化,認定的對象就需要分解或利用繼承性來分類表示。(4)如果系統(tǒng)沒有必要始終保持對象代表的實例信息、提供或者得到關(guān)于它的服務(wù),那么認定的對象也無必要。

9.5.1面向?qū)ο髮哟谓Y(jié)構(gòu)測試9.5面向?qū)ο蟮臏y試2.對認定的結(jié)構(gòu)的測試認定的結(jié)構(gòu)指的是多種對象的組織方式,用來反映問題空間中的復雜實例和復雜關(guān)系。認定的結(jié)構(gòu)分為兩種:分類結(jié)構(gòu)和組裝結(jié)構(gòu)。分類結(jié)構(gòu)體現(xiàn)了問題空間中實例的一般與特殊的關(guān)系;組裝結(jié)構(gòu)體現(xiàn)了問題空間中實例的整體與局部的關(guān)系。

9.5.1面向?qū)ο髮哟谓Y(jié)構(gòu)測試9.5面向?qū)ο蟮臏y試認定的分類結(jié)構(gòu)測試要點如下:對于結(jié)構(gòu)中的一種對象,尤其是處于高層的對象,是否在問題空間中含有不同于下一層對象的特殊可能性,即是否能派生出下一層對象;對于結(jié)構(gòu)中的一種對象,尤其是處于同一低層的對象,是否能抽象出在現(xiàn)實中有意義的更一般的上層對象;對所有認定的對象,是否能在問題空間內(nèi)向上層抽象出在現(xiàn)實中有意義的對象;高層的對象的特性是否完全體現(xiàn)下層的共性,低層的對象是否有高層特性基礎(chǔ)上的特殊性。

9.5.1面向?qū)ο髮哟谓Y(jié)構(gòu)測試9.5面向?qū)ο蟮臏y試認定的組裝結(jié)構(gòu)測試要點如下:整體(對象)和部件(對象)是否在考慮的問題空間中有實際應(yīng)用,其組裝關(guān)系是否符合現(xiàn)實的關(guān)系。整體(對象)中是否遺漏了反映在問題空間中的有用部件(對象)。部件(對象)是否能夠在空間中組裝新的有現(xiàn)實意義的整體(對象)。

9.5.1面向?qū)ο髮哟谓Y(jié)構(gòu)測試9.5面向?qū)ο蟮臏y試3.對構(gòu)造的類層次結(jié)構(gòu)的測試

為了能充分發(fā)揮面向?qū)ο蟮睦^承共享特性,OOD的類層次結(jié)構(gòu)通?;贠OA中產(chǎn)生的分類結(jié)構(gòu)的原則來組織,著重體現(xiàn)父類和子類間的一般性和特殊性。在當前的問題空間,對類層次結(jié)構(gòu)的要求是能在解空間里構(gòu)造實現(xiàn)全部功能的結(jié)構(gòu)框架。為此測試要注意如下幾個方面:類層次結(jié)構(gòu)是否涵蓋了所有定義的類;是否能體現(xiàn)OOA中所定義的實例關(guān)聯(lián)、消息關(guān)聯(lián);子類是否具有父類沒有的新特性;子類間的共同特性是否完全在父類中得以體現(xiàn)。

9.5.1面向?qū)ο髮哟谓Y(jié)構(gòu)測試9.5面向?qū)ο蟮臏y試在面向?qū)ο筌浖y試中,單元的概念發(fā)生了變化。封裝的特性使每個類和類的實例(對象)包裝了屬性(數(shù)據(jù))和操縱這些數(shù)據(jù)的操作。最小的可測試單位是封裝的類或?qū)ο?,類包含一組不同的操作,因此,單元測試的意義發(fā)生了較大變化。已經(jīng)不再是孤立地測試單個操作,而是將操作作為類的一部分。父類中定義的某個操作被許多子類繼承。但在實際應(yīng)用中,不同子類中的某個操作在使用時又有細微的不同,所以還必須對每個子類中的某個操作進行測試。

9.5.2面向?qū)ο蟮膯卧獪y試9.5面向?qū)ο蟮臏y試根據(jù)測試層次結(jié)構(gòu),面向?qū)ο筌浖y試總體上呈現(xiàn)從單元級、集成級到系統(tǒng)級的分層測試結(jié)構(gòu)。根據(jù)測試層次結(jié)構(gòu)確定相應(yīng)的測試活動,并形成相應(yīng)的層次如表7-1所示。由于面向?qū)ο筌浖暮暧^上來看是各個類之間的相互作用,因此,測試方法中將對類層的測試作為單元測試,而對于由類集成的模塊測試作為集成測試,系統(tǒng)測試與傳統(tǒng)測試層次相同。

9.5.2面向?qū)ο蟮膯卧獪y試9.5面向?qū)ο蟮臏y試傳統(tǒng)的集成測試,有兩種方式通過集成已完成的功能模塊進行測試。第一,自頂向下集成;第二,自底向上集成。因為面向?qū)ο筌浖]有層次的控制結(jié)構(gòu),傳統(tǒng)的自頂向下和自底向上集成策略已不能再使用。一次集成一個操作到類中(傳統(tǒng)的增量集成方法)通常是不可能的。面向?qū)ο蟮募蓽y試通常需要在整個程序編譯完成后進行。

9.5.3面向?qū)ο蟮募蓽y試9.5面向?qū)ο蟮臏y試面向?qū)ο蟮某绦蚴怯扇舾蓪ο蠼M成的,這些對象互相協(xié)作以解決某些問題。對象的協(xié)作方式?jīng)Q定了程序能做什么,從而決定了這個程序執(zhí)行的正確性。因此,一個程序中對象的正確協(xié)作,即交互對于程序的正確性是非常關(guān)鍵的。交互測試的重點是確保對象(這些對象的類已被單獨測試過)的消息傳送能夠正確進行。交互測試的執(zhí)行可以使用嵌入到應(yīng)用程序中的交互對象,或者在獨立測試工具(例如Tester類)提供的環(huán)境中,交互測試通過使得該環(huán)境中的對象相互交互而執(zhí)行。

9.5.3面向?qū)ο蟮募蓽y試9.5面向?qū)ο蟮臏y試2.面向?qū)ο蠹蓽y試的常用方法常用方法有抽樣測試和正交陣列測試。1)抽樣測試 抽樣測試提供了一種運算法則,它使我們能夠從一組可能的測試用例中選擇一個測試系列。但并不要求一定要首先明確如何來確定測試用例的總體。測試過程的目的在于定義感興趣的測試總體,然后定義一種方法,以便在這些測試用例中選擇哪些被構(gòu)建、哪些被執(zhí)行。2)正交陣列測試 正交陣列測試提供了一種特殊的抽樣方法,這種方法通過定義一組交互對象的配對方式組合,以盡力限制測試配置組合數(shù)目的激增。

9.5.3面向?qū)ο蟮募蓽y試9.5面向?qū)ο蟮臏y試系統(tǒng)測試是測試整個系統(tǒng)以確定是否能夠滿足所有行為,測試目的主要有:第一,找出系統(tǒng)中存在的缺陷;第二,發(fā)現(xiàn)導致實際操作和系統(tǒng)需求之間存在差異。系統(tǒng)測試應(yīng)該盡量搭建與用戶實際使用環(huán)境相同的測試平臺,應(yīng)該保證被測系統(tǒng)的完整性,對沒有的系統(tǒng)設(shè)備或部件,也應(yīng)有相應(yīng)的模擬手段。系統(tǒng)測試時,應(yīng)該參考OOA分析的結(jié)果,對應(yīng)描述的對象、屬性和各種服務(wù),檢測軟件是否能夠完全“再現(xiàn)”問題空間。系統(tǒng)測試不僅是檢測軟件的整體行為表現(xiàn),從另一個側(cè)面看,也是對軟件開發(fā)設(shè)計的再確認。

9.5.4面向?qū)ο蟮南到y(tǒng)測試9.5面向?qū)ο蟮臏y試1)功能測試 測試是否滿足開發(fā)要求,是否能夠提供OO設(shè)計所描述的功能,用戶的需求是否得到滿足。功能測試是系統(tǒng)測試最常用和必須的測試,通常以正式的軟件規(guī)格說明書為測試標準。2)性能測試 測試軟件的運行性能。這種測試常常與強度測試結(jié)合進行,需要事先對被測軟件提出性能指標,如傳輸連接的最長時限、傳輸?shù)腻e誤率、計算的精度、記錄的精度、響應(yīng)的時限和恢復時限等。

9.5.4面向?qū)ο蟮南到y(tǒng)測試9.5面向?qū)ο蟮臏y試3)強度測試 測試系統(tǒng)的能力最高實際限度,即軟件在一些超負荷的情況下,功能實現(xiàn)情況。如要求軟件某一行為的大量重復、輸入大量的數(shù)據(jù)或大數(shù)值數(shù)據(jù)、對數(shù)據(jù)庫進行大量復雜的查詢等。4)恢復測試 采用人工干擾使軟件出錯,中斷使用,檢測系統(tǒng)的恢復能力,特別是通訊系統(tǒng)。恢復測試時,應(yīng)該參考性能測試的相關(guān)測試指標。

9.5.4面向?qū)ο蟮南到y(tǒng)測試9.5面向?qū)ο蟮臏y試5)安全測試 驗證安裝在系統(tǒng)內(nèi)的保護機構(gòu)確實能夠?qū)ο到y(tǒng)進行保護,使之不受各種各樣的干擾。在進行安全測試時,需要設(shè)計一些測試用例試圖突破系統(tǒng)的安全保密措施,檢驗系統(tǒng)是否有安全保密的漏洞。6)可用性測試 測試用戶是否能夠滿意使用。具體體現(xiàn)為操作是否方便,用戶界面是否友好等。系統(tǒng)測試需要對被測的軟件結(jié)合需求分析做仔細的測試分析,建立測試用例。

9.5.4面向?qū)ο蟮南到y(tǒng)測試9.5面向?qū)ο蟮臏y試目錄9.1測試概述9.2測試步驟9.3測試方法9.4測試過程9.5面向?qū)ο蟮臏y試9.6系統(tǒng)測試管理9.7信息系統(tǒng)測試案例測試管理是對測試活動進行組織、計劃、監(jiān)管和控制,確保測試工作在信息系統(tǒng)質(zhì)量保障中發(fā)揮更好的作用,主要包括以下內(nèi)容。1.制訂測試計劃確定各階段的測試目標和策略,明確要完成的測試任務(wù),估算完成測試任務(wù)所需的時間和資源,設(shè)計測試組織和崗位職責,安排測試活動和分配資源,部署跟蹤和控制測試過程的任務(wù),形成測試計劃。2.設(shè)計測試方案根據(jù)測試計劃設(shè)計測試方案,包括各測試階段使用的測試用例,并提交評審后使用。

9.6.1測試管理概述9.6系統(tǒng)測試管理3.實施測試方案使用測試用例運用程序,將獲得的運行結(jié)果與預期結(jié)果進行比較和分析,記錄、跟蹤和管理系統(tǒng)故障,形成測試報告。4.測試配置管理測試配置管理是軟件配置管理的子集,應(yīng)用于測試的各階段。5.測試資源管理測試資源管理主要包括對人力資源和工作場所、相關(guān)設(shè)施和技術(shù)支持的管理。6.測試過程監(jiān)控測試過程監(jiān)控是指采用適宜的方法對上述測試過程及結(jié)果進行實時監(jiān)控,以保障測試過程的有效性。

9.6.1測試管理概述9.6系統(tǒng)測試管理1.確定測試小組的組織模式根據(jù)測試人員具有的技能,測試小組可以分為基于技能的組織模式和基于項目的組織模式?;诩寄艿慕M織模式要求每個測試人員關(guān)注自己的專業(yè)領(lǐng)域,必須掌握專業(yè)測試工具的使用方法和復雜的測試技術(shù),適用于科技領(lǐng)域的信息系統(tǒng)測試?;陧椖康臏y試模式可以將不同測試技能水平的人員分配到一個項目中,分工協(xié)作,以確保測試工作的順利開展。

9.6.2測試組織管理9.6系統(tǒng)測試管理2.組建測試小組組建測試小組時,應(yīng)按照測試工作負荷配置合適的測試人員。復雜的測試工作應(yīng)由測試工程師負責,他們具有獨立的測試技能,能夠編制測試計劃,設(shè)計測試用例,熟練使用先進的測試工具,對軟件故障進行隔離等。較為簡單的測試工作可交由初級測試技術(shù)人員承擔。

9.6.2測試組織管理9.6系統(tǒng)測試管理3.安排測試任務(wù),估算測試工作量明確測試任務(wù),對各項任務(wù)進行合理的組織安排,并根據(jù)測試任務(wù)估算測試工作量。4.確定測試文檔確定需要交付和歸檔的測試文檔。這些測試文檔一般包括測試計劃文件、測試用例文檔、測試日志文檔、測試實踐報告和測試總結(jié)報告等。5.管理測試件測試件也是一類軟件,需要管理好。測試件一般有測試工具、測試驅(qū)動程序、測試樁模塊等。

9.6.2測試組織管理9.6系統(tǒng)測試管理6.確定測試需求測試需求主要解決“測試什么”,即指明被測對象中什么需要測試。確定測試需求通常是以信息系統(tǒng)開發(fā)需求為基礎(chǔ)的分析,通過對需求的細分化和分解,形成測試內(nèi)容。7.組織測試設(shè)計測試設(shè)計的主要任務(wù)是確定測試各階段需要運用的測試要素,如測試用例等。組織和協(xié)調(diào)好測試設(shè)計任務(wù)是系統(tǒng)測試管理的重要環(huán)節(jié)之一。

9.6.2測試組織管理9.6系統(tǒng)測試管理1.測試準備任命測試組長,組建測試小組,參加有關(guān)項目計劃、分析和設(shè)計會議,獲取需求分析文檔、系統(tǒng)設(shè)計文檔和程序編寫文檔,參加產(chǎn)品相關(guān)知識的培訓。2.測試計劃編制測試計劃的目標是確定測試范圍、測試策略和測試方法,以及對可能出現(xiàn)的問題或風險的所需的資源和投入進行分析和估計,以指導測試的執(zhí)行。測試計劃的內(nèi)容通常包括測試目的、測試標準、測試策略、資源配置、責任明確、進度安排、風險分析、測試用例的設(shè)計方法、使用和維護策略、測試工具的開發(fā)和使用等。

9.6.3測試過程管理9.6系統(tǒng)測試管理3.測試需求分析測試需求是根據(jù)測試目標及軟件規(guī)格說明和相關(guān)接口需求說明文件,明確各種測試需求,包括環(huán)境需求、對測試對象的要求、測試工具需求、測試代碼需求、測試數(shù)據(jù)要求等。測試需求分析必須保證需求的可跟蹤性和全覆蓋性。4.測試設(shè)計測試設(shè)計描述測試各階段需要運用的測試要素,包括測試用例、測試工具、測試代碼、測試規(guī)程的設(shè)計思路、設(shè)計準則和具體內(nèi)容。

9.6.3測試過程管理9.6系統(tǒng)測試管理5.測試執(zhí)行建立和配置測試環(huán)境,根據(jù)用例準備測試數(shù)據(jù),執(zhí)行測試。6.測試結(jié)果分析測試結(jié)束后,對測試結(jié)果進行分析,以確定軟件產(chǎn)品質(zhì)量,為產(chǎn)品的改進或發(fā)布提供數(shù)據(jù)和支持,同時做好測試結(jié)果的審查和分析,做好測試報告的撰寫和審查。

9.6.3測試過程管理9.6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論