第二章-軟件測試方法-1課件_第1頁
第二章-軟件測試方法-1課件_第2頁
第二章-軟件測試方法-1課件_第3頁
第二章-軟件測試方法-1課件_第4頁
第二章-軟件測試方法-1課件_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章軟件測試方法第二章軟件測試方法2.0軟件系統(tǒng)的主要測試內容及技術2.1軟件測試方法概述2.2靜態(tài)測試與動態(tài)測試2.3黑盒測試2.4白盒測試習題2.0軟件系統(tǒng)的主要測試內容及技術1)接口與路徑測試2)功能測試3)健壯性測試4)性能測試5)用戶界面測試6)信息安全測試7)壓力測試8)可靠性測試9)安裝/反安裝測試1)接口與路徑測試(白盒測試)2)功能測試(黑盒測試)3)健壯性測試健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性有兩層含義:一是容錯能力,二是恢復能力。容錯性測試通常構造一些不合理的輸入來引誘軟件出錯,例如:(1)輸入錯誤的數(shù)據(jù)類型。如“猴”年“馬”月。(2)輸入定義域之外的數(shù)值。如上海人常說的“十三點”粗暴一些方式俗稱“大猩猩”測試法。除了不能拳打腳踢嘴咬外,什么招術都可以使出來。例如在測試客戶機-服務器模式的軟件時,把網(wǎng)絡線拔掉,造成通信異常中斷。恢復測試重點考察一下幾項:(1)系統(tǒng)能否重新運行;(2)有無重要的數(shù)據(jù)丟失;(3)是否毀壞了其它相關的軟件硬件。2.0軟件系統(tǒng)的主要測試內容及技術4)性能測試性能測試即測試軟件處理事務的速度,一是為了檢驗性能是否符合需求,二是為了得到某些性能數(shù)據(jù)供人們參考有時人們關心測試的“絕對值”,如數(shù)據(jù)送輸速率是每秒多少比特。有時人們關心測試的“相對值”,如某個軟件比另一個軟件快多少倍。在獲取測試的“絕對值”時,我們要充分考慮并記錄運行環(huán)境對測試的影響。例如網(wǎng)絡環(huán)境、計算機主頻,總線結構和外部設備都可能影響軟件的運行速度。

性能測試的一些注意事項:不要試圖讓人拿著鐘表去測時間,應當編寫一段程序用于計算時間以及相關數(shù)據(jù)。應當測試軟件在標準配置和最低配置下的性能。為了排除干擾,應當關閉那些消耗內存、占用CPU的其它應用軟件(如殺毒軟件)。不同的輸入情況會得到不同的性能數(shù)據(jù),應當分檔記錄。例如傳輸文件的容量從100K到1M可以分成若干等級。由于環(huán)境的波動,同一種輸入情況在不同的時間可能得到不同的性能數(shù)據(jù),可以取其平均值。2.0軟件系統(tǒng)的主要測試內容及技術5)用戶界面測試絕大多數(shù)軟件擁有圖形用戶界面。圖形用戶界面的測試重點是正確性、易用性和視覺效果。在評價易用性和視覺效果時,主觀性非常強,應當考慮多個人的觀點。2.0軟件系統(tǒng)的主要測試內容及技術6)信息安全測試信息安全性(security)是指防止系統(tǒng)被非法入侵的能力,既屬于技術問題又屬于管理問題。信息安全性測試有如下步驟:(1)為非法入侵設立目標,例如“盜竊某個文件”或“更改數(shù)據(jù)庫記錄”等。(2)邀請(或懸賞)一些人扮演黑客,讓他們想盡辦法入侵系統(tǒng),實現(xiàn)“目標”。(3)如果有人成功了,請他詳述入侵的過程。別忘了給予獎勵。2.0軟件系統(tǒng)的主要測試內容及技術7)壓力測試壓力測試也叫負荷測試,即獲取系統(tǒng)能正常運行的極限狀態(tài)。了解“極限”是很有價值的,例如潛艇下潛極限深度…。壓力測試的主要任務是:構造正確的輸入,使勁折騰系統(tǒng)卻讓它剛好不癱瘓。

壓力測試的一個變種是敏感測試。在某種情況下,微小的輸入變動會導致系統(tǒng)的表現(xiàn)(如性能)發(fā)生急劇的變化。敏感測試目的是發(fā)現(xiàn)什么樣的輸入可能會引發(fā)不穩(wěn)定現(xiàn)象。

8)可靠性測試可靠性是指在一定的環(huán)境下、在給定的時間內、系統(tǒng)不發(fā)生故障的概率。由于軟件不像硬件那樣可以“加速老化”,按此定義,軟件可靠性測試可能會花費很長時間。比較實用的辦法是,讓用戶使用該系統(tǒng),記錄每一次發(fā)生故障的時刻。計算出相鄰故障的時間間隔,注意要去掉非工作時間。這樣我們可以方便地統(tǒng)計出不發(fā)生故障的“最小時間間隔”、“最大時間間隔”和“平均時間間隔”。其中“平均時間間隔”會讓人們大體了解到系統(tǒng)“可靠”的程度。2.0軟件系統(tǒng)的主要測試內容及技術9)安裝/反安裝測試安裝/反安裝測試的目的:避免“大風浪都挺過來了,卻在陰溝里翻了船”目前市面上有非常流行的、專門制作安裝/反安裝程序的一些工具,如InstallShelled。制作安裝/反安裝程序不再是件難事,關鍵是不要麻痹大意。主要測試工作:(1)至少在標準配置和最低配置兩種環(huán)境下測試;(2)如果有安裝界面,應當嘗試各種選項,如選擇“全部”、“部分”、“升級”等。2.0軟件系統(tǒng)的主要測試內容及技術2.1軟件測試方法概述第二章軟件測試方法軟件測試的方法多種多樣,可以從不同角度加以分類:從是否需要執(zhí)行被測軟件的角度,分為靜態(tài)測試和動態(tài)測試;從是針對系統(tǒng)的外部功能還是針對系統(tǒng)的內部結構的角度,分為黑盒測試和白盒測試;從軟件測試的策略和過程的角度,分為單元測試、集成測試、確認測試、系統(tǒng)測試和驗收測試等。2.1軟件測試方法概述第二章軟件測試方法1.從是否需要執(zhí)行被測軟件的角度分類從是否需要執(zhí)行被測軟件的角度,軟件測試可分為靜態(tài)測試(StaticTesting)和動態(tài)測試(DynamicTesting)。顧名思義,靜態(tài)測試就是通過對被測程序的靜態(tài)審查,發(fā)現(xiàn)代碼中潛在的錯誤。它一般用人工方式脫機完成,故亦稱人工測試或代碼評審(CodeReview);

動態(tài)測試是通常意義上的測試,即使用和運行被測軟件。動態(tài)測試的對象必須是能夠由計算機真正運行的被測試的程序,它包含黑盒測試和白盒測試。

2.1軟件測試方法概述第二章軟件測試方法2.從軟件測試用例設計方法的角度分類從軟件測試用例設計方法的角度,可分為黑盒測試(Black-BoxTesting)和白盒測試(White-BoxTesting)。黑盒測試是一種從用戶角度出發(fā)的測試,又稱為功能測試。使用這種方法進行測試時,把被測試程序當作一個黑盒,忽略程序內部的結構的特性,測試者在只知道該程序輸入和輸出之間的關系或程序功能的情況下,依靠能夠反映這一關系和程序功能需求規(guī)格的說明書,來確定測試用例和推斷測試結果的正確性。簡單地說,若測試用例的設計是基于產品的功能,目的是檢查程序各個功能是否實現(xiàn),并檢查其中的功能錯誤,則這種測試方法稱為黑盒。白盒測試基于產品的內部結構來進行測試,檢查內部操作是否按規(guī)定執(zhí)行,軟件各個部分功能是否得到充分利用。白盒測試又稱為結構測試,邏輯驅動測試或基于程序的測試。即根據(jù)被測程序的內部結構設計測試用例,測試者需要預先了解被測試程序的結構。

2.1軟件測試方法概述第二章軟件測試方法3.從軟件測試的策略和過程的角度分類。按照軟件測試的策略和過程分類,軟件測試可分為單元測試(UnitTesting),集成測試(IntegrationTesting),確認測試(ValidationTesting),系統(tǒng)測試(SystemTesting)和驗收測試(VerificationTesting)。單元測試是針對每個單元的測試,是軟件測試的最小單位。它確保每個模塊能正常工作。單元測試主要采用白盒測試方法,用以發(fā)現(xiàn)內部錯誤。集成測試是對已測試過的模塊進行組裝,進行集成測試的目的主要在于檢驗與軟件設計相關的程序結構問題。在集成測試過程中,測試人員采用黑盒測試和白盒測試兩種方法,來驗證多個單元模塊集成到一起后是否能夠協(xié)調工作。確認測試是檢驗所開發(fā)的軟件能否滿足所有功能和性能需求的最后手段,通常采用黑盒測試方法。系統(tǒng)測試的主要任務是檢測被測軟件與系統(tǒng)的其他部分的協(xié)調性,通常采用黑盒測試方法。驗收測試是軟件產品質量的最后一關。這一環(huán)節(jié),測試主要從用戶的角度著手,其參與者主要是用戶和少量的程序開發(fā)人員,通常采用黑盒測試方法。

2.2靜態(tài)測試與動態(tài)測試第二章軟件測試方法根據(jù)程序是否運行可以把軟件測試方法分為靜態(tài)測試(StaticTesting)和動態(tài)測試(DynamicTesting)兩大類。圖2-1是靜態(tài)測試與動態(tài)測試的比喻圖。圖2-1靜態(tài)測試與動態(tài)測試的比喻圖2.2.1靜態(tài)測試第二章軟件測試方法靜態(tài)方法的主要特征是在用計算機測試源程序時,計算機并不真正運行被測試的程序,只對被測程序進行特性分析。因此,靜態(tài)方法常稱為“分析”,靜態(tài)分析是對被測程序進行特性分析的一些方法的總稱。所謂靜態(tài)分析,就是不需要執(zhí)行所測試的程序,而只是通過掃描程序正文,對程序的數(shù)據(jù)流和控制流等信息進行分析,找出系統(tǒng)的缺陷,得出測試報告。

靜態(tài)測試包括評審(reviews),走查(walk-through),和審查(inspection),可以統(tǒng)稱為復審。它可以由人工進行,充分發(fā)揮人的邏輯思維優(yōu)勢,也可以借助軟件工具自動進行。走查(WalkThrough)定義:采用講解、討論和模擬運行的方式進行的查找錯誤的活動。注意:引導小組成員在走查前通讀設計和編碼。限時,避免跑題。發(fā)現(xiàn)問題適當記錄,避免現(xiàn)場修改。檢查要點是代碼是否符合標準和規(guī)范,是否有邏輯錯誤。審查(Inspection)定義:采用講解、提問方式進行,一般有正式的計劃、流程和結果。主要方法采用缺陷檢查表。注意:以會議形式,制定會議目標、流程和規(guī)則,結束后要編寫報告。按缺陷檢查表逐項檢查。發(fā)現(xiàn)問題適當記錄,避免現(xiàn)場修改。發(fā)現(xiàn)重大缺陷,改正后會議需要重開。檢查要點是缺陷檢查表,所以該表要根據(jù)項目不同不斷積累完善。走查與審查的比較

走查審查準備通讀設計和編碼應準備好需求描述文檔、程序設計文檔、程序的源代碼清單、代碼編碼標準和代碼缺陷檢查表形式非正式會議正式會議參加人員開發(fā)人員為主項目組成員包括測試人員主要技術方法無缺陷檢查表注意事項限時、不要現(xiàn)場修改代碼限時、不要現(xiàn)場修改代碼生成文檔會議記錄靜態(tài)分析錯誤報告目標代碼標準規(guī)范,無邏輯錯誤代碼標準規(guī)范,無邏輯錯誤評審(Review)定義:通常在審查會后進行,審查小組根據(jù)記錄和報告進行評估。注意:充分審查了所規(guī)定的代碼,并且全部編碼準則被遵守。審查中發(fā)現(xiàn)的錯誤已全部修改。復審的意義1)為驗證和確認而復審2)將復審作為一種改進的過程、改進系統(tǒng)、節(jié)約開銷的手段。3)復審作為一種取得共識和理解的手段4)復審的交付品,可以在需求、設計、代碼、測試用例、缺陷報告和其他的項目中找到缺陷。2.2.2動態(tài)測試

第二章軟件測試方法動態(tài)測試是真正運行被測程序,在執(zhí)行過程中,通過輸入有效的測試用例,對其輸入與輸出的對應關系進行分析,以達到檢測的目的。在動態(tài)測試中,又可有基于程序結構的白盒測試(或稱為覆蓋測試)和基于功能的黑盒測試。

2.3黑盒測試方法

第二章軟件測試方法黑盒測試(Black-boxTesting)又稱為功能測試、數(shù)據(jù)驅動測試和基于規(guī)格說明的測試。是一種從用戶觀點出發(fā)的測試,主要以軟件規(guī)格說明書為依據(jù),對程序功能和程序接口進行的測試。黑盒測試的基本觀點是:任何程序都可以看作是從輸入定義域映射到輸出值域的函數(shù)過程,被測程序被認為是一個打不開的黑盒子,黑盒中的內容(實現(xiàn)過程)完全不知道,只明確要做到什么。黑盒測試作為軟件功能的測試手段,是重要的測試方法。它主要根據(jù)規(guī)格說明設計測試用例,并不涉及程序內部結構和內部特性,只依靠被測程序輸入和輸出之間的關系或程序的功能設計測試用例。黑盒測試軟件不深入代碼細節(jié)的測試方法稱為動態(tài)黑盒測試。軟件測試員充當客戶來使用。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。黑盒測試方法是在程序接口上進行測試,主要是為了發(fā)現(xiàn)以下錯誤:

是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結果?是否有數(shù)據(jù)結構錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?性能上是否能夠滿足要求?是否有初始化或終止性錯誤?

用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查程序是否都能產生正確的輸出。但這是不可能的。例:假設一個程序P有輸入量X和Y及輸出量Z。在字長為32位的計算機上運行。若X、Y取整數(shù),按黑盒方法進行窮舉測試:可能采用的測試數(shù)據(jù)組:

232×232

=264

如果測試一組數(shù)據(jù)需要1毫秒,一年工作365×24小時,完成所有測試需5億年。黑盒測試的具體技術方法主要包括邊界值分析法、等價類劃分法、因果圖法、決策表法等。這些方法是比較實用的,在項目中采用什么方法,在設計具體的測試方案時自然要針對開發(fā)項目的特點對設計方法進行適當?shù)倪x擇。2.3.2等價類劃分法

第二章軟件測試方法等價類劃分法概述(EquivalencePartitioning)

把所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若干個等價的子集(稱為等價類),使得每個子集中的一個典型值在測試中的作用與這一子集中所有其它值的作用相同,可從每個子集中選取一組數(shù)據(jù)來測試程序。2劃分等價類的規(guī)則(1)如果輸入條件規(guī)定了取值范圍,可定義一個有效等價類和兩個無效等價類。例如,在程序的規(guī)格說明中,對輸入條件有一句話:

“……項數(shù)可以從1到999……”

則有效等價類是“1≤項數(shù)≤999”兩個無效等價類是“項數(shù)<1”或“項數(shù)>999”。在數(shù)軸上表示成:(2)如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類。(3)如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。

(4)如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對每個輸入值分別進行處理。這時可為每一個輸入值確立一個有效等價類,此外針對這組值確立一個無效等價類,它是所有不允許的輸入值的集合。例如,在教師上崗方案中規(guī)定對教授、副教授、講師和助教分別計算分數(shù),做相應的處理。因此可以確定4個有效等價類為教授、副教授、講師和助教,一個無效等價類,它是所有不符合以上身分的人員的輸入值的集合。

(5)如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。3從劃分出的等價類中按以下原則設計測試用例:

(1)為每一個等價類規(guī)定一個唯一編號;

(2)設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;

(3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。例1:對招干考試系統(tǒng)“輸入學生成績”子模塊設計測試用例

招干考試分三個專業(yè),準考證號第一位為專業(yè)代號,如:1-行政專業(yè),2-法律專業(yè),3-財經(jīng)專業(yè)。行政專業(yè)準考證號碼為:110001~111215

法律專業(yè)準考證號碼為:210001~212006

財經(jīng)專業(yè)準考證號碼為:310001~314015準考證號碼的等價類劃分有效等價類:

(1)110001~111215(2)210001~212006(3)310001~314015

無效等價類:

(4)-

~110000(5)111216~210000(6)212007~31000(7)314016~+例2:某報表處理系統(tǒng)要求用戶輸入處理報表的日期,日期限制在2001年1月至2005年12月,即系統(tǒng)只能對該段期間內的報表進行處理,如日期不在此范圍內,則顯示輸入錯誤信息。系統(tǒng)日規(guī)定由年、月的6位數(shù)字字符組成,前四位代表年,后兩位代表月。如何用等價類劃分法設計測試用例,來測試程序的日期檢查功能?第一步:等價類劃分

“報表日期”輸入條件的等價類表輸入等價類有效等價類無效等價類報表日期的類型及長度6位數(shù)字字符(1)有非數(shù)字字符(4)

少于6個數(shù)字字符(5)

多于6個數(shù)字字符(6)

年份范圍在2001~2005

之間(2)

小于2001(7)

大于2005(8)

月份范圍

在1~12之間(3)

小于1(9)

大于12(10)

第二步:為有效等價類設計測試用例對表中編號為1,2,3的3個有效等價類用一個測試用例覆蓋:測試數(shù)據(jù) 期望結果 覆蓋范圍200105輸入有效 等價類(1)(2)(3)第三步:為每一個無效等價類設至少設計一個測試用例

測試數(shù)據(jù)期望結果 覆蓋范圍001MAY 輸入無效 等價類(4)20015 輸入無效 等價類(5)2001005 輸入無效 等價類(6)200005 輸入無效 等價類(7)200805 輸入無效 等價類(8)200100 輸入無效 等價類(9)200113 輸入無效 等價類(10)不能出現(xiàn)相同的測試用例本例的10個等價類至少需要8個測試用例例3:以三角形問題為例,輸入條件是:三個數(shù),分別作為三角形的三條邊都是整數(shù)取值范圍在1~100之間認真分析上述的輸入條件,可以得出相關的等價類表(包括有效等價類和無效等價類),如表2-2所示。2.3.2等價類劃分法

第二章軟件測試方法2.3.2等價類劃分法

第二章軟件測試方法輸入條件等價類編號有效等價類等價類編號無效等價類三個數(shù)1三個數(shù)4只有一條邊5只有兩條邊6多于三條邊整數(shù)2整數(shù)7一邊為非整數(shù)8兩邊為非整數(shù)9三邊為非整數(shù)取值范圍在1~10031≤a≤1001≤b≤1001≤c≤10010一邊為011兩邊為012三邊為013一邊小于014兩邊小于015三邊小于016一邊大于10017兩邊大于10018三邊大于100表2-2三角形問題的等價類1邊界值分析法*(BoundaryValueAnalysis,BVA)邊界值分析法是對等價類劃分方法的補充。人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。

邊界值分析所謂邊界值分析,就是把測試的重點放在各個等價類的邊界上,選取正好等于,剛剛大于,或剛剛小于邊界的值做為測試數(shù)據(jù),并據(jù)此設計出相應的測試用例。

2.3.3邊界值分析法

第二章軟件測試方法2在應用邊界值分析法設計測試用例時,應遵循以下幾條原則:如果輸入條件規(guī)定了值的范圍,則應該選取剛達到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù)。如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最小個數(shù)少1、比最大個數(shù)多1的數(shù)作為測試數(shù)據(jù)。根據(jù)規(guī)格說明的每一個輸出條件,分別使用以上兩個原則。如果程序的規(guī)格說

溫馨提示

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

評論

0/150

提交評論