軟件測試技術(shù)(第二版-全套ppt課件



《軟件測試技術(shù)(第二版-全套ppt課件》由會員分享,可在線閱讀,更多相關(guān)《軟件測試技術(shù)(第二版-全套ppt課件(204頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,,*,,軟件測試技術(shù),,(,第二版,),軟件測試技術(shù)(第二版),第,1,章 軟件測試基本知識,,第1章 軟件測試基本知識,第1章 軟件測試基本知識,1.1 軟件的概念,1.2 軟件測試基本概念,1.3 軟件測試的必要性,1.4 軟件測試的分類,第1章 軟件測試基本知識1.1 軟件的概念,1.1 軟件的概念,軟件就是程序加文檔的集合體,計算機(jī)軟件主要分為系統(tǒng)軟件和應(yīng)用軟件二大類。,系統(tǒng)軟件為計算機(jī)使用提供最基本的功能,
2、是負(fù)責(zé)管理計算機(jī)系統(tǒng)中各種獨(dú)立的硬件,使得它們可以協(xié)調(diào)工作。 系統(tǒng)軟件又分為操作系統(tǒng)和支撐軟件,其中操作系統(tǒng)是最基本的軟件。,應(yīng)用軟件是為了某種特定的用途而被開發(fā)的軟件。如:,QQ,、,MSN,、手機(jī)股票、游戲軟件,1.1 軟件的概念 軟件就是程序加文檔的集合體,1.2 軟件測試基本概念,軟件測試是測試的一種,顧名思義就是對軟件進(jìn)行測試。軟件測試是由于軟件缺陷的存在而產(chǎn)生的。我們將所有軟件問題統(tǒng)稱作軟件缺陷,不管他們的規(guī)模和危害有多大,由于它們都會產(chǎn)生使用障礙,而都稱為軟件缺陷。,軟件測試就是在軟件投入運(yùn)行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼實現(xiàn)的最終審查,它是軟件質(zhì)量保證的關(guān)鍵步驟,1.2
3、 軟件測試基本概念 軟件測試是測試的一種,顧名思義就是,1.2 軟件測試基本概念,軟件測試的定義,軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計的一批測試用例,并利用這些測試用例運(yùn)行程序以及發(fā)現(xiàn)錯誤的過程,即執(zhí)行測試步驟。,測試用例,為特定的目的而設(shè)計的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果;測試用例是執(zhí)行測試的最小實體。,測試步驟:,測試步驟詳細(xì)規(guī)定了如何設(shè)置、執(zhí)行、評估特定的測試用例。,1.2 軟件測試基本概念軟件測試的定義,1.2 軟件測試基本概念,軟件測試的對象,軟件測試不等于程序測試。,軟件開發(fā)過程中所產(chǎn)生的需求規(guī)格說明、概要設(shè)
4、計規(guī)格說明、詳細(xì)設(shè)計規(guī)格說明以及源程序都是軟件測試的對象。,軟件測試的目的,測試的目的是發(fā)現(xiàn)錯誤。,1.2 軟件測試基本概念軟件測試的對象,1.2 軟件測試基本概念,軟件測試的原則,盡早地和及時地測測試發(fā)現(xiàn)得越晚,修復(fù)的代價越高。,測試用例應(yīng)當(dāng)由測試數(shù)據(jù)和與之對應(yīng)的預(yù)期結(jié)果這兩部分組成;,在程序提交測試后,應(yīng)當(dāng)由專門的測試人員進(jìn)行測試,避免由程序設(shè)計者自行檢查程序。,測試用例應(yīng)包括合理的輸入條件和不合理的輸入條件;,嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性;,充分注意測試當(dāng)中的群體現(xiàn)象;,應(yīng)對每一個測試結(jié)果做全面的檢查;,保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護(hù)工作提供充分的資料。,1
5、.2 軟件測試基本概念軟件測試的原則,1.2 軟件測試基本概念,測試停止的依據(jù)(標(biāo)準(zhǔn)),第一類標(biāo)準(zhǔn):測試超過了預(yù)定時間,則停止測試。這類標(biāo)準(zhǔn)不能用來衡量測試質(zhì)量。,第二類標(biāo)準(zhǔn):執(zhí)行了所有的測試用例,但并沒有發(fā)現(xiàn)故障,則停止測試。,第三類標(biāo)準(zhǔn):使用特定的測試用例設(shè)計方案作為判斷測試停止的基礎(chǔ)。,第四類標(biāo)準(zhǔn):正面指出停止測試的具體要求。,第五類標(biāo)準(zhǔn):根據(jù)單位時間內(nèi)查出故障的數(shù)量決定是否停止測試。,1.2 軟件測試基本概念測試停止的依據(jù)(標(biāo)準(zhǔn)),1.2 軟件測試基本概念,軟件測試和修復(fù),軟件測試和修復(fù)是不同意義的行為過程,最能體現(xiàn)修復(fù)行為的是調(diào)試和修正。,經(jīng)過測試發(fā)現(xiàn)錯誤后,往往不能直覺從測試結(jié)果中
6、找到錯誤的根源,這就需要充分利用測試結(jié)果和測試過程中提供的信息進(jìn)行全面分析,通過調(diào)試發(fā)現(xiàn)錯誤,并修正這些發(fā)現(xiàn)的錯誤。,1.2 軟件測試基本概念軟件測試和修復(fù),1.3 軟件測試的必要性,Ashton Tate公司DbaseIV,Borland公司的Borland C++ 4.0,迪斯尼公司的獅子王游戲,千年蟲問題,暴風(fēng)軟件召回,淘寶手機(jī)軟件事件,1.3 軟件測試的必要性 Ashton Tate公司Dbas,1.4 軟件測試的分類,按照是否需要執(zhí)行程序,軟件測試可劃分為靜態(tài)測試和動態(tài)測試,靜態(tài)測試:并不真正運(yùn)行被測試程序,只是進(jìn)行特征分析,動態(tài)測試:通過選擇適當(dāng)?shù)臏y試用例,實際運(yùn)行所測程序,比較實
7、際運(yùn)行結(jié)果和預(yù)期結(jié)果,以找出錯誤。,1.4 軟件測試的分類 按照是否需要執(zhí)行程序,軟件測試可劃分,靜態(tài)測試,靜態(tài)分析程序不需要執(zhí)行所測試的程序,它掃描所測試程序的正文,對程序的數(shù)據(jù)流和控制流進(jìn)行分析。然后送出測試報告。,檢查模塊中的變量,檢查模塊接口的一致性,檢查在邏輯上可能有錯誤的結(jié)構(gòu)以及多余的不可達(dá)的程序段,建立“變量/語句交叉引用表”、“子程序調(diào)用順序表”、“公用區(qū)/子程序交叉引用表”等,檢查所測程序違反編程標(biāo)準(zhǔn)的錯誤,對一些靜態(tài)特性的統(tǒng)計功能,靜態(tài)分析并不等同于編譯系統(tǒng) ,靜態(tài)分析的查錯和分析功能是編譯程序所不能代替的 。 靜態(tài)分析工具的結(jié)構(gòu)一般由四部分組成:語言程序的預(yù)處理器、數(shù)據(jù)庫
8、、錯誤分析器和報告生成器。,靜態(tài)測試靜態(tài)分析程序不需要執(zhí)行所測試的程序,它掃描所測試程序,動態(tài)測試,動態(tài)測試分為結(jié)構(gòu)測試與功能測試,測試覆蓋監(jiān)視程序:主要用在結(jié)構(gòu)測試中,可以監(jiān)視測試的實際覆蓋程度。,斷言處理程序 :對照斷言語句檢查事先指定的斷言是否成立??梢詭椭鷱?fù)雜系統(tǒng)的檢驗、調(diào)試和維護(hù),符號執(zhí)行程序 :符號執(zhí)行法是一種介于程序測試用例執(zhí)行與程序正確性證明之間的方法。它使用了一個專用的程序,對輸入的源程序進(jìn)行解釋。,動態(tài)測試 動態(tài)測試分為結(jié)構(gòu)測試與功能測試,1.4 軟件測試的分類,按照軟件測試用例的設(shè)計方法而論,軟件測試可以分為白盒測試和黑盒測試,白盒測試:按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程
9、序中的每條通路是否都有能按預(yù)定要求正確工作 ,主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證 。,黑盒測試:在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用 ,黑盒測試方法主要有等價類劃分、邊值分析、因,—,果圖、錯誤推測等 。,1.4 軟件測試的分類 按照軟件測試用例的設(shè)計方法而論,軟件,1.4 軟件測試的分類,按照軟件測試的策略和過程來分類,軟件測試可分為單元測試、集成測試、系統(tǒng)測試、驗證測試和確認(rèn)測試 。,單元測試:對軟件中的基本組成單位進(jìn)行的測試,集成測試:在軟件系統(tǒng)集成過程中所進(jìn)行的測試,其主要目的是檢查軟件單位之間的接口是否正確。,系統(tǒng)測試:對已經(jīng)集成好的軟件系統(tǒng)
10、進(jìn)行徹底的測試,以驗證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求 。,驗證測試:旨在向軟件的購買者展示該軟件系統(tǒng)滿足其用戶的需求。,確認(rèn)測試:在軟件維護(hù)階段,對軟件進(jìn)行修改之后進(jìn)行的測試。其目的是檢驗對軟件進(jìn)行的修改是否正確。,1.4 軟件測試的分類按照軟件測試的策略和過程來分類,軟件測,本章小結(jié),,,本章介紹了軟件和軟件測試的相關(guān)概念,分析了軟件測試目的、軟件測試的必要性、軟件測試停止的標(biāo)準(zhǔn)、軟件測試的分類。,本章小結(jié) 本章介紹了軟件和軟件測試的相關(guān)概念,分析了軟,實訓(xùn)習(xí)題,練習(xí)1.上網(wǎng)查詢相關(guān)軟件測試網(wǎng)站,理解軟件測試的基本概念。,練習(xí)2.說說你對軟件測試的認(rèn)識。,練習(xí)3.通過查
11、找資料,舉一個不同于書上的案例來說明軟件測試的重要性。,練習(xí)4.根據(jù)自己理解,介紹一下動態(tài)測試和靜態(tài)測試的區(qū)別。,實訓(xùn)習(xí)題練習(xí)1.上網(wǎng)查詢相關(guān)軟件測試網(wǎng)站,理解軟件測試的基本,第,2,章 軟件測試階段,第2章 軟件測試階段,第,2,章 軟件測試階段,2.1,軟件生命周期,2.2,軟件測試階段,2.3,軟件測試模型,第2章 軟件測試階段 2.1 軟件生命周期,教學(xué)要求:,掌握:軟件測試各階段的主要任務(wù)。,,理解:軟件測試模型與軟件生命周期的關(guān)系、幾種典型的軟件測試模型。,,了解:幾種典型的軟件測試模型的應(yīng)用。,教學(xué)要求:掌握:軟件測試各階段的主要任務(wù)。,2.1,軟件生命周期,軟件開發(fā)生命周期可以
12、劃分成計劃、設(shè)計、開發(fā)和運(yùn)行維護(hù),4,個時期,每個時期又進(jìn)一步劃分成若干階段,2.1 軟件生命周期 軟件開發(fā)生命周期可以劃分成計劃、設(shè)計、,2.1,軟件生命周期,軟件生命周期每個階段的主要任務(wù)如下:,問題定義,——“,要解決的問題是什么?,”,,可行性論證及軟件計劃,——“,有行得通的解決辦法嗎?,”,,需求分析,——“,系統(tǒng)必須做什么?,”,,總體設(shè)計,——“,概括地說,應(yīng)該怎樣做?,”,,詳細(xì)設(shè)計,——“,具體怎樣做?,”,,編碼和單元測試,綜合測試,運(yùn)行,/,維護(hù),2.1 軟件生命周期 軟件生命周期每個階段的主要任務(wù)如下:,2.1 軟件生命周期,瀑布模型,瀑布模型核心思想是按工序?qū)栴}化
13、簡,將功能的實現(xiàn)與設(shè)計分開,便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實現(xiàn)與物理實現(xiàn)分開。將,軟件生命周期,劃分為制定計劃、需求分析、軟件設(shè)計、程序編寫、軟件測試和運(yùn)行維護(hù)等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。,,2.1 軟件生命周期瀑布模型,2.1 軟件生命周期,原型模型,先建立一個能夠反映用戶需求的原型系統(tǒng),,,使得用戶和開發(fā)者可以對目標(biāo)系統(tǒng)的概貌進(jìn)行評價和判斷,然后對原型系統(tǒng)進(jìn)行反復(fù)的擴(kuò)充、改進(jìn)、求精,最終建立符合用戶需求的目標(biāo)系統(tǒng)。,,2.1 軟件生命周期原型模型,2.1 軟件生命周期,螺旋模型,將瀑布模型和原型模型結(jié)合起來,,,它把
14、軟件開發(fā)過程組織成為一個逐步細(xì)化的螺旋周期,每經(jīng)歷一個周期,系統(tǒng)就得到進(jìn)一步的細(xì)化和完善;整個模型緊密圍繞開發(fā)中的風(fēng)險分析,推動軟件設(shè)計向深層擴(kuò)展和求精。該模型要求開發(fā)人員與用戶能經(jīng)常直接進(jìn)行交流,通常用來指導(dǎo)內(nèi)部發(fā)行的大型軟件項目的開發(fā)。,2.1 軟件生命周期螺旋模型,2.1 軟件生命周期,增量模型,,增量模型融合了瀑布模型的基本成分和原型實現(xiàn)的迭代特征,該模型采用隨著日程時間的進(jìn)展而交錯的線性序列,每一個線性序列產(chǎn)生軟件的一個可發(fā)布的,“,增量,”,。當(dāng)使用增量模型時,第一個增量往往是核心的產(chǎn)品,即第一個增量實現(xiàn)了基本的需求,但很多補(bǔ)充的特征還沒有發(fā)布。客戶對每一個增量的使用和評估都作為下
15、一個增量發(fā)布的新特征和功能,這個過程在每一個增量發(fā)布后不斷重復(fù),直到產(chǎn)生了最終的完善產(chǎn)品。,,2.1 軟件生命周期增量模型,2.1 軟件生命周期,迭代模型,迭代模型也是一種漸近式的模型,但它與增量模型又有區(qū)別。假設(shè)現(xiàn)在要開發(fā),A,、,B,、,C,、,D,四個大的業(yè)務(wù)功能,每個功能都需要開發(fā)兩周的時間。對于增量方法而言可以將四個功能分為兩次增量來完成,第一個增量完成,A,、,B,功能,第二次增量完成,C,、,D,功能;而對于迭代開發(fā)來講則是分兩次迭代來開發(fā),第一次迭代完成,A,、,B,、,C,、,D,四個基本業(yè)務(wù)功能,但不含復(fù)雜的業(yè)務(wù)邏輯,而第二次迭代再逐漸細(xì)化補(bǔ)充完整相關(guān)的業(yè)務(wù)邏輯。在第一個月
16、過去后,采用增量開發(fā)的時候,A,、,B,全部開發(fā)完成,而,C,、,D,還一點(diǎn)都沒有動;而采用迭代開發(fā)的時候,A,、,B,、,C,、,D,四個的基礎(chǔ)功能都已經(jīng)完成。,,2.1 軟件生命周期迭代模型,2.1 軟件生命周期,噴泉模型,在面向?qū)ο蠓椒ㄖ校岢隽伺c瀑布模型相對應(yīng)的噴泉模型,,,該模型的主要特點(diǎn)是認(rèn)為軟件生命周期的各個階段是相互重疊和多次反復(fù)的,就像水噴上去又可以落下來,水既可以落在中間,也可以落在最底部。整個開發(fā)過程中都使用統(tǒng)一的概念“對象”進(jìn)行分析,使用統(tǒng)一的概念和符號表示分析設(shè)計過程,各階段間沒有明顯的邊界,即“無縫”銜接,因此各開發(fā)步驟可以多次反復(fù)迭代,逐步深化。,2.1 軟件生命
17、周期噴泉模型,2.2,軟件測試階段,單元測試,集成測試,系統(tǒng)測試,驗收測試,回歸測試,,2.2 軟件測試階段 單元測試,2.2.1 單元測試,單元測試又稱為模塊測試,它是在軟件開發(fā)過程中進(jìn)行的最低級別的測試活動,其測試的對象是軟件設(shè)計的最小單位,——,程序模塊。,單元測試的目的是:檢查每個模塊能否正確實現(xiàn)詳細(xì)設(shè)計說明書中的模塊功能、性能、接口和設(shè)計約束等要求,發(fā)現(xiàn)模塊內(nèi)部可能存在的各種錯誤。,單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,進(jìn)行單元測試時,通常需要兩類信息:模塊的規(guī)格說明書和模塊的源代碼,主要采用白盒測試技術(shù)。多個模塊可以平行地獨(dú)立進(jìn)行單元測試。,2.2.1 單元測試單元測試又稱
18、為模塊測試,它是在軟件開發(fā)過,2.2.2 集成測試,集成測試也叫做組裝測試,通常在單元測試的基礎(chǔ)上,通過適當(dāng)?shù)募刹呗?,將程序模塊有序、遞增地組裝起來進(jìn)行測試。,集成測試的目的是檢驗程序單元或部件的接口關(guān)系,逐步集成為符合概要設(shè)計要求的程序部件或整個系統(tǒng)。軟件集成的過程是一個持續(xù)的過程,會形成很多個臨時的版本,在不斷的集成過程中,功能集成的穩(wěn)定性是真正的挑戰(zhàn)。在每個版本提交時,都需要進(jìn)行冒煙測試,即對程序主要功能進(jìn)行驗證。冒煙測試也叫版本驗證測試或提交測試。,2.2.2 集成測試集成測試也叫做組裝測試,通常在單元測試的,2.2.3 確認(rèn)測試,確認(rèn)測試又稱有效性測試。任務(wù)是驗證軟件的功能和性能及
19、其它特性是否與用戶的要求一致。對軟件的功能和性能要求在軟件需求規(guī)格說明書中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測試的基礎(chǔ)。,2.2.3 確認(rèn)測試確認(rèn)測試又稱有效性測試。任務(wù)是驗證軟件的,2.2.4 系統(tǒng)測試,系統(tǒng)測試,是將通過確認(rèn)測試的軟件,作為整個基于計算機(jī)系統(tǒng)的一個元素,與計算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起,在實際運(yùn)行環(huán)境下,對計算機(jī)系統(tǒng)進(jìn)行一系列的組裝測試和確認(rèn)測試。,它為了驗證和確認(rèn)系統(tǒng)是否達(dá)到其原始目標(biāo),對集成的硬件和軟件系統(tǒng)進(jìn)行的測試。系統(tǒng)測試是在真實戒模擬系統(tǒng)運(yùn)行的環(huán)境下,檢查完整的程序系統(tǒng)能否和系統(tǒng)(包括硬件、外設(shè)、網(wǎng)絡(luò)和系統(tǒng)軟件、支持平臺等)
20、正確配置、連接,并滿足用戶需求。,2.2.4 系統(tǒng)測試系統(tǒng)測試,是將通過確認(rèn)測試的軟件,作為整,2.2.5 回歸測試,回歸測試是指修改了舊代碼后,重新進(jìn)行測試以確認(rèn)修改沒有引入新的錯誤或?qū)е缕渌a產(chǎn)生錯誤?;貧w測試作為軟件生命周期的一個組成部分,在整個軟件測試過程中占有很大的工作量比重,軟件開發(fā)的各個階段都會進(jìn)行多次回歸測試。在漸進(jìn)和快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使回歸測試進(jìn)行的更加頻繁,而在極端編程方法中,更是要求每天都進(jìn)行若干次回歸測試。自動回歸測試將大幅降低系統(tǒng)測試、維護(hù)升級等階段的成本。因此,通過選擇正確的回歸測試策略來改進(jìn)回歸測試的效率和有效性是非常有意義的。,2.2.5 回歸測
21、試回歸測試是指修改了舊代碼后,重新進(jìn)行測試,2.3,軟件測試模型,V,模型,——,非常明確地標(biāo)注了測試過程中存在的不同類型的測試。,W,模型,——,非常明確地標(biāo)注了生產(chǎn)周期中開發(fā)與測試之間的對應(yīng)關(guān)系。,X,模型,——,這個模型指出整個測試過程是在探索中進(jìn)行的。,H,模型,——,軟件測試是一個獨(dú)立的流程,貫穿產(chǎn)品整個生命周期,與其他流程并發(fā)地進(jìn)行。,2.3 軟件測試模型 V模型——非常明確地標(biāo)注了測試過程中存,2.3.1 V模型,V,模型是最具有代表意義的測試模型。,V,模型是軟件開發(fā)瀑布模型的變種,它反映了測試活動與分析和設(shè)計的關(guān)系,,2.3.1 V模型V模型是最具有代表意義的測試模型。V
22、模型,2.3.2,W,模型,W,模型由,Evolutif,公司提出,相對于,V,模型,,W,模型更科學(xué)。,W,模型是,V,模型的發(fā)展,強(qiáng)調(diào)的是測試伴隨著整個軟件開發(fā)周期,而且測試的對象不僅僅是程序,需求、功能和設(shè)計同樣要測試。測試與開發(fā)是同步進(jìn)行的,從而有利于盡早地發(fā)現(xiàn)問題。,,,2.3.2 W模型W模型由Evolutif公司提出,相對于V,2.3.3 X模型,X,模型也是對,V,模型的改進(jìn),,X,模型提出針對單獨(dú)的程序片段進(jìn)行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最終合成為可執(zhí)行的程序,,2.3.3 X模型X模型也是對V模型的改進(jìn),X模型提出針對單,2.3.4 H模型,H,模型中
23、,軟件測試過程活動完全獨(dú)立,貫穿于整個產(chǎn)品的周期,與其他流程并發(fā)地進(jìn)行,某個測試點(diǎn)準(zhǔn)備就緒時,就可以從測試準(zhǔn)備階段進(jìn)行到測試執(zhí)行階段。軟件測試可以盡早的進(jìn)行,并且可以根據(jù)被測物的不同而分層次進(jìn)行,2.3.4 H模型H模型中,軟件測試過程活動完全獨(dú)立,貫穿于,本章小結(jié),本章從軟件工程的角度介紹了軟件生命周期及主要的軟件過程模型,講解了軟件測試的階段劃分,明確了軟件測試各階段的主要任務(wù),介紹了四種主要的軟件測試模型,即,V,模型、,W,模型、,X,模型及,H,模型。,本章小結(jié) 本章從軟件工程的角度介紹了軟件生命周期及主要的軟件,實訓(xùn)習(xí)題,練習(xí),1,.軟件生命周期?,練習(xí),2,.什么是軟件過程模型,
24、怎樣合理地選擇軟件過程模型?,練習(xí),3,.軟件測試通??梢詣澐譃槟膸讉€階段,各個階段的主要任務(wù)是什么?,練習(xí),4,.典型的軟件測試模型有哪些?,練習(xí),5,.軟件測試模型與軟件過程模型有什么聯(lián)系?,練習(xí),6,.怎樣合理地選擇軟件測試模型?,實訓(xùn)習(xí)題 練習(xí)1.軟件生命周期?,第,3,章 軟件測試過程與管理,第3章 軟件測試過程與管理,第,3,章 軟件測試過程與管理,,3.1,軟件測試過程,3.2,軟件測試團(tuán)隊管理,3.3,軟件測試文檔管理,第3章 軟件測試過程與管理 3.1 軟件測試過程,教學(xué)要求,掌握:軟件測試過程的具體步驟,,理解:測試計劃、測試設(shè)計和測試執(zhí)行的工作要點(diǎn),,了解:軟件測試團(tuán)隊管
25、理和文檔管理,教學(xué)要求掌握:軟件測試過程的具體步驟,3.1,軟件測試過程,為了保證軟件的質(zhì)量,軟件測試過程應(yīng)該從軟件項目的確立就開始進(jìn)行,并且貫穿于整個的軟件開發(fā)生命周期。對軟件測試過程的有效管理能更好的保證軟件的質(zhì)量。一般來說軟件測試過程包括測試需求分析、測試計劃、測試設(shè)計、測試執(zhí)行和測試總結(jié)等幾個步驟。,3.1 軟件測試過程 為了保證軟件的質(zhì)量,軟件測試過程應(yīng)該從,3.1.1,測試需求分析,在制訂測試計劃之前,需要先進(jìn)行測試需求分析。測試需求分析是軟件測試過程中的一個重要環(huán)節(jié),測一款軟件首先要知道軟件的應(yīng)用領(lǐng)域、能實現(xiàn)哪些功能,用戶對該軟件的性能需求是怎樣的,軟件需要運(yùn)行在什么軟硬件環(huán)境中
26、,進(jìn)行測試需要準(zhǔn)備哪些資源等。,,3.1.1 測試需求分析 在制訂測試計劃之前,需要先進(jìn)行測試,3.1.2,測試計劃,測試計劃一般包括以下一些內(nèi)容:,項目背景,系統(tǒng)視圖,測試的策略,測試資源配置,時間進(jìn)度安排,缺陷跟蹤報告規(guī)定,測試團(tuán)隊和文檔管理,測試計劃的評審,,3.1.2 測試計劃 測試計劃一般包括以下一些內(nèi)容:,3.1.3 測試設(shè)計,當(dāng)測試計劃制定好了以后,就可以進(jìn)行測試設(shè)計了,有時候是測試計劃中的測試范圍和策略確定以后就開始進(jìn)行測試設(shè)計,將測試計劃和測試設(shè)計并行,從而加快項目進(jìn)度。軟件測試設(shè)計是測試過程中的重要活動,測試設(shè)計是否合理直接影響測試過程后續(xù)活動的效率和有效性,從而影響軟件產(chǎn)
27、品的最終質(zhì)量。,3.1.3 測試設(shè)計當(dāng)測試計劃制定好了以后,就可以進(jìn)行測試設(shè),3.1.4 測試執(zhí)行,測試過程中最基礎(chǔ)的工作就是測試執(zhí)行。當(dāng)一個新人剛進(jìn)入軟件測試這個行業(yè)時,最開始做的就是按照別人設(shè)計好的測試用例進(jìn)行測試執(zhí)行。,測試執(zhí)行通常采用自動化工具測試和人工測試相結(jié)合的方式進(jìn)行。,3.1.4 測試執(zhí)行測試過程中最基礎(chǔ)的工作就是測試執(zhí)行。當(dāng)一,3.1.5 測試總結(jié),測試執(zhí)行完成后,需要進(jìn)行測試總結(jié),進(jìn)行測試總結(jié)的內(nèi)容包括以下幾點(diǎn):,通過對測試結(jié)果的分析,得到對軟件質(zhì)量的評價,分析測試的過程,產(chǎn)品,資源和信息,為以后制定測試計劃提供參考,評估測試測試執(zhí)行和測試計劃是否符合,分析系統(tǒng)存在的缺陷,
28、為修復(fù)和預(yù)防缺陷提供建議,3.1.5 測試總結(jié) 測試執(zhí)行完成后,需要進(jìn)行測試總結(jié),,3.2 軟件測試團(tuán)隊管理,軟件測試團(tuán)隊在軟件項目中處于重要的地位,肩負(fù)著保證軟件質(zhì)量的任務(wù),總的說來軟件測試團(tuán)隊有以下職責(zé):,在項目的前景、需求文檔確定前對文檔進(jìn)行測試,從用戶體驗和測試的角度提出自己的看法。,編寫合理的測試計劃,并與項目整體計劃有機(jī)地整合在一起。,編寫覆蓋率高的測試用例。,針對測試需求進(jìn)行相關(guān)測試技術(shù)的研究。,認(rèn)真仔細(xì)地實施測試工作,并提交測試報告供項目組參考。,,,3.2 軟件測試團(tuán)隊管理 軟件測試團(tuán)隊在軟件項目中處,3.2 軟件測試團(tuán)隊管理,要提高軟件測試的效率,保證軟件產(chǎn)品的
29、質(zhì)量,軟件測試團(tuán)隊的建設(shè)和管理是非常重要的一個環(huán)節(jié),應(yīng)從以下幾個方面進(jìn)行考慮:,團(tuán)隊的規(guī)模,團(tuán)隊成員的角色職責(zé),團(tuán)隊成員的類型,團(tuán)隊的穩(wěn)定性,工作記錄機(jī)制,管理制度,3.2 軟件測試團(tuán)隊管理 要提高軟件測試的效率,,3.3,軟件測試文檔管理,在軟件測試過程中需要編制一系列的文檔,從項目啟動前的測試計劃文檔到項目結(jié)束時的測試總結(jié)報告,其中還有測試方案,測試用例文檔和測試規(guī)程文檔等。這些文檔在測試過程中起著重要的作用,能很好的反映測試的計劃、設(shè)計、執(zhí)行和完成情況,體現(xiàn)項目負(fù)責(zé)人的管理水平、測試設(shè)計員的用例設(shè)計水平以及測試員的執(zhí)行力,可以作為員工考核的重要依據(jù)。因此,進(jìn)行有效的測試文檔的
30、管理和規(guī)范是非常有必要的。,3.3 軟件測試文檔管理 在軟件測試過程中需要編制一系列的文,3.3,軟件測試文檔管理,軟件測試文檔按照功能和目的大致可以分為如下幾類:,測試計劃文檔,測試方案文檔,測試用例文檔,測試規(guī)程文檔,測試報告文檔,其他測試文檔,3.3 軟件測試文檔管理 軟件測試文檔按照功能和目的大,本章小結(jié),有效的軟件測試過程的實施和管理是軟件質(zhì)量的重要保證,軟件過程包括測試需求分析、測試計劃、測試設(shè)計、測試執(zhí)行和測試總結(jié)等步驟。測試需求分析的關(guān)鍵在于確定測試的范圍;測試計劃的關(guān)鍵在于進(jìn)度的安排和任務(wù)分配;測試設(shè)計的關(guān)鍵在于測試方法和策略的靈活應(yīng)用;測試執(zhí)行的關(guān)鍵在于執(zhí)行的效率和缺
31、陷識別;測試總結(jié)的關(guān)鍵在于測試過程的評估和缺陷分析。,本章小結(jié) 有效的軟件測試過程的實施和管理是軟件質(zhì)量的重要,實訓(xùn)習(xí)題,練習(xí),1,.軟件測試過程分為哪幾個主要的步驟?,練習(xí),2,.軟件測試計劃主要包括哪些內(nèi)容?,練習(xí),3,.缺陷狀態(tài)有哪些?如何進(jìn)行缺陷狀態(tài)分布分析?,實訓(xùn)習(xí)題練習(xí)1.軟件測試過程分為哪幾個主要的步驟?,第4章 黑盒測試,第4章 黑盒測試,第4章 黑盒測試,4.1,黑盒測試方法,4.2,黑盒測試工具,第4章 黑盒測試4.1 黑盒測試方法,教學(xué)要求:,理解:黑盒測試概念,掌握:等價類劃分、邊界值分析和因果圖等方法、黑盒測試工具,QTP,的使用,教學(xué)要求:理解:黑盒測試概念,4
32、.1,黑盒測試方法,黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。,黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。,4.1 黑盒測試方法 黑盒測試也稱功能測試,它是通過測試來檢,4.1 黑盒測試方法 (續(xù)),黑盒測試主要試圖發(fā)現(xiàn)下列幾類錯誤:,是否有不正確或遺漏了的功能,在接口上,能否正確地接受輸入數(shù)據(jù),能否產(chǎn)生正確地輸出信息,訪問外部信息是否有錯;,性能上是否滿足要求;,界面是否錯誤,是否不美觀;,初始化或終止錯誤。,4.1 黑盒測試方法 (續(xù))黑盒測試主要試圖發(fā)現(xiàn)下列幾類錯誤,4.1 黑盒測試方法 (續(xù)),黑盒測試的優(yōu)點(diǎn)有:,1,)
33、比較簡單,不需要了解程序內(nèi)部的代碼及實現(xiàn);,2,)與軟件的內(nèi)部實現(xiàn)無關(guān);,3,)從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題;,4,)基于軟件開發(fā)文檔,所以也能知道軟件實現(xiàn)了文檔中的哪些功能;,5,)在做軟件自動化測試時較為方便。,,4.1 黑盒測試方法 (續(xù))黑盒測試的優(yōu)點(diǎn)有:,4.1 黑盒測試方法 (續(xù)),黑盒測試的缺點(diǎn)有:,1,)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的,30%,;,2,)自動化測試的復(fù)用性較低。,,4.1 黑盒測試方法 (續(xù))黑盒測試的缺點(diǎn)有:,4.1 黑盒測試方法 (續(xù)),具體的黑盒測試用例設(shè)計方法包括等價類劃分法、邊界值分析法、錯
34、誤推測法、因果圖法、判定表驅(qū)動法、正交試驗設(shè)計法、功能圖法等。,4.1 黑盒測試方法 (續(xù))具體的黑盒測試用例設(shè)計方法包括等,4.1.1,等價類劃分法,等價類劃分的辦法是把程序的輸入域劃分成若干部分,然后從每個部分中選取少數(shù)代表性數(shù)據(jù)作為測試用例。,每一類的代表性數(shù)據(jù)在測試中的作用等價于這一類中的其他值,也就是說,如果某一類中的一個例子發(fā)現(xiàn)了錯誤,這一等價類中的其他例子也能發(fā)現(xiàn)同樣的錯誤;反之,如果某一類中的一個例子沒有發(fā)現(xiàn)錯誤,則這一類中的其他例子也不會查出錯誤。,使用這一方法設(shè)計測試用例,首先必須在分析需求規(guī)格說明的基礎(chǔ)上劃分等價類,列出等價類表,,4.1.1 等價類劃分法 等價類劃分的
35、辦法是把程序的輸入域,4.1.1 等價類劃分法 (續(xù)),1,.劃分等價類和列出等價類表,等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。,等價類劃分:有效等價類和無效等價類。,有效等價類:指對于程序的規(guī)格說明來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。,無效等價類:與有效等價類的定義恰巧相反。,4.1.1 等價類劃分法 (續(xù))1.劃分等價類和列出等價類表,4.1.1 等價類劃分法 (續(xù)),確定等價類的原則,:,在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,可以確立一個有效等價類和兩個無效等價類。,在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況
36、下,可以確立一個有效等價類和一個無效等價類。,在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。,在規(guī)定了輸入數(shù)據(jù)的一組值(假定,n,個),并且程序要對每一個輸入值分別處理的情況下,可確立,n,個有效等價類和一個無效等價類。,在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。,在確知已劃分的等價類中,各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價類進(jìn)一步地劃分為更小的等價類。,4.1.1 等價類劃分法 (續(xù))確定等價類的原則:,4.1.1 等價類劃分法 (續(xù)),2,.確定測試用例,,為每個等價類規(guī)定一個惟
37、一的編號。,設(shè)計一個新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類。重復(fù)這一步,最后使得所有有效等價類均被測試用例所覆蓋。,,4.1.1 等價類劃分法 (續(xù))2.確定測試用例,4.1.1 等價類劃分法 (續(xù)),例,2-1,某程序規(guī)定:,“,輸入三個整數(shù),a,、,b,、,c,分別作為三邊的邊長構(gòu)成三角形。通過程序判定所構(gòu)成的三角形的類型,當(dāng)此三角形為一般三角形、等腰三角形及等邊三角形時,分別作計算,…,”,。用等價類劃分方法為該程序進(jìn)行測試用例設(shè)計。,4.1.1 等價類劃分法 (續(xù))例2-1某程序規(guī)定:“輸入三,4.1.1 等價類劃分法 (續(xù)),分析:,(,1,)整數(shù)??? (,2,)三個
38、數(shù)??? (,3,)非零數(shù)?? (,4,)正數(shù),(,5,)兩邊之和大于第三邊???? (,6,)等腰???? (,7,)等邊,如果,a,、,b,、,c,滿足條件(,1,),~,(,4,),則輸出下列四種情況之一:,如果不滿足條件(,5,),則程序輸出為,",非三角形,",。,如果三條邊相等即滿足條件(,7,),則程序輸出為,",等邊三角形,",。,如果只有兩條邊相等、即滿足條件(,6,),則程序輸出為,",等腰三角形,",。,如果三條邊都不相等,則程序輸出為,",一般三角形,",。,,4.1.1 等價類劃分法 (續(xù))分析:,4.1.1 等價類劃分法 (續(xù)),例,2-3,城市的電話號碼由兩部分組
39、成。這兩部分的名稱和內(nèi)容分別是:,地區(qū)碼:以,0,開頭的三位或者四位數(shù)字(包括,0,);,電話號碼:以非,0,、非,1,開頭的七位或者八位數(shù)字。,4.1.1 等價類劃分法 (續(xù))例2-3 城市的電話號碼由,4.1.1 等價類劃分法 (續(xù)),劃分等價類,,輸入數(shù)據(jù),有效等價類,無效等價類,地區(qū)碼,以,0,開頭的,3,位數(shù)串,以,0,開頭的,4,位數(shù)串,以,0,開頭的含有非數(shù)字字符的串,以,0,開頭的小于,3,位的數(shù)串,以,0,開頭的大于,4,位的數(shù)串,以非,0,開頭的數(shù)串,電話號碼,以非,0,、非,1,開頭的,7,位數(shù)串,以非,0,、非,1,開頭的,8,位數(shù)串,以,0,開頭的數(shù)串,以,1,開頭
40、的數(shù)串,以非,0,、非,1,開頭的含有非法字符,7,或者,8,位數(shù)串,以非,0,、非,1,開頭的小于,7,位數(shù)串,以非,0,、非,1,開頭的大于,8,位數(shù)串,4.1.1 等價類劃分法 (續(xù))劃分等價類 輸入數(shù)據(jù)有效等價,4.1.1 等價類劃分法 (續(xù)),例,2-4,保險公司計算保費(fèi)費(fèi)率的程序,某保險公司的人壽保險的保費(fèi)計算方式為:投保額,×,保險費(fèi)率,其中,保險費(fèi)率依點(diǎn)數(shù)不同而有別,,10,點(diǎn)及,10,點(diǎn)以上保險費(fèi)率為,0.6%,,,10,點(diǎn)以下保險費(fèi)率為,0.1%,;而點(diǎn)數(shù)又是由 投保人的年齡、性別、婚姻狀況和撫養(yǎng)人數(shù)來決定,具體規(guī)則如下所示:,,,年齡,,性別,婚姻,撫養(yǎng)人數(shù),,20~39
41、,40~59,其它,,,M,,F,已婚,,未婚,,,1,人扣,0.5,點(diǎn),,最多扣,3,點(diǎn),(四舍五入取整),,,6,點(diǎn),,,4,點(diǎn),,,2,點(diǎn),,5,點(diǎn),,3,點(diǎn),,,3,點(diǎn),,5,點(diǎn),4.1.1 等價類劃分法 (續(xù))例2-4 保險公司計算保費(fèi),4.1.1 等價類劃分法 (續(xù)),分析:,年齡:一位或兩位非零整數(shù),值的有效范圍為,1~99,性別:一位英文字符,只能取值‘,M’,或’,F’,婚姻:字符,只能取值‘已婚’或‘未婚’,撫養(yǎng)人數(shù):空白或一位非零整數(shù)(,1~9,),點(diǎn)數(shù) :一位或兩位非零整數(shù),值的范圍為,1~99,,4.1.1 等價類劃分法 (續(xù))分析:,4.1.2,邊界值分析法,
42、邊界點(diǎn): 邊界點(diǎn)分為上點(diǎn)、內(nèi)點(diǎn)和離點(diǎn),,閉區(qū)間,半開半閉區(qū)間,開區(qū)間,離點(diǎn),離點(diǎn),離點(diǎn),離點(diǎn),離點(diǎn),離點(diǎn),上點(diǎn),上點(diǎn),上點(diǎn),上點(diǎn),上點(diǎn),上點(diǎn),內(nèi)點(diǎn),內(nèi)點(diǎn),內(nèi)點(diǎn),4.1.2 邊界值分析法 邊界點(diǎn): 邊界點(diǎn)分為上點(diǎn)、內(nèi)點(diǎn)和,4.1.2 邊界值分析法 (續(xù)),邊界值分析方法的原則:,如果輸入(輸出)條件規(guī)定了取值范圍,則應(yīng)該以該范圍的邊界值及邊界附近的值作為測試數(shù)據(jù);,如果輸入(輸出)條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少一,比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù);,如果程序規(guī)格說明書中提到的輸入或輸出是一個有序的集合,應(yīng)該注意選取有序集合的第一個和最后一個元素作為測試數(shù)據(jù);,4.1.2
43、 邊界值分析法 (續(xù))邊界值分析方法的原則:,4.1.2 邊界值分析法 (續(xù)),1,.邊界條件,就是特殊情況,因為編程從根本上說不懷疑邊界有問題。,,,4.1.2 邊界值分析法 (續(xù))1.邊界條件,4.1.2 邊界值分析法 (續(xù)),2,.次邊界條件,在軟件內(nèi)部,最終用戶幾乎看不到,但是軟件測試仍有必要檢查。,,4.1.2 邊界值分析法 (續(xù))2.次邊界條件,4.1.2 邊界值分析法 (續(xù)),3,.邊界值的選擇方法,邊界值分析是一種補(bǔ)充等價劃分的測試用例設(shè)計技術(shù),它不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例。,4.1.2 邊界值分析法 (續(xù))3.邊界值的選擇方法,4.1.2 邊界值分
44、析法 (續(xù)),例,2-6,:測試計算平方根的函數(shù),輸入:實數(shù),輸出:實數(shù),規(guī)格說明:當(dāng)輸入一個,0,或比,0,大的數(shù)的時候,返回其正平方根;當(dāng)輸入一個小于,0,的數(shù)時,顯示錯誤信息,",平方根非法,-,輸入值小于,0",并返回,0,;庫函數(shù),Print-Line,可以用來輸出錯誤信息。,4.1.2 邊界值分析法 (續(xù)) 例2-6:測試計算平方根的,4.1.2 邊界值分析法 (續(xù)),1),等價類劃分:,I.,可以考慮作出如下劃分:,,a,、輸入,(i)<0,和,(ii)>=0,b,、輸出,(a)>=0,和,(b) Error,II.,測試用例有兩個:,a,、輸入,4,,輸出,2,。對應(yīng)于,(ii
45、),和,(a),。,b,、輸入,-10,,輸出,0,和錯誤提示。對應(yīng)于,(i),和,(b),。,2),邊界值分析:,劃分,(ii),的邊界為,0,和最大正實數(shù);劃分,(i),的邊界為最小負(fù)實數(shù)和,0,。,a,、輸入,{,最小負(fù)實數(shù),},b,、輸入,{,絕對值很小的負(fù)數(shù),},c,、輸入,0,d,、輸入,{,絕對值很小的正數(shù),},e,、輸入,{,最大正實數(shù),},4.1.2 邊界值分析法 (續(xù))1)等價類劃分:,4.1.2 邊界值分析法 (續(xù)),例,2-6,現(xiàn)有一個學(xué)生標(biāo)準(zhǔn)化考試批閱試卷,,,產(chǎn)生成績報告的程序。其規(guī)格說明如下,:,程序的輸入文件由一些有,80,個字符的記錄組成,,,4.1.2 邊界
46、值分析法 (續(xù))例 2-6現(xiàn)有一個學(xué)生標(biāo)準(zhǔn)化,4.1.3,因果圖法,因果圖法是從用自然語言書寫的程序規(guī)格說明的描述中找出因(輸入條件)和果(輸出或程序狀態(tài)的改變),通過因果圖轉(zhuǎn)換為判定表。,因果圖方法最終生成的就是判定表,它適合于檢查程序輸入條件的各種組合情況。,,4.1.3 因果圖法 因果圖法是從用自然語言書寫的程序規(guī)格,4.1.3 因果圖法 (續(xù)),因果圖設(shè)計步驟如下:,分析程序規(guī)格說明的描述中,哪些是原因,哪些是結(jié)果。并給每個原因和結(jié)果賦予一個標(biāo)識符。,分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,,,原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系,,,畫出因果圖。,由于語法或環(huán)境限制,,
47、,有些原因與原因之間,,,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況,,,在因果圖上用一些記號表明約束或限制條件。,把因果圖轉(zhuǎn)換成判定表。,把判定表的每一列拿出來作為依據(jù),,,設(shè)計測試用例。,,4.1.3 因果圖法 (續(xù))因果圖設(shè)計步驟如下:,4.1.3 因果圖法 (續(xù)),判定表(,Decision Table,)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況下的工具。,利用判定表能夠設(shè)計出完整的測試用例集合。在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實施依賴于多個邏輯條件的組合。,4.1.3 因果圖法 (續(xù))判定表(Decision Tab,4.1.3 因果圖法 (續(xù)),判定表組成,,,4.
48、1.3 因果圖法 (續(xù))判定表組成,4.1.3 因果圖法 (續(xù)),例,2-9,訂購單的檢查。如果金額超過,500,元,又未過期,則發(fā)出批準(zhǔn)單和提貨單;如果金額超過,500,元,但過期了,則不發(fā)批準(zhǔn)單;如果金額低于,500,元,則不論是否過期都發(fā)出批準(zhǔn)單和提貨單,在過期的情況下還需要發(fā)出通知單。,將這段需求進(jìn)行判定表分析,可以得到如下判定表,,金額,>500,>500,<=500,<=500,狀態(tài),未過期,已過期,未過期,已過期,發(fā)出批準(zhǔn)單,O,,O,O,發(fā)出提貨單,O,,O,O,發(fā)出通知單,,,,O,4.1.3 因果圖法 (續(xù))例2-9 訂購單的檢查。如果金額,4.1.3 因果圖法 (續(xù)),例
49、,2-10,有一個處理單價為,1,元,5,角錢的盒裝飲料的自動售貨機(jī)軟件。若投入,1,元,5,角硬幣,按下,“,可樂,”,、,“,雪碧,”,或,“,紅茶,”,按鈕,相應(yīng)的飲料就送出來。若投入的是兩元硬幣,在送出飲料的同時退還,5,角硬幣。,原因:,投入,1,元,5,角硬幣;,投入,2,元硬幣;,按,“,可樂,”,按鈕;,按,“,雪碧,”,按鈕;,按,“,紅茶,”,按鈕。,中間狀態(tài):,已投幣;,已按鈕。,結(jié)果:,退還,5,角硬幣;,送出“可樂”飲料;,送出“雪碧”飲料;,送出“紅茶”飲料。,4.1.3 因果圖法 (續(xù))例2-10 有一個處理單價為1元,4.1.3 因果圖法 (續(xù)),根據(jù)原因和結(jié)果
50、,設(shè)計這樣一個因果圖,,4.1.3 因果圖法 (續(xù))根據(jù)原因和結(jié)果,設(shè)計這樣一個因果,4.2,黑盒測試工具,常用的黑盒測試工具包括:,功能測試工具。用于檢測程序能否達(dá)到預(yù)期的功能呢要求并正常運(yùn)行。,性能測試工具。用于確定軟件和系統(tǒng)的性能。,,4.2 黑盒測試工具 常用的黑盒測試工具包括:,4.2.1,黑盒測試工具介紹,WinRunner,Mercury Interactive,公司的,WinRunner,是一種企業(yè)級的功能測試工具,用于檢測應(yīng)用程序,4.2.1 黑盒測試工具介紹 WinRunner,4.2.1,黑盒測試工具介紹 (續(xù)),QTP是quicktest Professional的
51、簡稱,是一種自動測試工具。,QTP是一個功能測試工具,主要幫助測試人員完成軟件的功能測試,與其他測試工具一樣,QTP不能完全取代測試人員的手工操作,但是在某個功能點(diǎn)上,使用QTP的確能夠幫助測試人員做很多工作。,4.2.1 黑盒測試工具介紹 (續(xù)) QTP是quickte,4.2.2,使用,QTP,進(jìn)行黑盒測試,QuickTest,工作流程,錄制測試腳本前的準(zhǔn)備,錄制測試腳本,加強(qiáng)測試腳本,4.2.2 使用QTP進(jìn)行黑盒測試 QuickTest工作,4.2.2 使用QTP進(jìn)行黑盒測試(續(xù)),測試腳本,當(dāng)瀏覽網(wǎng)站或使用應(yīng)用程序時,,QuickTest,會紀(jì)錄你的操作步驟,并產(chǎn)生測試腳本。當(dāng)停
52、止錄制后,會看到,QuickTest,在,Keyword View,中以表格的方式顯示測試腳本的操作步驟。,錄制測試前的準(zhǔn)備,錄制測試腳本,分析錄制的測試腳本,執(zhí)行測試腳本,分析測試結(jié)果,4.2.2 使用QTP進(jìn)行黑盒測試(續(xù))測試腳本,4.2.2 使用QTP進(jìn)行黑盒測試(續(xù)),建立檢查點(diǎn),檢查點(diǎn)是將指定屬性的當(dāng)前值與該屬性的期望值進(jìn)行比較的驗證點(diǎn)。,檢查點(diǎn)的種類,對象檢查,網(wǎng)頁檢查,文字檢查,表格檢查,執(zhí)行并分析使用檢查點(diǎn)的測試腳本,,4.2.2 使用QTP進(jìn)行黑盒測試(續(xù))建立檢查點(diǎn),4.2.2 使用QTP進(jìn)行黑盒測試(續(xù)),參數(shù)化測試腳本,參數(shù)化測試腳本包括數(shù)據(jù)輸入的參數(shù)化和檢測
53、點(diǎn)的參數(shù)化,定義參數(shù),修正受到參數(shù)化影響的步驟,執(zhí)行并分析使用參數(shù)的測試腳本,,4.2.2 使用QTP進(jìn)行黑盒測試(續(xù))參數(shù)化測試腳本,4.2.2 使用QTP進(jìn)行黑盒測試(續(xù)),輸出值的測試,創(chuàng)建輸出值,執(zhí)行并分析使用輸出值的測試腳本,,4.2.2 使用QTP進(jìn)行黑盒測試(續(xù))輸出值的測試,實訓(xùn)習(xí)題,現(xiàn)有一個小程序,能夠求出三個在,-10000,到,+10000,間整數(shù)中的最大者,有一個文本框要輸入我們國家的身份證號,請設(shè)計相應(yīng)的測試用例。,現(xiàn)在要測試一個程序,在文本框中輸入一個日期,能夠顯示出這個日期的下一天的日期。例如,在文本框中輸入,2006-5-1,,能夠顯示出,2006-5-2
54、,。請寫出該程序的設(shè)計用例。,實訓(xùn)習(xí)題 現(xiàn)有一個小程序,能夠求出三個在-10000到+10,實訓(xùn)習(xí)題,4.,下面是醫(yī)院管理系統(tǒng)中的入院管理模塊的需求說明,請根據(jù)需求說明寫出測試用例。,1,)病人基本資料表錄入、修改、刪除、復(fù)制,2,)病人基本資料查詢。,3,)病人預(yù)交款資料查詢。,,實訓(xùn)習(xí)題4.下面是醫(yī)院管理系統(tǒng)中的入院管理模塊的需求說明,請,實訓(xùn)習(xí)題,5.,實現(xiàn),QTP,運(yùn)行時從,EXCEL,文件中循環(huán)讀取手機(jī)號碼,自動生成唯一的隨機(jī)密碼(需要查詢數(shù)據(jù)庫),若生成密碼在數(shù)據(jù)庫中不唯一則重新生成,直到密碼唯一后方可執(zhí)行下一步操作。設(shè)置檢查點(diǎn),檢查充值是否成功,若不成功則需要重新充值,直到充值成
55、功為止;為滿足業(yè)務(wù)要求不使用,QTP,自帶的檢查點(diǎn)功能;為了使腳本能在不同機(jī)器上正常運(yùn)行,不使用,QTP,對象庫中生成的對象而使用手工編寫對象識別。,實訓(xùn)習(xí)題5. 實現(xiàn)QTP運(yùn)行時從EXCEL文件中循環(huán)讀取手機(jī),第5章 白盒測試,第5章 白盒測試,第5章 白盒測試,5.1 白盒測試方法,5.2 白盒測試工具,第5章 白盒測試5.1 白盒測試方法,5.1,白盒測試方法,,一般來說,測試任何產(chǎn)品有兩種方法:第一種測試方法就是我們第二章提到的黑盒測試,第二種測試方法為白盒測試又稱為結(jié)構(gòu)測試。,,5.1 白盒測試方法一般來說,測試任何產(chǎn)品有兩種方法:第一,5.1.1 代碼檢查,代碼檢查即靜態(tài)白盒測試
56、,在不執(zhí)行程序的條件下仔細(xì)審查代碼(可采用互查、走查等形式),從而找出軟件故障的過程。,正式審查過程中有,4,個關(guān)鍵要素:,1,、確定問題。,2,、遵守準(zhǔn)則。,3,、提前準(zhǔn)備。,4,、編寫審查報告。,5.1.1 代碼檢查代碼檢查即靜態(tài)白盒測試,在不執(zhí)行程序的條,5.1.1代碼檢查,代碼檢查應(yīng)注意的哪些可能存在的軟件缺陷呢?首先必須對代碼的規(guī)范性進(jìn)行審查,另外還要考慮以下幾種類別的錯誤。,1,、數(shù)據(jù)的引用錯誤。,2,、數(shù)據(jù)類型錯誤。,3,、數(shù)據(jù)聲明錯誤。,4,、計算錯誤。,5,、邏輯運(yùn)算錯誤。,6,、控制流程錯誤。,7,、子程序參數(shù)錯誤。,,8,、輸入,/,輸出錯誤。,9,、其他錯誤。,5.1.
57、1代碼檢查代碼檢查應(yīng)注意的哪些可能存在的軟件缺陷呢?,5.1.2覆蓋測試,覆蓋測試以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)設(shè)計測試用例,要求對被測程序的邏輯結(jié)構(gòu)有清楚的了解。根據(jù)覆蓋測試的目標(biāo)不同,可分為:語句覆蓋、判定覆蓋、條件覆蓋、判定,-,條件覆蓋、組合覆蓋及路徑覆蓋。下面以一個小程序為例。,Begin,if(x>0)and(y<0) then z=z-(x+y);,if(x>2)or(z>0) then z=z+5;,其中,and,、,or,是邏輯運(yùn)算符,,3,個輸入?yún)?shù)是,x,y,z,。其對應(yīng)的程序流程圖如圖,3-1,所示(,a,、,b,、,c,、,d,、,e,為控制流上的若干程序點(diǎn))。,
58、5.1.2覆蓋測試覆蓋測試以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)設(shè)計測試,5.1.2覆蓋測試,1,、語句覆蓋,所謂語句覆蓋是指設(shè)計若干個測試用例,使程序中的每個可執(zhí)行語句至少被執(zhí)行一次。,語句覆蓋在測試程序時,對檢查不可執(zhí)行語句方面起到一定作用,但被測程序并不是語句間無序的堆積,語句之間存在著各種各樣的內(nèi)部聯(lián)系。所以,語句覆蓋并不能排除被測試程序中存在故障的風(fēng)險。,,5.1.2覆蓋測試1、語句覆蓋,5.1.2覆蓋測試,2,、判定覆蓋,所謂判定覆蓋是指設(shè)計若干個測試用例,使得程序中的每個判定至少得到一次真值和假值,即判斷中的真假分支至少均執(zhí)行一次。判定覆蓋又稱為分支覆蓋。,5.1.2覆蓋測試2、判定覆蓋,5
59、.1.2覆蓋測試,3,、條件覆蓋,所謂條件覆蓋是指設(shè)計若干個測試用例,使得程序中每個判斷中每個條件的可能值至少得到一次。因此,條件覆蓋與判定覆蓋相比增加了對符合判定情況的測試以及測試路徑。,4,、判定,/,條件覆蓋,所謂判定,/,條件覆蓋是指設(shè)計若干個測試用例,使得判斷中每個條件的所有(真或假)取值至少出現(xiàn)一次,并且每個判斷的所有(真或假)判斷結(jié)果也至少出現(xiàn)一次。,,5.1.2覆蓋測試3、條件覆蓋,5.1.2覆蓋測試,5,、組合覆蓋,所謂組合覆蓋是指設(shè)計若干個測試用例,使得每個判定條件的各種情況至少出現(xiàn)一次。,6,、路徑覆蓋,所謂路徑覆蓋是指設(shè)計若干個測試用例覆蓋程序中所有的路徑。,,5.1.
60、2覆蓋測試5、組合覆蓋,5.1.3路徑測試,路徑測試就是從一個程序的入口開始,執(zhí)行所經(jīng)歷的各個語句的完整過程。,路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法路徑測試方法。,(1)畫出程序的控制流圖。,5.1.3路徑測試路徑測試就是從一個程序的入口開始,執(zhí)行所經(jīng),5.1.3路徑測試,(2)程序環(huán)形復(fù)雜度:McCabe復(fù)雜性度量。,(3)導(dǎo)出基本路徑集,確定程序的獨(dú)立路徑。,(4)根據(jù)(3)中的獨(dú)立路徑,設(shè)計測試用例的輸入數(shù)據(jù)和預(yù)期輸出,確?;韭窂郊械拿恳粭l路徑的執(zhí)行。,,5.1.3路徑測試(2)程序環(huán)形復(fù)雜度:McCabe復(fù)
61、雜性度,5.1.3路徑測試,1、程序路徑表達(dá),采用弧序列或者節(jié)點(diǎn)序列的方式并引入了兩個運(yùn)算:加和乘。,(1)弧a和弧b相加,表示為a+b,它表明兩條弧是“或”的關(guān)系,是并行的路段。,(2)弧a和弧b相乘,表示為ab,它表明路徑是先經(jīng)歷弧a,接著再經(jīng)歷弧b,弧a和弧b是先后相接的。,5.1.3路徑測試1、程序路徑表達(dá),5.1.3路徑測試,路徑表達(dá)式運(yùn)算滿足一下規(guī)律。,加法交換律:,a+b=b+a,加法結(jié)合律:,a+(b+c)=(a+b)+c,加法冪運(yùn)算:,a+a=a,乘法結(jié)合律:,a(bc)=(ab)c,分配律:,a(b+c)=ab+ac (a+b)c=ac+bc (a+b)(c+d
62、)=a(c+d)+b(c+d),值得注意的是路徑表達(dá)式中乘法不滿足交換律。,,5.1.3路徑測試路徑表達(dá)式運(yùn)算滿足一下規(guī)律。,5.1.3路徑測試,2、程序的環(huán)路復(fù)雜性,環(huán)路復(fù)雜性V(G)的計算方式有以下三種。,第一種:V(G)=區(qū)域數(shù)目。,第二種:V(G)=E-N+2。其中E表示邊界數(shù)目,N表示節(jié)點(diǎn)數(shù)目。,第三種:V(G)=P+1。其中P表示判斷節(jié)點(diǎn)數(shù)目。,5.1.3路徑測試2、程序的環(huán)路復(fù)雜性,5.1.3路徑測試,3,、,Z,路徑覆蓋,通過對路徑覆蓋的分析中可以知道,對于路徑較少且比較簡單程序而言,實現(xiàn)路徑覆蓋是可能實現(xiàn)的。但是,如果程序中出現(xiàn)多個循環(huán)或者判斷的話,所涉及的路徑數(shù)目也會快速增
63、加,這就可能造成無法實現(xiàn)路徑覆蓋。為了解決這個問題,就必須去除一些次要因素,限制循環(huán)次數(shù),從而減少路徑數(shù)量。這種簡化循環(huán)下的路徑覆蓋稱為,Z,路徑覆蓋。,程序中比較典型的循環(huán)控制結(jié)構(gòu)即為,while,和,do-while,。兩者的區(qū)別在于,while,是先判斷,再執(zhí)行。,do-while,是先執(zhí)行,再判斷。因此,,do-while,至少執(zhí)行一次。,5.1.3路徑測試3、Z路徑覆蓋,5.1.3路徑測試,現(xiàn)在通過一個具體的例子來看如何實現(xiàn)路徑測試。有如下程序段:,void Sort ( int x, int y ),1 {,2 int a=1,b=2;,3 wh
64、ile ( x> 0 ),4 {,5 if (y==0 ),6 a=b-3;,7 else,8 if (y==1 ),9 a=b+5;,10 else,11 a=b*2;,12 },13 },步驟,1,:畫控制流圖。,5.1.3路徑測試現(xiàn)在通過一個具體的例子來看如何實現(xiàn)路徑測試,5.1.3路徑測試,步驟2:計算環(huán)形復(fù)雜度:,該流程圖有4個
65、區(qū)域。,步驟3:導(dǎo)出獨(dú)立路徑(用語句編號表示),路徑1:3→13,路徑2:3→5→6→13,路徑3:3→5→8→9→12→3→13,路徑4:3→5→8→11→12→3→13,步驟4:設(shè)計測試用例,5.1.3路徑測試步驟2:計算環(huán)形復(fù)雜度:,5.2,白盒測試工具(,JUnit,),,軟件測試在軟件投入使用前,對軟件需求分析,設(shè)計規(guī)格說和編碼進(jìn)行最后的審查,這是軟件質(zhì)量保證的關(guān)鍵步驟。,軟件測試在軟件開發(fā)過程中跨越了兩個階段:單元測試和綜合測試。,5.2 白盒測試工具(JUnit)軟件測試在軟件投入使用前,5.2.1 白盒測試工具介紹,,在,JUnit,單元測試框架的設(shè)計時,設(shè)定了三個總體目標(biāo):
66、,第一個是簡化測試的編寫;,第二個是使測試單元保持持久性;,第三個則是可以利用既有的測試來編寫相關(guān)的測試。,5.2.1 白盒測試工具介紹 在JUnit單元測試框架,5.2.1 白盒測試工具介紹,JUnit,安裝與配置,要使用,JUnit,,請先至,JUnit,官方網(wǎng)站,http://www.junit.org/,,點(diǎn)擊“,Download JUnit”,后出現(xiàn),JUnit,下載列表,5.2.1 白盒測試工具介紹JUnit安裝與配置,5.2.1,白盒測試工具介紹,,5.2.1 白盒測試工具介紹,5.2.1 白盒測試工具介紹,5.2.1 白盒測試工具介紹,5.2.1 白盒測試工具介紹,下載后解開壓縮文件,當(dāng)中會含有,junit.jar,文件,將這個檔案復(fù)制到指定的文件夾中,如,c:\junit3.8.1\junit.jar,,然后設(shè)定,CLASSPATH,。,,5.2.1 白盒測試工具介紹下載后解開壓縮文件,當(dāng)中會含有j,5.2.1 白盒測試工具介紹,5.2.1 白盒測試工具介紹,5.2.1 白盒測試工具介紹,如果是Windows 2000/XP,請在[系統(tǒng)內(nèi)容/進(jìn)階/設(shè)定環(huán)境變量]
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質(zhì)量黨建保障國有企業(yè)高質(zhì)量發(fā)展
- 廉政黨課講稿材料:堅決打好反腐敗斗爭攻堅戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風(fēng)清氣正的政治生態(tài)
- 在新錄用選調(diào)生公務(wù)員座談會上和基層單位調(diào)研座談會上的發(fā)言材料
- 總工會關(guān)于2025年維護(hù)勞動領(lǐng)域政治安全的工作匯報材料
- 基層黨建工作交流研討會上的講話發(fā)言材料
- 糧食和物資儲備學(xué)習(xí)教育工作部署會上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機(jī)關(guān)單位、市紀(jì)委監(jiān)委2025年工作計劃
- 檢察院政治部關(guān)于2025年工作計劃
- 辦公室主任2025年現(xiàn)實表現(xiàn)材料
- 2025年~村農(nóng)村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項規(guī)定精神學(xué)習(xí)教育工作部署會議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學(xué)習(xí)教育動員部署會上的講話發(fā)言材料3篇
- 在司法黨組中心學(xué)習(xí)組學(xué)習(xí)會上的發(fā)言材料
- 國企黨委關(guān)于推動基層黨建與生產(chǎn)經(jīng)營深度融合工作情況的報告材料
- 副書記在2025年工作務(wù)虛會上的發(fā)言材料2篇