




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第六章■息系統(tǒng)的測試'
第一節(jié)信息系統(tǒng)測試概述
第二節(jié)測試方法
1J1■]
第三節(jié)測試過程和步驟
第四節(jié)軟件測試工具
信息系統(tǒng)測試是信息系統(tǒng)開發(fā)過N
程中非常重要而漫長的階段。其重要\
性表現(xiàn)在它是保證系統(tǒng)質量和可靠性
的關鍵步驟,是對系統(tǒng)開發(fā)過程中的
系統(tǒng)分析、系統(tǒng)設計和實施的最后復
杳。
一本章重點講述信息系統(tǒng)測試的基
本概念、測試目標、測試過程和測試
步驟,討論測試的關鍵技術和調試技
術以及如何設計測試用例和組織實施
功測試活動。
第一節(jié)信息系統(tǒng)測試概述
4步由客:
1、制鐵的泉*槐含、目標和展則
2、制錢對箴5制錢信息濡
1、測試的基本概念、目標和原則
(1)測試的基本概念和目標
?測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
-好的測試方案是能夠發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)
的錯誤的測試方案。
?成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的
測試。
,總之,測試的目標就是希望能以最少的人力
和時間發(fā)現(xiàn)潛在的各種錯誤和缺陷。從上述
國0的目標可以歸納出測試的定義是“為了
或現(xiàn)錯誤而執(zhí)行程序的過程”。,
⑵測試的原則物
①應盡早并不斷地進行測試。VA
②測試工作應避免由原開發(fā)軟件的人或小組來承向@
(單元測試除外)。、
③在設計測試方案時,不僅要確定輸入數(shù)據,而且還
要根據系統(tǒng)的功能確定輸出結果。?
④在設計測試用例時,不僅要包括合理、有效的輸入
條件,也要包含不合理、失效的輸入條件。
⑤在測試程序時,不僅要檢測程序是否做了該做的事,
還要檢測程序是否做了不該做的事。
⑥充分重視測試中的群集現(xiàn)象。1
⑦嚴格按照測試計劃來進行,避免測試的隨意性。\
⑧妥善保存測試計劃、測試用例,作為軟件文檔的組?
A成部分,為維護提供方便。,
2、測試對象與測試信息流
(1)測試的對象
?在信息系統(tǒng)中,作為整體,不僅要對硬件
系統(tǒng)、網絡系統(tǒng)進行測試,還需要對軟件
系統(tǒng)進行測試。由于系統(tǒng)的開發(fā)任務很大
程度上是軟件開發(fā),因此測試的對象除了
硬件部分、網絡部分以外,更主要的是軟
件。
?在藪件測試時,應該把各階段的文檔加上
源程序進行測試,即軟柞測試對象二文檔+
程序。所以測試的對象主要是軟件(在后面
析說的測試中,非特別注明,通常臭指軟
生則試)。
⑵測試信息流,
由于測試的對象主要是軟件,所以在測試階
段的信息流主要分析軟件方面的信息流程,其流
程如圖6-1所不。
軟件配置一、測試結果、錯誤/、正確
:(測試)一評價)——/調試)——
測試配置7:二V入二,
可靠性預測
預期結果
圖6-1測試疥段的信息流
輸入信息分成軟件配置和測試配置兩類。軟件配
置由系統(tǒng)分析說明書、系統(tǒng)設計說明書和源程序等組
成。測試配置由測試計劃、測試方案組成。測試方案
不僅僅是測試時使用的輸入數(shù)據(稱為測試用例),還
包括每組輸入數(shù)據要檢測的功能和預期的輸出結果。
在軟件配置包含所有文檔的情況下,可以把測試配置
看成是軟件配置的一個子集。
測試人員根據提交的軟什配置和測試配置進行測
試,每組輸入數(shù)據都有對應的測試結果,測試結果和
預期的輸出結果相比較,如果不一致,說明程序有錯,
此時需要調試定位錯誤并改正。調試與測試不
同,調試需要程序的編寫人員來完成。
通過對測試結果的收集和評價,開發(fā)質量和可N
靠性的一些定性指標就可以逐步地確定下來。顯然,、
在測試過程中如果經常出現(xiàn)嚴重錯誤,則說明開發(fā)
的質量和可靠性一定不高,更需要多加測試。反之,
如果軟件的功能看起來完成得很正常,遇到的錯誤
也比較容易修改,則存在著兩種可能性:一是軟件
的質量和可靠性是令人滿意的.二是所做的測試還不
夠全面,不夠充分,未能發(fā)現(xiàn)隱藏著的錯誤。如果
是后一種情況,則很有可能是測試配置選擇不恰當,
導致問題不能夠充分暴露出來,這些潛伏著的問題
最終會被發(fā)現(xiàn),如果在維護階段來糾正,其代價將
比開發(fā)時期高出許多倍。
對測試結果的積累可用于構造可靠性模型,據
此可估計出錯的情況,并對軟件的可靠性進行預測。
測試方法
信息系統(tǒng)測試與工程產品的測試方法一村
常用的有兩種方法。
一種是不了解產品的內部結構,但對具體
的功能有要求,可通過檢測每一項功能是否
能正常使用來說明產品是否合格。
另一種是知道產品的內部過程(性能),通
過檢測產品的內部動作是否按照說明書的規(guī)
定正常運行來考察產品是否合格。
前一種方法被稱為黑盒測試(功能測試),
一后一種方法被稱為白盒測試(結構測試)。
洋節(jié)的M
7、提件刷被方法
2、役件同被的窈卷冏題
3、白金同被的制I被用俐極耐
4、黑金刷被的刷被用例較材
1、軟件測試方法
對軟件進行測試的主要方法如圖6-2所示。
個
人
查
走
人工測試
查
會
軟件測試一
「黑盒測試
機器測試L白盒測試
圖6-2軟件測試的主要方法
⑴人工測試
人工測試又稱為代碼復審。通過閱讀
程序來查找錯誤。其內容包括:檢查代碼
和設計是否一致;檢查代碼邏輯表達是否
正確和完整;檢查代碼結構是否合理,等
等。主要有以下三種方法:
①個人復查
②走查
③會審
發(fā)現(xiàn)程序中的錯誤。
②走查:通常由3?5人組成測試小組。測試
人員是沒有參加該項目開發(fā)的有經驗的程序設
計員。
③會審:測試人員的構成與走查類似,要求
測試人員在會審之前應充分閱讀有關的資料
(如系統(tǒng)分析、系統(tǒng)設計說明書、程序設計說
明書、源程序等),根據經驗列出盡可能多的
典型錯誤,然后把它們制成表格。根據這些錯
誤清單(也叫檢查表),提出一些問題,供在會
居D審時使用。
(2)機器測試
機器測試指在計算機上直接
用測試用例運行被測程序,
從而發(fā)現(xiàn)程序錯誤。機器測
試分為黑盒測試和白盒測試
兩種。
①黑盒測試N
也稱為功能測試,將軟件看成黑盒子,在完全不考、
慮軟件的內部結構和特性的情況下,測試軟件的外部
特性。根據系統(tǒng)分析說明書設計測試用例,通過輸入
和輸出的特性檢測是否滿足指定的功能。所以測試只
作用于程序的接口處,進行黑盒測試主要是為了發(fā)現(xiàn)
以下幾類錯誤:
A.是否有錯誤的功能或遺漏的功能?
B.界面是否有誤?輸入是否能夠正確接受?輸出是否
正確?
C.是否有數(shù)據結構或外部數(shù)據庫訪問錯誤?
D.性能是否能夠接受?
E.是否有初始化或終止性錯誤?
②白盒測試、
也稱為結構測試。將軟件看成透明的白盒。根據
程序的內部結構和邏輯來設計測試用例,對程序的
路徑和過程進行測試,檢查是否滿足設計的需要。
其原則是:
A.程序模塊中的所有獨立路徑至少執(zhí)行一次;
B.在所有的邏輯判斷中,取“真”和取“假”的
兩種情況至少都能執(zhí)行一次;
C.每個循環(huán)都應在邊界條件和一般條件下各執(zhí)行
一次;
D.測試程序內部數(shù)據結構的有效性,等等。
2、軟件測試的窮舉問題
測試中的窮舉測試是指對被測對象進行
包含所有可能情況的測試。如果能進行窮舉
測試,則通過窮舉測試的軟件就能保證完全
正確。但這現(xiàn)實嗎?我們來考察機器測試的
兩種方法。根據白盒測試的原則,從表面上
看,只要針對程序的每一條邏輯路徑設計測
試用例,仔細檢查分支和循環(huán)的情況,就可
以得到完全正確的程序。也就是說,只要進
行路徑上的窮舉測試,就能保證程序完全正
一確,但這是不現(xiàn)實的事情。
?例如,給出一個如圖6-3所示的流程圖,
它大致對應100行源代碼的Pascal程序,
其中惟一一個循環(huán)體最多循環(huán)20遍,這段
程序有5條路徑,則共有520(^014)條路
徑。如果要對它進行路徑上的窮舉測試,
假設有這么一組測試用例能對每條路徑進
行測試,運行每個測試用例的時間為1毫
秒,則對圖6-3所示的所有路徑進行測試,
總共需要花費3170年,這還不包括對測試
結果進行分析所花費的時間。
圖
6
—
3
白
盒
測
試
中
窮
舉
測
試
的
示
例
無論是路徑上的窮舉測試,還是輸入量的窮舉
測試,在實際的測試過程中都是不可行的。因此,
只能在一定的開發(fā)周期內和在一定的經濟條件下,
通過精心選擇有代表性的一些測試用例盡可能多地
發(fā)現(xiàn)錯誤。也就是說,測試不能證明所開發(fā)的系統(tǒng)
沒有錯誤,只能通過測試來提商系統(tǒng)的可靠性和開
發(fā)質量。這就要求我們在設計測試方案時,能夠用
較少的測試用例發(fā)現(xiàn)盡量多的問題,以提高測試效
率。
在設計測試方案中,設計測試用例的輸入數(shù)
據(即測試用例)是非常重要的,也是最困難的。因
G止匕下面介紹一些常用的設計測試數(shù)據的技
3、白盒測試的測試用例設計
白盒測試是對軟件的過程性
細節(jié)做詳細的檢查。通過對程序
內部結構和邏輯的分析來設計測
試用例。適合于白盒測試的設計
技術主要有:邏輯覆蓋法、基本
路徑測試等。
邏輯覆蓋(logiccoverage)是以
程序內部的邏輯結構為基礎的測試技
術。它考慮的是測試數(shù)據執(zhí)行(覆蓋)
程序的邏輯程度。由于窮舉測試是不
現(xiàn)實的。因此,只希望覆蓋的程度更
高些。根據覆蓋情況的不同,邏輯覆
蓋可分為:語句覆蓋、判定覆蓋、條
件覆蓋、判定/條件覆蓋、多重覆蓋、
路徑覆蓋。
(1)語句覆蓋
語句覆蓋(statement
coverage)就是設并若干(2)判定覆蓋V
個檢測用例,使得程序判定覆蓋(decision'
中的每條語句至少疲執(zhí)coverage)也稱為分支覆
行一次。語句覆蓋對程蓋,就臬設計若干個檢
序的邏輯覆蓋程度很少,測用例,使得程序中的
因此語句覆蓋有可能發(fā)每個判斷的取真分支和
現(xiàn)不了判斷條件中算法取假分支至少執(zhí)行一次。
出現(xiàn)的錯誤。判斷覆蓋比語句覆蓋
(3)條件覆蓋的程度稍強,因為如果
條件覆蓋(condition通過了每人分支的測試,
coverage)就是設并若干則各語句也都執(zhí)行了。
個測試用例,使得被測但仍有不足。所以,判
程序中每個判斷的每個斷覆蓋還不能保證一定
跳髀軍能情況都能查出判斷條件中的錯
誤。因此,需要更強的
*沏翼南來檢查內部條
(4)判定/條件覆蓋
判定/條件覆蓋(decision/
conditioncoverage)是既要滿足
判斷覆蓋的要求,又要滿足條件.(6)路徑覆蓋、
覆蓋的要求。也就是設計若干個.路徑覆蓋就是設計足夠多
測試用例,使得程序中的每個判
的測試示例,使被測程序中
斷的取真分支和取假分支至少執(zhí)
的所有可能路徑至少執(zhí)行一
行一次,而且每個條件的所有可
次。路徑覆蓋保證了程序中
能情況都至少執(zhí)行一次。因此,
的所有路徑都至少執(zhí)行一次,
有時判定/條件覆蓋并不比條件
是一種比較全的邏輯覆蓋標
覆蓋更強,邏輯表達式的錯誤也
準。但它沒有檢查判斷表達
不一定能檢查出來。
式中條件的各種組合情況,
(5)多重覆蓋通常把路徑覆蓋和多重覆蓋
多重覆蓋(multjobcoverage)就結合起來就可以得到查錯能
是設計多個測試用例,使得各判力很強的測試用例。
斷表達式中條件的各種組合至少.(7)循環(huán)覆蓋
執(zhí)行一次。很顯然,多重覆蓋包
含了條件覆蓋、判定覆蓋和判定
/&g覆蓋,是前面幾種覆蓋標
盧0準中最強的。
上面介紹的只是語句、分支、條件以
及它們的組合情況,而循環(huán)也是大多數(shù)算
法的基礎。對蠢環(huán)的測試主要檢查循環(huán)構
造的有效性。循環(huán)分為
簡單循環(huán)(simpleloops)、
串聯(lián)循環(huán)(concatenatedloops)、
嵌套循環(huán)(nestedloops)和
非結構循環(huán)(unslructuredloops)4種類
型,
如圖6-4所示。
對于循環(huán)次數(shù)為n的簡單循環(huán)??梢?/p>
采用下列措施進行測試:
跳過整個循環(huán)。
A循環(huán)次數(shù)為I,2,n-1,n,n+L
任取循環(huán)次數(shù)為m,其中
y(b)(o⑷je
▼I4,
簡單循環(huán)串聯(lián)循環(huán)嵌套循環(huán)非結構循環(huán)
圖6-4循環(huán)的4種類型
?對于嵌套循環(huán),如果采用簡單循環(huán)的測試講
法,則測試次數(shù)將會成幾何級數(shù)增長??梢圆捎?/p>
以下方法進行測試:
?①從最內層循環(huán)開始測試,對所有外層循環(huán)都取
最小值,內層循環(huán)按簡單循環(huán)的測試方法進行。
?②由里向外,一層層進行測試,凡是外層的循環(huán)
都取最小值,該層循環(huán)嵌套的那些循環(huán)取一些典
型的值。
-③直至所有循環(huán)測試完畢。
?對于串聯(lián)循環(huán)的測試可分成兩種情況:如果
兩個循環(huán)是獨立的,采用簡單循環(huán)的測試方法;
反之,如果兩個循環(huán)不是獨立的,則需要用嵌套
循環(huán)的測試方法來測試。對于非結構循環(huán),一般
一先把程序結構化之后再進行測試。
4、黑盒測試的測試用例設計
黑盒測試是在測試時把軟件看成
一個黑盒子,完全不考慮程序的內
部結構及其邏輯,重點考察程序功
能是否與需求說明書的要求一致。
適合于黑盒測試的設計技術主要有:
等價類劃分、邊界值分析、錯誤推
測法、因果圖、功能圖等。下面重
點介紹等價類劃分、邊界值分析這
兩種測試技術。
(1)等價類劃分2
等價類劃分是比較典型的黑盒測試技術。、
等價類劃分技術的主要思想就是程序的輸
入數(shù)據都可以按照程序說明劃分為若干個等
價類。每一個等價類對于輸入條件可劃分為
肴城的輸入和無效雨輸入。然后均對每一個
有效的等價類和無效的等價類設計測試用例。
如果用某個等價類的一組測試數(shù)據進行測試
時沒有發(fā)現(xiàn)錯誤,則說明在同一等價類中的
其他輸入數(shù)據也一樣查不出問題;反之,如
果用某人等價類的測試數(shù)據進行測試檢查出
錯誤,則說明用該等價類的其他輸入數(shù)據進
行測試也一樣會檢測出錯誤。所以,在測試
時,只需從每個等價類中取一組輸入
A數(shù)據進行測試即可。
?使用等價類劃分技術設計測試方案時,首先需要根據程序
功能說明劃分出輸入數(shù)據的有效等價類和無效等價類,然后為每
個等價類設計測試用例。在確定輸入數(shù)據的等價類時常常還需要
分析輸出數(shù)據的等價類,以便根據輸出數(shù)據的等價類來推導出對
應的測試用例。
?在劃分等價類時,可以按以下原則進行:
?①如果規(guī)定了輸入數(shù)據的范圍,則可劃分為一個有效等價類和
兩個無效等價類。
?②如果規(guī)定了輸入數(shù)據的個數(shù),則可劃分為一個有效等價類和
兩個無效等價類。
?③如果規(guī)定了輸入數(shù)據為一組可能的值,而且程序對每個輸入
值分別進行處理,.這時需要為每仝輸入數(shù)據確定一個有效等價類,
?④如何規(guī)定了輸入數(shù)據必須遵守的規(guī)則,則可以劃分出一個有
效等價類(遵守規(guī)則的輸入數(shù)據)和若干個無效等價類(從不同角
度設計得到違反規(guī)則的情況)。
?⑤如果在劃分的某等價類中各值在程序中的處理方式不同,則
需要將該等價類進步劃分成更小的等價類。
以上列出的原則只是實際情況中很小的一部分。
為了正確劃分等價類,需要正確分析被測程序的功能。
劃分等價類的方法是根據每個輸入條件(通常是規(guī)范
說明中的一句話或一個短語)列出兩個或更多的等價類,
將其填入表6-1中,建立等價類表。
16-1就赫
然精hoi瓶*彼
IIIIIIillHlIIIIII
IIIHIHIIIIIIIIII
?根據等價類表設計測試用例。主要按下、
面兩個步驟:
?①設計新的測試用例,使其盡可能多的
覆蓋未被覆蓋的有效等價類,重復這一
步驟直至所有有效等價類都被覆蓋。
?②設計新的測試用例。使其覆蓋一個而
且僅此一個未被覆蓋的無效等價類,重
復這一步驟直至所有無效等價類都被覆
一蓋。
(2)邊界值分析、
邊界值分析也是黑盒測試技術,是等價類
劃分的一種補充。通常,程序在處理邊界
時容易發(fā)生錯誤,而等價類劃分技術是在
等價類中隨便選擇一組數(shù)據作為代表,沒
有考慮邊界情況。邊界值分析是指對每個
等價類的各邊界作為測試目標,使得測試
數(shù)據等于、剛剛小于、剛剛大于等價類的
邊界值。
邊界值分析技術在設計測試用例的原則與
等價類劃分技術的許多方面類似。需要注
意的是邊界值分析技術不僅注意輸入條件
的邊值,還應根據輸出條件的邊值設計測
?式用例
選擇測試用例有以下原則:V
?①如果規(guī)定了輸入數(shù)據的范圍,則應取舉
占該范圍幼邊界值以及剛剛超過這個范
圍的邊界值的測試L數(shù)據。
?②如果規(guī)定了輸入數(shù)據的個數(shù),則應取最
大個數(shù)、最小個數(shù)、比最大個數(shù)多1和比最
小個數(shù)小1的數(shù)作為測試數(shù)據。
?③如果程序中使用了內部數(shù)據結構,則需
要選擇該數(shù)據結構的邊界值作為測試用例。
?④根據規(guī)格說明的每個輸出條件可以使用
第①條原則。
?⑤根據規(guī)格說明的每個輸出條件也可以使
用第②條原則。
?從這里可以看出,邊界-在設計測試方案中,通
值分析與等價類劃分技常會把邏輯覆蓋、等價
術最大的區(qū)別是邊界值
類劃分和邊界值分析等
分析技術在設計測試用
例時,重點檢測等價類方法結合起來,這樣既
邊界和邊界附近的情況,可以檢測設計的內部要
而等價類劃分技術只是求,又可以檢測設計的
在每個等價類中隨便選接口要求。
擇一組測試數(shù)據。
第三節(jié)丁狀過程和步驟N
由于信息系統(tǒng)的構成可能比較復雜,所涉及
的問題比較多,為了保證整個開發(fā)任務的按期
完成,測試工作不一定只在測試階段才進行,
能提前的盡量提前進行。而且可按功能分別進
行。例如,硬件、網絡等設備到貨后應進行初
驗,安裝后再進行詳細的測試,最后結合應用
軟件等對整個信息系統(tǒng)進行測試。本節(jié)針對信
息系統(tǒng)中的硬件系統(tǒng)、網絡系統(tǒng)和軟件系統(tǒng)中
的測試步驟和測試內容進行介紹,重點為軟件
測試。
1、惻就過程2,側曲步驟
品單無惻能4、俶喊到獄
5、確欽勤被6、靠攏側欷
7、碉就
1、測試過程、
測試是開發(fā)過程中一個獨立且非常重要的
階段,也是保證開發(fā)質量的重要手段之一。
測試過程基本上與開發(fā)過程平行進行。在測
試過程中,需要對整個測試過程進行有效的
管理,保證測試質量和測試效率。一個規(guī)范
化的測試過程通常包括以下基本的測試活動:
A.擬定測試計劃;
B.編制測試大綱;
C.設計和生成測試用例;
D.實施測試;
E.生成測試報告。
(1)擬定測試計劃
在制定測試計劃時,要充分考慮整
個項目的開發(fā)時間和開發(fā)進度以及一
些人為因素和客觀條件等,使得測試
計劃是可行的。測試計劃的內容主要
有:測試的內容、進度安排、測試所
需的環(huán)境和條什(包括設備、被測項
目、人員等)、測試培訓安排,等等。
(2)編制測試大綱
測試大綱是測試的依據。
它明確詳盡地規(guī)定了在測試
中針對系統(tǒng)的每一項功能或
特性所必須完成的基本測試
項目和測試完成的標準。無
論是自動測試還是手動測試,
都必須滿足測試大綱的
力要求。
(3)設計和生成測試用例
根據測試大綱,設計和生成測
試用例。在設計測試用例時,可
綜合利用前面介紹的測試用例設
計技術,產生測試設計說明文檔,
其內容主要有:被測項目、輸入
數(shù)據、測試過程、預期輸出結果,
(4)實施測試
測試的實施階段是由一系
列的測試周期組成的。在每
個測試周期中,測試人員和
開發(fā)人員將依據預先編制好
的測試大綱和準備好的測試
用例,對被測軟件或設備進
行完整的測試。
(5)生成測試報告'
測試完成后,要形成相應的
測試報告,主要對測試進行概要
說明,列出測試的結論,指出缺
陷和錯誤,另外,給出一些建議,
如:可采用的修改方法,各項修
改預計的工作量及修改的負責人
通常,測試與糾錯是反復交替進
行的。如果使用專業(yè)測試人員,測試與
糾錯可以平行進行.從而節(jié)約總的開發(fā)
時間。另外,由于專業(yè)測試人員有豐富
的測試經驗,采用系統(tǒng)化的測試方法并
能全時地投入,而且獨立于開發(fā)人員的
思維,使得他們能夠更有效地發(fā)現(xiàn)許多
單靠開發(fā)人員很難發(fā)現(xiàn)的錯誤和問題。
2、測試步驟
由于每種測試所花費的成本不同,如果測
試步驟安排得不合理,將造成為了尋找錯誤
原因而浪費大量的時間以及重復測試。因此,
合理安排測試步驟對于提高測試效率和降低
測試成本有很大的作用。信息系統(tǒng)測試分別
按硬件系統(tǒng)、網絡系統(tǒng)和軟件系統(tǒng)進行測試,
最后對整個系統(tǒng)進行總的綜合測試。測試的
步驟如圖6-5所示。
模塊
單元
設計信息需求信息用戶信息
測流
己經集成已確X的可以運行
模塊單元組裝、的子系統(tǒng)確認應用軟件的系統(tǒng)
測試測試測試測試
已經調試確認后的
過的模塊網絡系統(tǒng)
單元
測試
確認后的
硬件設備
初驗
網絡系統(tǒng)
劇絡設備初驗
圖6-5信息系統(tǒng)測試
(1)硬件測試\
在進行信息系統(tǒng)開發(fā)中,通常需要根據
項目的情況選購硬件設備。在設備到貨后,應
在各個相關廠商配合下進行初驗測試,初驗通
過后將與軟件、網絡等一起進行系統(tǒng)測試。
初驗測試所做的工作主要有:
①配置檢測
②硬件設備的外觀檢查
③硬件測試
通過以上測試,要求形成相應的硬件測
(2)網絡測試\
如果信息系統(tǒng)不是單機,需要在局域網或'
廣域網運行,按合同選購網絡設備。在網絡設
備到貨后。應在各個相關廠商配合下進行初驗
測試。初驗通過后將與軟件、硬件等一起進行
系統(tǒng)測試。
初驗所做的工作主要有:
①網絡設備的外觀檢查
②硬件測試
③網絡連通測試
通過以上測試,要求形成相應的網絡測
試〃告,在測試報告中包含測試步驟、測試過
程制測試蚓結論琴。
(3)軟件測試N
軟件測試實際上分成四步:單元測試、組裝網
試、碉認測試和系統(tǒng)測試,它們按順序進行。曾
先是單兀涮法(unittesting),對源彳呈序甲的每
一個程序單元進行測試,驗證每個模塊是否滿足
系統(tǒng)設計說明書的要求。組裝測試
(integrationtesting)是將已測試過的模塊
組合成子系統(tǒng),重點測試各模塊之間的接口和聯(lián)
系。確認測試(validationtesting)是對整
個軟件進行驗收,根據系統(tǒng)分析說明書來考察軟
件是否滿足要錄。索統(tǒng)刪試(systemtesting)
是將軟件、硬件、網絡等系統(tǒng)的各個部分連接起
來,對整個系統(tǒng)進行總的功能、性能等方面的測
G一試。
3、單元測試
單元測試也稱為模塊測試。
在模塊編寫完成且無編譯錯誤后
就可以進行??梢赃x用人工測試
或機器測試,當用機器測試時,
一般采用白盒測試法,多個模塊
可以同時進行。
A.單元測試的內容
在單元測試中,主要從
模塊的五個特征進行檢查:
模塊接口、局部數(shù)據結構、
重要的執(zhí)行路徑、出錯處
理和邊界條件。
(1)模塊接口
如果所測模塊的數(shù)據流不能正確的輸入、輸
出,則根上就無法進行其他測試。所以在單元測
試電要考察模塊的接口。Myers提出了接口測試
要點:
?①用被測模塊的輸入參數(shù)和形式參數(shù)在個數(shù)、
屬性、單位上是否一致;
?②調用其他模塊時的實際參數(shù)和被調模塊的形
式參數(shù)在個數(shù)、屬性、單位上是否一致;
?③調用標準函數(shù)時所用的參數(shù)在屬性、數(shù)目和
順序上是否正確;
?④全局變量在各模塊中的定義和用法是否一致;
-⑤輸入是否僅改變了形式參數(shù);
如果模塊完成外部的輸入或輸出
時,還應該再檢查以下要點:
?開/關閉的語句是否正確;
?規(guī)定的工/O格式是否與輸入輸出語句
一致;
?在使用文件之前是否已經打開文件或
使用文件完畢后是否已關閉文件;
?輸入輸出的錯誤是否檢查并處理;
?輸出的提示信息是否有誤。
(2)局部數(shù)據結構
?在單元測試中,局部數(shù)據結構出錯是較常
見的錯誤,在測試時應重點考慮以下因素:
-變量的說明是否合適;
?是否使用了尚未賦值或尚未初始化的變量;
-變量的初始值或默認值是否正確:
-變量名是否有錯(例如:拼寫錯);
?是否出現(xiàn)上溢、下溢或地址異常的錯誤。
?如果有可能,還應確定全局變量對模塊的
影響。
(3)重要的執(zhí)行路徑
在單元測試中,對路徑的測試是最基本
的任務。由于不能進行窮舉測試,需要精心
設計刎試用例來發(fā)現(xiàn)是否有計算、比較或控
制流竄方面的錯誤。
計算方面的錯誤主要有:算術運算的優(yōu)先
次序不正確或理解錯誤;精度不夠;運算對
象的類型彼此不相容;算法錯;表達式的符
號表示不正確等。
比較和控制流是緊密結合的,一般是通過
比較來發(fā)生控制流的改變。關于這方面的錯
誤主要有:本應相等的量由于精度造成不相
等;不同類型進行比較;邏輯運算符不正確
或優(yōu)先次序錯誤;循環(huán)終止不正確(如多循
環(huán)一次或少循環(huán)一次)、死循環(huán);不恰當?shù)?/p>
修改循環(huán)變量;當遇到分支循環(huán)時,出口錯
誤等。
(4)出錯外理
好的設計應該能預測到出錯的條件
并且有對出錯處理的路徑。雖然計算機
可以顯示出錯信息的內容,但仍需要程
序員對出錯進行處理,保證其邏輯的正
確性,便于用戶維護。對出錯的測試應
該著重考慮這些常見錯誤;錯誤的描述
難于理解;錯誤提示與實際錯誤不相符;
出錯的提示信息不足以確定錯誤或確定
造成錯誤的原因;在對錯誤進行處理之
前,系統(tǒng)已經對錯誤條件干預等。
(5)邊界條件
?邊界條件的測試是單元測試的最后工
作,也是非常重要的工作。軟件容易
在邊界出現(xiàn)錯誤,如一個n維數(shù)組,在
處理數(shù)組第n個下標時常常有錯誤。要
仔細選擇測試用例,重點考察數(shù)據流、
控制流在剛好等于、大于或小于最大
值或最小值的情況。
?模塊測試通常由程序員本人來完成。
但項目負責人應該注意測試結果,將
這些測試資料妥善保存,為后續(xù)的測
F試工作打下良好的基礎。
B.單元測試的方法\
由于模塊不是獨立運行的程序,各模塊之間'
存在聯(lián)系,即存在調用與被調用的關系。在對
每個模塊進行測試時,需要開發(fā)兩種模塊:
(1)驅動模塊(driver):相當于一個主程序,
接收測試用例的數(shù)據,將這些數(shù)據送到被測模
塊,輸出測試結果。
(2)樁模塊(stub):也稱為存根模塊,樁模
塊用來代替被測模塊中所調用的子模塊,其內
可進行少量的數(shù)據處理,目的是為了檢驗入口,
二輸出調用和返回的信息。
4、組裝測試
組裝測試也稱為集成測試。即使所有
模塊都通過了測試,但在組裝之后,仍
可能會出現(xiàn)問題:穿過模塊的數(shù)據被丟
失:一個模塊的功能對其他模塊造成有
害的影響;各個模塊組合起來后沒有達
到預期功能;全局數(shù)據結構出現(xiàn)問題;
另外單個模塊的誤差可以接受,但模塊
組合后可能會出現(xiàn)誤差累積,最后到不
能接受的程度,所以需要組裝測試。
通常,組裝測試有兩種方法:一
種是分別測試各個模塊。再把這些
模塊組合起來進行整體測試,這種
方法稱為非增量式集成。另一種是
把下一個要測試的模塊組合到己測
試好的模塊中,測試完后再將下一
個需測試的模塊組合進來測試,逐
步把所有模塊組合在一起,并完成
測試。該方法稱為增量式集成。
增量式測試技術有自頂向下的增量方式和自底
向上的增量方式兩種方法。
(1)自頂向下的增量方式
圖6-6自頂向下的組合示例
?自頂向下的增量方式是模塊按程序的控
制結構,從上到下的組合方式。再增加
測試模塊時有先深度后寬度和先寬度后
深度兩種次序。如圖6-6所示的自頂向下
組合示例中,先深度后寬度的方法是把
程序結構中的一條主路徑上的模塊相組
合,測試順序可以是
M1-M2-M5-M6-M3-M7-M4。
先寬度后深度的方法是把模塊按層進行
組合,測試順序是
Ml-M2-M3一M4-M5-M6-M7。
組裝過程可分成以下步驟:
?①用主模塊作為驅動模塊,與之直接相連的模
塊用樁模塊代替。
-②根據所選的測試次序,用下一個模塊替換所
用的樁模塊;而新引入模塊的直接下屬模塊用樁
模塊代替,構成新的測試對象。
?③結合一個模塊,測試一個。為了避免引入新
模塊,產生新問題,需要進行回歸測試,即重復
部分或全部已經進行過的測試。
?④模塊是否已經組合到系統(tǒng)中,并完成測試,
如果沒有,則返回到(2),重復進行;是則停
止測試。
自頂向下的增量方式可以較早地
驗證控制和判斷點,如果出現(xiàn)問題能
夠及時糾正。在測試時不需要編寫驅
動模塊,但需要樁模塊。另外,如果
高層模塊對下層模塊依賴性很大,需
要返回大量信息,在用樁模塊代替時,
樁模塊的編寫就復雜,必然會增加開
銷。這時可以用下面介紹的自底向上
的增量方式。
(2)自底向上的增量方式
自底向上的增量方式是從最底層的功能模塊能
始,邊組合邊測試,從下向上地完成整個程序名照
構的測試。其步驟可以概括為:
①將最底層的模塊組合成能完成某種特定功
能的模塊簇,為每個模塊簇設計驅動程序,用驅
動程序來控制并進行測試。
②按從下向上的方向,剛實際模塊替換相對
應的驅動程序,組成新的模塊簇,再為該模塊簇
設計驅動程序,用新的驅動程序進行控制和測試。
③所有模塊是否已經組合到系統(tǒng)中,并完成
測試,如果沒有,則返回到(2),重復進行,
是則停止測試。
在單元測試的基礎上,從最底層模塊型
始,按功能組合模塊,從下到上的進行測試,
逐步完成整個軟件結構的測試。
自底向上的增量方式可以較早地發(fā)現(xiàn)底
層關鍵性模塊出現(xiàn)的錯誤。在測試時不需要
編寫樁模塊,但需要驅動模塊。另外,對程
序中的主要控制錯誤發(fā)現(xiàn)較晚。
組裝測試的方法選擇取決于軟件的特
點和進度安排。在工程中,通常將這兩種方
法結合起來使用,即對位于軟件結構中較上
層的使用自頂向下的方法,而對于較底層的
使用自底向上的方法。
5、確認測試、
經過組裝測試之后,軟件就被集成起
來,接口方面的問題已排出,就可以進
入軟件測試的最后一個環(huán)節(jié)——確認測
試。確認測試的任務是進一步驗證軟件
的有效性,也就是說,檢查軟件的功能
和性能是否與用戶的要求一樣。系統(tǒng)分
析說明書描述了用戶對軟件的要求,所
以是軟件有效性驗證的標準,也是確認
測試的基礎。
確認測試的步驟如圖6-7所示。
圖6-7確認測試的步驟
-(1)有效性測試
?有效性測試就是在模擬環(huán)境下,通過黑盒測試檢
驗所開發(fā)的軟件是否與需求規(guī)格說明一致。為此,
需要制定測試計劃,規(guī)定要做的測試類型,設計測
試用例,組織測試人員對已集成的軟件進行測試。
在設計測試用例時,除了檢測軟件的功能和性能之
外,還需要對軟件的容錯性、維護性等其他方面進
行檢測。測試人員可由開發(fā)商的內部人員組成,但
最好是沒有參加該項目的有經驗的軟件設計人員。
在所有測試用例完成之后,測試結果有兩種情況:
?功能和性能等都滿足需求,可以接受。
?發(fā)現(xiàn)測試結果與預期的不符,這時要列出缺陷清
單。在這個階段才發(fā)現(xiàn)的嚴重錯誤一般很難在預定
的時間內糾正,需要與用戶協(xié)商,尋找妥
善解決問題辦法。
?(2)軟件配置審查
?確認測試的另一個環(huán)節(jié)是軟件配
置的審查,主要是檢查軟件(源程序、
目標程序)和文檔(包括面向開發(fā)和
用戶)是否齊全以及分類是否有序。
確保文檔、資料的正確和完善,以便
維護階段使用。
?(3)驗收測試
?在經過軟件的有效性測試和軟件
配置復查后,就應該開始軟件系統(tǒng)的
驗收測試。驗收測試是以用戶為主的
測試。軟件開發(fā)人員和質量保證人員
也應參加。在驗收測試之前,需要對
用戶進行培訓,以便熟悉該系統(tǒng)。驗
收測試的測試用例由用戶參與設計,
主要驗證軟件的功能、性能、可移植
性、兼容性、容錯性等,測試時一般
切采用實際數(shù)據。
6、系統(tǒng)測試
系統(tǒng)測試是將已經確認的軟件、計
算機硬件、外設、網絡等其他元素結
合在一起,進行信息系統(tǒng)的各種組裝
測試和確認測試,其目的是通過與系
統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)
與用戶需求不符或矛盾的地方。系統(tǒng)
測試是根據系統(tǒng)分析說明書來設計測
試用例的。
(1)恢復測試(recoverytesting)wj
恢復測試是檢測系統(tǒng)的容錯能力。檢前'
方法是采用各種方法讓系統(tǒng)出現(xiàn)故障。檢
驗系統(tǒng)是否按照要求能從故障中恢復過來,
并在預定的時間內開始事務處理,而且不
對系統(tǒng)造成任何損害。如果系統(tǒng)的恢復是
自動的(由系統(tǒng)自動完成),需要驗證重
新初始化、檢查點、數(shù)據恢復等是否正確。
如果恢復需要人工干預。就要對恢復的平
現(xiàn)間進行評估并判斷它是否在允
許的范圍內。
(2)安全性測試(securitytesting)v
系統(tǒng)的安全性測試是檢測系統(tǒng)的安全機制、雇
密措施是否完善且沒有漏洞。主要是為了驗證系
統(tǒng)的防范能力。測試的方法是測試人員模擬非法
入侵者,采用各種方法沖破防線。例如,以系統(tǒng)
的輸入作為突破口,利用輸入的容錯性進行正面
攻擊;故意使系統(tǒng)出錯,利用系統(tǒng)恢復的過
程.竊取口令或其他有用的信息;想法設法截取
或破譯口令;利用瀏覽非保密數(shù)據,獲取所需信
息,等等。從理論上說,只要時間和資源允許,
沒有進入不了的系統(tǒng)。所以,系統(tǒng)安全性設計準
則是使非法入侵者所花費的代價比進入系統(tǒng)后所
得到的好處要犬,此時非法入侵已無利可圖。
(3)強度測試(stresstesting)弋、
強度測試是對系統(tǒng)在異常情況下的承受能力渴
測試,是檢查系統(tǒng)在極限狀態(tài)下運行,性能下降^
的幅度是否在允許的范圍內。因此,強度測試要
求系統(tǒng)在非正常數(shù)量、頻率或容量的情況下運行,
例如,運行使系統(tǒng)處理超過設計能力的最大允許
值的測試用例;設計測試用例,使系統(tǒng)傳輸超過
設計最大能力的數(shù)據,包括內存的寫入和讀出,
外部設備等;對磁盤保留的數(shù)據,設計產生過渡
搜索的測試用例;等等。強度測試主要是為了發(fā)
現(xiàn)在有效的輸入數(shù)據中可能引起不穩(wěn)定或不正確
■的數(shù)據組合。
(4)性能測試(performancetesting)、
性能測試是檢查系統(tǒng)是否滿足系統(tǒng)分析說明
書對性能的要求。特別是實時系統(tǒng)或嵌入式系
統(tǒng),即使軟件的功能滿足需求,但性能達不到
要求也是不行的。性能測試覆蓋了軟件測試的
各階段,而不是等到系統(tǒng)的各部分所有都組裝
之后,才確定系統(tǒng)的真正性能。通常與強度測
試結合起來進行,并同時對軟件、硬件進行測
試。軟件方面主要從響應時間、處理速度、吞
吐量、處理精度等方面來檢測。
(5)可罪性測試(reliabilitytesting
對于系統(tǒng)分析說明書中提出了可靠性
要求時,要對系統(tǒng)的可靠性進行測試。
通常使用以下幾個指標來衡量系統(tǒng)的可
靠性:
平均失效間隔時間MTBF(meantime
betweenfailures)是否超過了規(guī)定的
時限;因故障而停機時間MTTR(mean
timetorepairs)在一年中應不
后過多少時間。
(6)安裝測試(installationtesting)
在安裝軟件系統(tǒng)時,會有多種選擇。
安裝測試就是為了檢測在安裝過程中
是否有誤、是否易操作等。主要檢測:
系統(tǒng)的每一個部分是否齊全;硬件的
配置是否合理;安裝中需要產生的文
件和數(shù)據庫是否已產生,其內容是否
正確;等等。
最后,再強調一下,信息系統(tǒng)的開發(fā)
過程通常為系統(tǒng)分析、設計、編碼實現(xiàn)等
階段。而每個階段都有可能出現(xiàn)錯誤,測
試過程正好與開發(fā)過程相反,其開發(fā)和測
試的關系如圖6-8所示。單元測試主要是
發(fā)現(xiàn)編碼階段的錯誤。組裝測試主要發(fā)現(xiàn)
設計階段產生的錯誤,以此類推。如果在
確認測試中發(fā)現(xiàn)系統(tǒng)分析有錯誤,這就需
要重新修改系統(tǒng)分析、設計和編碼。這說
明越早犯的錯誤要到最后才能發(fā)現(xiàn),因此
要重視開發(fā)的前期工作。
圖6-8測試與開發(fā)各階段的關系
7、調試
測試的目的是為了發(fā)現(xiàn)盡可
能多的錯誤,而對于所暴露的錯
誤最終需要改正。調試的任務就
是根據測試時所發(fā)現(xiàn)的錯誤,找
出原因和具體的位置,并進行改
正。
(1)調試過程
圖6-9調試過程
(2)調試方法
無論哪種調試方法,其目
的都是為了對錯誤進行定位。
目前,常用的調試方法有如
下幾種:
試探法
調試人員分析錯誤的癥狀,猜測問題的
所在位置,利用在程序中設置輸出語句,
分析寄存器、存儲器的內容等手段來獲得
錯誤的線索,一步步地試探和分析找到錯
誤所在。這種方法效率很低且緩慢,適合
于結構比較簡單的程序。
②同溯法
調試人員從發(fā)現(xiàn)錯誤癥狀的位
置開始。人工沿著程序的控制流
程往回跟蹤程序代碼,直到找出
錯誤根源為止。這種方法適合于
小型程序,對于大規(guī)模程序,由
于其需要回溯的路徑太多而變得
不可操作。
③對分查找法、
這種方法主要用來縮小錯誤的范圍。如果已
經知道程序中的變量在若干位置的預期正確取
值,可以在這些位置上用賦值語句或輸入語句,
給這些變量以正確值,運行程序觀察輸出結果,
如果沒有發(fā)現(xiàn)問題,則說明從給的變量的正確
值開始到輸出結果之間的程序沒有出錯,問題
可能在除此之外的程序中,否則錯誤就在所考
察的這部分程序中。對含有錯誤的程序段再使
用這種方法,直到故障范圍縮小到比較容易診
G版為止。
④歸納法'
歸納法就是從測試所暴露的
錯誤出發(fā),收集所有正確或不正
確的數(shù)據,分析它們之間的關系,
提出假想的錯誤原因,用這些數(shù)
據來證明或反駁,從而查出錯誤
所在。
⑤演繹法
根據測試結果,列出所有可能的錯誤原因。
分析已有的數(shù)據,排除不可能和彼此矛盾的
原因。對余下的原因,選擇可能性最大的,
利用已有的數(shù)據完善該假設,使假設更具體。
運用歸納法的第四步來證明假設的正確性。
以上這些方法均可輔以調試工具。
隨著測試技術和軟件開發(fā)環(huán)境的發(fā)展,
可以提供功能越來越強的自動測試和調
試工具,支持斷點設置、單步運行和各
種跟蹤技術,為軟件的調試提供了很大
的方便。但無論哪種工具都代替不了開
發(fā)人員對整個文檔和程序代碼的仔細研
究和認真審查所起的作用。
第四節(jié)軟件測試工具
洋節(jié)向M.,
心精態(tài)含析工具
2、劭態(tài)臺布工具
品集鼠側被制欽奈髭
1、靜態(tài)分析工具
靜態(tài)分析工具不執(zhí)行被測程序,它掃
描程序代碼,進行控制流分析、數(shù)據流
分析、接口分析和表達式分析等,然后
輸出測試結果。根據程序設計語言的不
同,相應的靜態(tài)分忻工具也就不同。目
前,具備靜態(tài)分析功能的軟件測試工具
有很多,如Purify、Logiscope>Macabe
等。通常,它具有以下功能:
(1)完成編譯時的語法檢查和連接時的
一致性檢查。
(2)檢查模塊接口、類型的一致性。
(3)檢查邏輯上可能有錯誤的結構。
(4)變量、函數(shù)交叉引用關系分析。
(5)檢查被測程序違反編程標準的情況。
(6)對程序的靜態(tài)特性的統(tǒng)計功能。
2、動態(tài)分析工具、
動態(tài)分析工具就是通過選擇適當?shù)臏y試用例、
運行測試程序,將測試結果和預期結果相比較,
以發(fā)現(xiàn)錯誤。動態(tài)測試工具能使被測程序有控
制的執(zhí)行,監(jiān)視和記錄程序的運行情況。通常
的方法是在被測程序中插入探針,檢測各語句、
分支和路徑的執(zhí)行次數(shù)和運行結果等,以便統(tǒng)
計各種覆蓋情況。如果測試的覆蓋率沒有達到
要求,則要設計新的測試用例來滿足覆蓋要求。
通過對測試結果的分析來發(fā)現(xiàn)錯誤。除了覆蓋
分析之外,也常分析程序對資源的占用情況;
優(yōu)化程序;提高系統(tǒng)性能。
3、集成測試系統(tǒng)
目前,測試計劃工具、測試設計
工具、測試管理工具、靜態(tài)分析工
具、性能及網絡負載測試工具等一
系列測試工具已得到廣泛的運用,
而且還出現(xiàn)了將許多測試工具融為
一體的集成化測試系統(tǒng)。
(1)SQASuite\
SQASuite是美商瑞理國際股份有限公司
(RationalSoftwareCorp.)極具有特色的
著名套裝軟件。它是針對Windows客戶機/服
務器環(huán)境中,用PowerBuilder、VisualBasic>
SQLWindows>Delphi和Develope
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 皖豫聯(lián)盟體2025屆物理高二下期末經典試題含解析
- 新疆烏魯木齊市天山區(qū)兵團第二中學2024-2025學年高二下數(shù)學期末教學質量檢測模擬試題含解析
- 部隊藥品及疫苗采購及倉儲服務合同
- 某自然博物館插班生入學協(xié)議及自然科學教育服務合同
- 倉儲企業(yè)倉單質押貸款業(yè)務合同范本
- 車輛質押貸款及售后服務合同
- 2024年攀枝花市仁和區(qū)向招考社區(qū)工作者筆試真題
- 簡版房屋租賃合同(17篇)
- 湖南中煙工業(yè)有限責任公司招聘考試真題2024
- 能源知識競賽復習測試有答案(一)
- 林業(yè)工程整改方案
- 腦洞大開背后的創(chuàng)新思維學習通超星期末考試答案章節(jié)答案2024年
- 產品設計和開發(fā)控制程序文件
- 醫(yī)學影像診斷學智慧樹知到答案2024年溫州醫(yī)科大學
- 小學美術贛美版四年級下冊奇妙的圖形-課件A010
- 人教部編版小學二年級語文下冊課內閱讀專項訓練
- 成都市青羊區(qū)2024屆四年級數(shù)學第二學期期末調研試題含解析
- DLT 572-2021 電力變壓器運行規(guī)程
- 婚慶公司采購合同范本
- 員工下班喝酒意外免責協(xié)議書
- 重慶市開州區(qū)2022-2023學年七年級下學期語文期末試卷(含答案)
評論
0/150
提交評論