火龍果軟件軟件質(zhì)量保證與測(cè)試_第1頁(yè)
火龍果軟件軟件質(zhì)量保證與測(cè)試_第2頁(yè)
火龍果軟件軟件質(zhì)量保證與測(cè)試_第3頁(yè)
火龍果軟件軟件質(zhì)量保證與測(cè)試_第4頁(yè)
火龍果軟件軟件質(zhì)量保證與測(cè)試_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件測(cè)試基礎(chǔ)第一章:預(yù)備知識(shí)1.1 人、錯(cuò)誤和測(cè)試錯(cuò)誤(error)錯(cuò)誤是我們?nèi)粘I畹囊徊糠帧?人們?cè)谒麄兊乃伎?、行為中?huì)犯錯(cuò)誤,并將體現(xiàn)在他們行為的結(jié)果中。只要有人參與的行動(dòng)和決策,都有可能會(huì)發(fā)生錯(cuò)誤。人人類(lèi)類(lèi)存在的存在的這這些基本事些基本事實(shí)實(shí),使,使測(cè)測(cè)試試成為非常成為非常重要的活重要的活動(dòng)動(dòng)。 。 錯(cuò)誤的例子領(lǐng)域領(lǐng)域錯(cuò)誤錯(cuò)誤傾聽(tīng)醫(yī)學(xué)音樂(lè)演奏數(shù)據(jù)分析觀察軟件開(kāi)發(fā)演講體育運(yùn)動(dòng)寫(xiě)作講的是:He has a garage for reparing foreign cars聽(tīng)到的是:He has a garage for reparing falling cars不正確地使用抗生素演奏出不正確

2、的音調(diào)采用不正確的算法進(jìn)行矩陣變換操作員沒(méi)有發(fā)現(xiàn)壓力倉(cāng)的安全閥門(mén)一直開(kāi)著錯(cuò)誤操作符:;正確操作符:錯(cuò)誤標(biāo)識(shí)符:new_line;正確標(biāo)識(shí)符:next_line實(shí)際說(shuō)得是:Waple malnut;想說(shuō)的是:Maple walnut實(shí)際說(shuō)得是:We need a new refrigerator;想說(shuō)的是。網(wǎng)球比賽中裁判員不正確的判決實(shí)際寫(xiě)出來(lái)的是:What kind of pans did you are?想寫(xiě)的是:What kind of pants did you are?故障(fault)和失效n故障是一個(gè)或多個(gè)錯(cuò)誤的表現(xiàn)。n程序員犯的錯(cuò)誤,表現(xiàn)為含有故障的代碼。n當(dāng)運(yùn)行一個(gè)含有錯(cuò)誤的代

3、碼時(shí),程序?qū)⒊霈F(xiàn)與預(yù)期的行為不一致的情況。這時(shí),我們稱(chēng)程序失效。錯(cuò)誤, 故障, 失效程序員規(guī)格說(shuō)明源程序思想或行動(dòng)中的錯(cuò)誤故障可觀察的行為觀察到的行為它們是一樣的嗎?預(yù)期的行為測(cè)試數(shù)據(jù)編寫(xiě)代碼產(chǎn)生導(dǎo)致決定了可能導(dǎo)致是的,軟件像預(yù)期的一樣運(yùn)行不,軟件不像預(yù)期的那樣運(yùn)行,出現(xiàn)了一個(gè)失效測(cè)試自動(dòng)化n大型復(fù)雜軟件、嵌入式軟件的測(cè)試是勞動(dòng)密集型工作。對(duì)測(cè)試自動(dòng)化存在巨大的需求。n便于自動(dòng)化測(cè)試的工作:n回歸測(cè)試n圖形用戶(hù)界面測(cè)試nI/O設(shè)備驅(qū)動(dòng)測(cè)試n自動(dòng)化測(cè)試難于通用化n當(dāng)前的一些自動(dòng)化測(cè)試工具nQTPnC+ TesternLoadrunner開(kāi)發(fā)人員vs.測(cè)試人員n開(kāi)發(fā)人員寫(xiě)代碼,測(cè)試人員測(cè)代碼;n兩

4、種人員既有區(qū)別又互相補(bǔ)充;n同一個(gè)人在不同階段可能充當(dāng)不同的角色;n測(cè)試技術(shù)對(duì)兩種人員都有用。1.2 軟件質(zhì)量軟件質(zhì)量靜態(tài)質(zhì)量特性靜態(tài)質(zhì)量特性: 結(jié)構(gòu)化的, 可維護(hù)的, 可測(cè)試的代碼,以及正確性和完整的文檔。動(dòng)態(tài)質(zhì)量特性動(dòng)態(tài)質(zhì)量特性: 軟件可靠性,正確性,完整性,一致性,可用性和效率。軟件質(zhì)量 (續(xù).)可靠性:可靠性:指一個(gè)軟件正確運(yùn)行的概率。正確性:正確性:指一個(gè)軟件的正確操作。通常與一些文檔有關(guān)。軟件質(zhì)量 (續(xù).)完整性完整性指的是所有在需求或用戶(hù)手冊(cè)中列出的特性都能得到,一個(gè)不完整的軟件是沒(méi)有完整實(shí)現(xiàn)所有的需要的特征的軟件。一致性一致性是指遵循一套共同的約定和假設(shè)。例如,在用戶(hù)界面上的所

5、有按鈕可能會(huì)遵循一個(gè)共同的顏色編碼約定。不一致的一個(gè)例子是當(dāng)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用程序顯示一個(gè)人在數(shù)據(jù)庫(kù)中的出生日期。軟件質(zhì)量 (續(xù).)實(shí)用性:實(shí)用性:指的是一個(gè)應(yīng)用程序在使用時(shí)是否容易。這本身就是一個(gè)可用性測(cè)試存在的技術(shù)領(lǐng)域。心理學(xué)在可用性測(cè)試設(shè)計(jì)中起著重要的作用。性能:性能:指的是應(yīng)用程序需要執(zhí)行請(qǐng)求的任務(wù)的時(shí)間。它被認(rèn)為是一個(gè)非功能性要求。它是在諸如指定“這個(gè)任務(wù)必須在一臺(tái)速度為Y,具有ZG字節(jié)內(nèi)存機(jī)器,上以X單位每秒的速度執(zhí)行”軟件可靠性:兩種定義軟件可靠性軟件可靠性 ANSI/IEEE Std 729-1983: 是軟件在給定的時(shí)間間隔和在給定條件下的無(wú)故障操作概率。軟件可靠性:軟件可靠性:

6、是軟件在預(yù)期環(huán)境下無(wú)故障運(yùn)行的可能性。1.3 需求、運(yùn)行結(jié)果和正確性需求、行為、正確性需求1:請(qǐng)寫(xiě)一個(gè) 程序,輸入兩個(gè)整數(shù),并輸出這兩個(gè)整數(shù)中最大的那一個(gè)。需求2:請(qǐng)寫(xiě)一個(gè) 程序,它輸入一個(gè)整數(shù)序列,并輸出該序列的排序的版本。下面兩個(gè)需求將得到不同的兩個(gè)程序: 需求的不完整性假設(shè)開(kāi)發(fā)了程序maxmax,以滿足需求1。最大的預(yù)期的輸出,當(dāng)輸入整數(shù)是13和19可以很容易地確定為19?,F(xiàn)在假設(shè)測(cè)試人員想知道,兩個(gè)整數(shù)在輸入到該程序時(shí),是在同一行中輸入然后加一個(gè)回車(chē),還是在兩行中輸入,每個(gè)整數(shù)后面都要鍵入回車(chē)。而上述要求未能提供這個(gè)問(wèn)題的答案。需求的二義性需求2是有歧義的。目前尚不清楚輸入的序列是按升

7、序還是按降序排列。滿足需求2的排序程序,它的具體行為將依賴(lài)于寫(xiě)排序的程序員。輸入域(輸入空間)所有可能輸入到程序P的集合,被稱(chēng)為P的輸入域輸入域或輸入空間輸入空間。對(duì)于上面提到的需求1,我們發(fā)現(xiàn)max的輸入域是所有的成對(duì)整數(shù)的集合,其中在成對(duì)整數(shù)的每個(gè)元素的范圍是從-32,768到32,767的。對(duì)于需求2,是不可能找到的排序程序的輸入域。輸入域(續(xù))修改需求2: 請(qǐng)寫(xiě)一個(gè)程序,輸入一個(gè)整數(shù)序列,并按升序或降序排列輸出這個(gè)序列中的。輸出序列的順序由一個(gè)需求字符決定,該參數(shù)為“A”輸出一個(gè)遞增序列,為“D”則輸出遞減序列。 同時(shí),在提供到程序中輸入序列,需求字符首先輸入,然后是進(jìn)行排序的整數(shù)序列

8、,序列使用句號(hào)作為結(jié)束符。輸入域(續(xù))基于上述修改后的需求,對(duì)于排序的輸入域是“對(duì)”的集合。每一“對(duì)”的第一個(gè)元素是一個(gè)字符,第二元素是由零個(gè)或多個(gè)整數(shù)構(gòu)成的序列,并以句號(hào)結(jié)束。軟件正確性n如果軟件針對(duì)其輸入域的所有元素都如期望的方式運(yùn)行,那么這個(gè)軟件是正確的。有效/無(wú)效輸入修改后的排序需求提到,要求字符可以是“A”和“D”,但沒(méi)有回答這個(gè)問(wèn)題:“如果用戶(hù)輸入了一個(gè)不同的字符該怎么辦?”當(dāng)使用sort程序時(shí),用戶(hù)絕對(duì)有可能鍵入其他字符而不是“A”和“D”等。sort程序除“A”和“D”外的任何字符都被認(rèn)為是無(wú)效的輸入無(wú)效的輸入。然而對(duì)于排序的需求并沒(méi)有指定遇到一個(gè)無(wú)效的輸入時(shí)應(yīng)該采取什么行動(dòng)。

9、1.4 正確性與可靠性正確性雖然大家都很渴望一個(gè)程序的正確性,但這幾乎從來(lái)都不是測(cè)試的目標(biāo)。 通過(guò)測(cè)試確認(rèn)的正確性,將意味著測(cè)試程序輸入域中的所有元素。在實(shí)踐中遇到的大多數(shù)情況下,這是不可能完成的任務(wù)。因此,正確性是通過(guò)程序的數(shù)學(xué)因此,正確性是通過(guò)程序的數(shù)學(xué)證明成立。證明成立。正確性和測(cè)試正確性嘗試確認(rèn)一個(gè)程序沒(méi)有錯(cuò)誤沒(méi)有錯(cuò)誤,而測(cè)試是嘗試發(fā)現(xiàn)程序中是否有錯(cuò)誤。 因此,測(cè)試的完整性并不一定證明程序沒(méi)有錯(cuò)誤。測(cè)試,調(diào)試和錯(cuò)誤清除過(guò)程一起增加我們對(duì)被測(cè)試,調(diào)試和錯(cuò)誤清除過(guò)程一起增加我們對(duì)被測(cè)程序的正常運(yùn)行的信心。測(cè)程序的正常運(yùn)行的信心??煽啃詎軟件可靠性:軟件可靠性:是軟件在預(yù)期環(huán)境下無(wú)故障運(yùn)行的

10、可能性。n軟件可靠性與軟件正確性的關(guān)系:一個(gè)是二元度量,一個(gè)是連續(xù)度量;操作剖面操作剖面操作剖面是程序怎樣被使用的數(shù)值描述??紤]一個(gè)排序程序,它允許兩種類(lèi)型的輸入序列。對(duì)該程序的一個(gè)操作剖面如下所示。操作剖面輸入序列輸入序列概率概率只包含數(shù)字的輸入序列只包含數(shù)字的輸入序列0.9包含字母數(shù)字串的輸入序列包含字母數(shù)字串的輸入序列0.1操作剖面輸入序列輸入序列概率概率只包含數(shù)字的輸入序列只包含數(shù)字的輸入序列0.1包含字母數(shù)字串的輸入序列包含字母數(shù)字串的輸入序列0.91.5 測(cè)試與調(diào)試測(cè)試和調(diào)試測(cè)試是確定一個(gè)程序是否有任何錯(cuò)誤的過(guò)程。當(dāng)測(cè)試揭示了一個(gè)錯(cuò)誤,確定此錯(cuò)誤的原因,并消除它的過(guò)程,被稱(chēng)為調(diào)試。

11、一個(gè)測(cè)試/調(diào)試的周期輸入域構(gòu)造測(cè)試輸入運(yùn)行程序操作剖面測(cè)試計(jì)劃運(yùn)行結(jié)果如預(yù)期的那樣嗎?結(jié)束測(cè)試嗎?編寫(xiě)測(cè)試報(bào)告錯(cuò)誤的原因現(xiàn)在已檢查出來(lái)了嗎?規(guī)格說(shuō)明糾正錯(cuò)誤現(xiàn)在糾正錯(cuò)誤嗎?編寫(xiě)未處理錯(cuò)誤報(bào)告輸入數(shù)據(jù)測(cè)試用例運(yùn)行結(jié)果修改嗎?采用采用是否是否否是否采用調(diào)試軟件是Aditya P. Mathur 2009測(cè)試計(jì)劃一個(gè)測(cè)試周期通常是由一個(gè)測(cè)試計(jì)劃指導(dǎo)。例如:要測(cè)試一個(gè)排序程序,看它是否滿足前面給出的要求。那么,需要做下面這些事情。至少執(zhí)行兩個(gè)輸入序列進(jìn)行排序,其中一個(gè)用“A”另一個(gè)用“D”作為請(qǐng)求字符。Aditya P. Mathur 2009測(cè)試計(jì)劃(續(xù))用空的輸入序列執(zhí)行程序一次。測(cè)試程序的魯棒性

12、,即給出一個(gè)錯(cuò)誤的輸入,例如鍵入“R”作為請(qǐng)求字符。測(cè)試程序過(guò)程中出現(xiàn)的所有失效應(yīng)該被記錄在使用公司失效報(bào)告格式的一個(gè)合適的文件中。Aditya P. Mathur 2009測(cè)試用例/數(shù)據(jù) 測(cè)試用例是由測(cè)試數(shù)據(jù)將被輸入到程序和預(yù)期的輸出構(gòu)成的對(duì)。測(cè)試數(shù)據(jù)是一個(gè)值的集合,每個(gè)值對(duì)應(yīng)一個(gè)輸入變量。測(cè)試集是零個(gè)或多個(gè)測(cè)試用例的集合。sort的測(cè)試用例的例子: 測(cè)試數(shù)據(jù): 期望輸出: -29 12 32運(yùn)行被測(cè)軟件n運(yùn)行被測(cè)軟件是一個(gè)重要步驟;n軟件運(yùn)行的實(shí)際復(fù)雜性依賴(lài)于軟件本身;n為運(yùn)行被測(cè)軟件,測(cè)試人員常常要搭建測(cè)試床。n初始化全局變量;n輸入測(cè)試用例;n運(yùn)行被測(cè)軟件;n記錄產(chǎn)生的輸出;Adity

13、a P. Mathur 2009程序行為n程序行為可以用幾種方法來(lái)描述:純自然語(yǔ)言,狀態(tài)圖,形式化的數(shù)學(xué)形式。n狀態(tài)圖描述了程序狀態(tài)以及程序是如何根據(jù)輸入序列或輸入改變狀態(tài)。程序行為的例子n可以用軟件狀態(tài)來(lái)定義軟件行為;n軟件的一個(gè)狀態(tài),是指軟件當(dāng)中所有變量當(dāng)前值的集合,以及下一步要執(zhí)行的語(yǔ)句的指稱(chēng)。n軟件狀態(tài)的轉(zhuǎn)換序列被稱(chēng)為軟件行為。Aditya P. Mathur 2009程序行為的例子一個(gè)菜單應(yīng)用程序Aditya P. Mathur 2009程序行為的例子(續(xù))啟動(dòng)程序用戶(hù)執(zhí)行的操作程序狀態(tài)等待用戶(hù)輸入用戶(hù)鼠標(biāo)點(diǎn)擊“File”顯示出下拉菜單用戶(hù)選擇“Open”用戶(hù)釋放鼠標(biāo)加亮顯示“Ope

14、n”在一個(gè)窗口中顯示出當(dāng)前目錄下的文件名稱(chēng)s3Aditya P. Mathur 2009對(duì)程序行為的觀察和分析用于檢查所觀察到的行為是否正確的實(shí)體被稱(chēng)為測(cè)試預(yù)言測(cè)試預(yù)言(Oracle)。步驟一:測(cè)試人員觀察程序的行為。 步驟二:測(cè)試人員分析觀察到的行為,以檢查它是否是正確與否。對(duì)大型商業(yè)程序而言,這兩個(gè)步驟都可能相當(dāng)復(fù)雜。Aditya P. Mathur 2009測(cè)試預(yù)言的例子輸入測(cè)試預(yù)言觀察到的運(yùn)行結(jié)果與預(yù)期結(jié)果一致嗎?被測(cè)軟件觀察到的運(yùn)行結(jié)果Yes或No并給出解釋Aditya P. Mathur 2009測(cè)試預(yù)言:程序測(cè)試預(yù)言還可以設(shè)計(jì)成一個(gè)用來(lái)檢查其他程序的行為的程序。例如,一個(gè)人可能使

15、用矩陣乘法程序來(lái)檢查一個(gè)矩陣求逆程序是否已經(jīng)生成了正確的輸出。在這種情況下,矩陣求逆程序把給定矩陣A和所生成B(A的逆矩陣)作為輸出到矩陣乘法的參數(shù)。Aditya P. Mathur 2009測(cè)試預(yù)言的構(gòu)造自動(dòng)化測(cè)試預(yù)言的構(gòu)造,如一個(gè)Oracle用于檢查一個(gè)矩陣乘法程序或排序程序,需要確定程序的輸入輸出關(guān)系。在一般情況下,自動(dòng)化測(cè)試預(yù)言的構(gòu)造是一個(gè)相當(dāng)復(fù)雜的任務(wù)。Aditya P. Mathur 2009測(cè)試預(yù)言的構(gòu)造(續(xù))輸入數(shù)據(jù)生成器HVideo測(cè)試預(yù)言數(shù)據(jù)庫(kù)1.6 測(cè)試度量Aditya P. Mathur 2009測(cè)試度量n測(cè)試度量是一些測(cè)量標(biāo)準(zhǔn),用于在測(cè)試過(guò)程中定量描述軟件測(cè)試的進(jìn)度、

16、質(zhì)量、資源和規(guī)模。n軟件測(cè)試可以在組織、過(guò)程、項(xiàng)目、產(chǎn)品等級(jí)別對(duì)測(cè)試進(jìn)行度量。產(chǎn)品級(jí)度量:通用度量n針對(duì)具體的產(chǎn)品,可以用一些度量來(lái)描述產(chǎn)品的相關(guān)特性。n圈復(fù)雜度:基于程序控制流圖,用于描述程序的復(fù)雜性。公式:V(G) = E-N+2p。其中,E是節(jié)點(diǎn)數(shù),N是邊數(shù),p是G中強(qiáng)連通分支數(shù)。V(G)值越大,說(shuō)明程序的復(fù)雜性越高。nHalstead復(fù)雜性度量:用軟件規(guī)模和功耗/工作量,估算在軟件開(kāi)發(fā)中出現(xiàn)的缺陷數(shù)量。n公式:B=7.6E0.667S0.333其中,E是工作量,S是軟件的規(guī)模。組織級(jí)、項(xiàng)目級(jí)和過(guò)程級(jí)度量n組織級(jí)度量n針對(duì)整體項(xiàng)目的規(guī)劃和管理。這類(lèi)度量部分來(lái)源于匯聚多個(gè)跨項(xiàng)目的相容度量。

17、n這些度量有利于高層管理進(jìn)行資源配置。n項(xiàng)目級(jí)度量n與具體項(xiàng)目有關(guān)的度量。用于對(duì)項(xiàng)目的跟蹤和控制。n過(guò)程級(jí)度量n用于評(píng)價(jià)測(cè)試過(guò)程。產(chǎn)品級(jí)度量:面向?qū)ο筌浖現(xiàn)代程序設(shè)計(jì)語(yǔ)言,不完全符合Halstead復(fù)雜性度量。因此引入了其他一些方法對(duì)軟件可靠性進(jìn)行度量。度量度量含義含義可靠性缺陷密度缺陷嚴(yán)重程度測(cè)試覆蓋度圈復(fù)雜度類(lèi)加權(quán)方法類(lèi)耦合響應(yīng)集直接子類(lèi)數(shù)軟件在給定條件下針對(duì)特定操作剖面失效的概率。每千行代碼的缺陷數(shù)根據(jù)嚴(yán)重性對(duì)缺陷的劃分可測(cè)項(xiàng)所占的比例一個(gè)程序基于CFG的復(fù)雜性被測(cè)類(lèi)中所有方法的復(fù)雜度之和與特定類(lèi)耦合的類(lèi)的數(shù)量當(dāng)向?qū)ο驩發(fā)送一消息,能夠直接或間接激發(fā)的方法集合。在類(lèi)層次中,一個(gè)類(lèi)的直接

18、子類(lèi)數(shù)量進(jìn)度跟蹤與趨勢(shì)n在開(kāi)發(fā)或測(cè)試過(guò)程中,按照固定時(shí)間間隔進(jìn)行測(cè)試度量。測(cè)試結(jié)果將提供一種趨勢(shì)。n通過(guò)統(tǒng)計(jì)這些度量的結(jié)果,可以總結(jié)出產(chǎn)品的狀態(tài)。n例如統(tǒng)計(jì)累積發(fā)現(xiàn)的缺陷數(shù)目,可以得到一條累積缺陷數(shù)目隨時(shí)間變化的曲線,當(dāng)曲線趨于飽和時(shí),說(shuō)明產(chǎn)品質(zhì)量趨于穩(wěn)定。靜態(tài)度量與動(dòng)態(tài)度量n靜態(tài)度量不需要執(zhí)行軟件。n動(dòng)態(tài)度量需要執(zhí)行軟件??蓽y(cè)試性nIEEE定義:系統(tǒng)或組件有助于建立測(cè)試準(zhǔn)則,執(zhí)行測(cè)試以便判斷這些準(zhǔn)則是否滿足的程度。n軟件越復(fù)雜,軟件可測(cè)試性越低。1.7 軟件測(cè)試與硬件測(cè)試Aditya P. Mathur 2009軟件測(cè)試VS.硬件測(cè)試n軟件測(cè)試與硬件測(cè)試存在相似之處,也有差異。n軟件不會(huì)磨損

19、,不會(huì)因時(shí)間的推移而衰老。硬件不是這樣。n軟件錯(cuò)誤主要是設(shè)計(jì)和開(kāi)發(fā)時(shí)產(chǎn)生;硬件缺陷主要在制造階段或后期產(chǎn)生。硬件設(shè)計(jì)可以采用內(nèi)置自檢技術(shù)。n硬件測(cè)試采用基于故障模型來(lái)設(shè)計(jì)測(cè)試;軟件測(cè)試無(wú)統(tǒng)一的故障模型。n硬件測(cè)試和軟件測(cè)試的另一個(gè)主要差別是測(cè)試域的不同。軟件測(cè)試VS.硬件測(cè)試n測(cè)試覆蓋率問(wèn)題:對(duì)于大型和復(fù)雜的軟件和硬件而言,都不可能進(jìn)行完全測(cè)試。n硬件測(cè)試中產(chǎn)生“可接受的測(cè)試覆蓋率”。通過(guò)測(cè)試覆蓋的故障數(shù)和理論的故障數(shù)的比率來(lái)度量測(cè)試的情況。n這種思想在軟件測(cè)試中產(chǎn)生了變異測(cè)試方法。1.8 測(cè)試與驗(yàn)證Aditya P. Mathur 2009Aditya P. Mathur 2009測(cè)試和驗(yàn)證

20、程序驗(yàn)證的目的是通過(guò)展示它不包含任何錯(cuò)誤來(lái)證明程序的正確性。這與測(cè)試的目的非常不同,因?yàn)闇y(cè)試是揭露在一個(gè)程序中的錯(cuò)誤。程序驗(yàn)證與測(cè)試最好視為互補(bǔ)的技術(shù)。在實(shí)踐中,人們可以擺脫程序驗(yàn)證,但不能略過(guò)測(cè)試。Aditya P. Mathur 2009測(cè)試和檢驗(yàn)(續(xù))測(cè)試是不是完美的技術(shù),一個(gè)程序盡管成功地完成了一組測(cè)試,但可能還是包含錯(cuò)誤。驗(yàn)證看起來(lái)似乎是完美的技術(shù),因?yàn)樗兄Z以驗(yàn)證程序沒(méi)有錯(cuò)誤。然而,驗(yàn)證程序的人可能在驗(yàn)證過(guò)程中犯錯(cuò)誤;有可能是輸入條件的不正確假設(shè),而不正確的假設(shè)可能作出程序界面有關(guān)組件的,等等。有已驗(yàn)證和發(fā)布的程序被證明是不正確的。有已驗(yàn)證和發(fā)布的程序被證明是不正確的。1.9 缺陷

21、管理Aditya P. Mathur 2009缺陷管理n缺陷管理是軟件開(kāi)發(fā)和測(cè)試的重要組成部分。n缺陷管理包括:缺陷預(yù)防、缺陷發(fā)現(xiàn)、缺陷記錄和報(bào)告、缺陷分類(lèi)、缺陷糾正、缺陷預(yù)測(cè)等。n存在一些用于缺陷管理的工具。1.10 執(zhí)行歷史Aditya P. Mathur 2009執(zhí)行歷史n又稱(chēng)執(zhí)行軌跡,是程序一次執(zhí)行中收集到的程序各方面信息的有序集合。n可以用多種方法表示執(zhí)行軌跡n語(yǔ)句的執(zhí)行序列;n對(duì)象方法的訪問(wèn)序列;n程序變量值的變化的序列;1.11 測(cè)試生成策略Aditya P. Mathur 2009Aditya P. Mathur 2009測(cè)試生成任何形式的測(cè)試生成都使用源文檔。最非正規(guī)的測(cè)試方

22、法,測(cè)試人員也在腦海里駐留了一個(gè)基于知識(shí)和需求的源文檔。在大多數(shù)的商業(yè)環(huán)境中,測(cè)試過(guò)程更正式一些。測(cè)試會(huì)通過(guò)正式和非正式的混合方法直接從作為源的需求文檔產(chǎn)生。在更先進(jìn)的測(cè)試過(guò)程中,需求將作為開(kāi)發(fā)過(guò)程中的正規(guī)模型的來(lái)源。Aditya P. Mathur 2009測(cè)試生成策略基于模型的:基于模型的:要求需求的一個(gè)子集使用了正式的符號(hào)(通常為圖形界面)來(lái)建模。模型:有限狀態(tài)機(jī),時(shí)間自動(dòng)機(jī),Petri網(wǎng)等。基于規(guī)范的:基于規(guī)范的:要求需求的一個(gè)子集使用一個(gè)正式的數(shù)學(xué)符號(hào)進(jìn)行建模。例如:B,Z,和Larch?;诖a:基于代碼:直接從代碼中生成的測(cè)試。Aditya P. Mathur 2009測(cè)試生成策

23、略 (總結(jié))需求有窮狀態(tài)機(jī)狀態(tài)圖Petri網(wǎng)時(shí)間I/O自動(dòng)機(jī)代數(shù)和邏輯規(guī)范代碼運(yùn)行時(shí)數(shù)據(jù)測(cè)試生成算法測(cè)試生成算法測(cè)試生成算法測(cè)試生成算法測(cè)試生成算法測(cè)試生成算法測(cè)試生成算法測(cè)試用例1.12 靜態(tài)測(cè)試Aditya P. Mathur 2009靜態(tài)測(cè)試n靜態(tài)測(cè)試最大特點(diǎn)是不需要執(zhí)行被測(cè)軟件;n走查:走查:非正式的過(guò)程,對(duì)源代碼和文檔的檢查。n審查:審查:更加正規(guī)的檢查過(guò)程。使用靜態(tài)代碼分析工具n通過(guò)靜態(tài)代碼分析工具得到代碼的相關(guān)信息。如:控制流信息、數(shù)據(jù)流信息等。n有商業(yè)化和開(kāi)源的靜態(tài)分析工具。軟件復(fù)雜性和靜態(tài)測(cè)試n通過(guò)分析軟件的復(fù)雜性,在靜態(tài)測(cè)試中對(duì)較復(fù)雜的模型給予更多的關(guān)注。n可以用不同的復(fù)雜

24、性度量來(lái)計(jì)算模塊復(fù)雜性。n同時(shí)需要考慮模塊功能的重要性。1.13 基于模型的測(cè)試與模型檢驗(yàn)Aditya P. Mathur 2009基于模型的測(cè)試n基于模型的測(cè)試:對(duì)軟件行為進(jìn)行建模,以及根據(jù)軟件的形式化模型設(shè)計(jì)測(cè)試活動(dòng)。模型檢測(cè)n模型檢測(cè)是指用于驗(yàn)證特定模型的一個(gè)或多個(gè)特性的技術(shù)。1.14 控制流圖Aditya P. Mathur 2009Aditya P. Mathur 2009程序表示:基本塊在程序P的一個(gè)基本塊是只有一個(gè)入口和一個(gè)出口點(diǎn)的連續(xù)的語(yǔ)句序列。因此,一個(gè)塊都有唯一的入口點(diǎn)和出口點(diǎn)。程序的控制總是在基本塊的入口點(diǎn)進(jìn)入,并從其出口點(diǎn)退出。除了在基本塊的出口點(diǎn)外,不可能在基本塊內(nèi)的

25、任何點(diǎn)退出或停止。當(dāng)一個(gè)基本塊的入口和出口點(diǎn)重合時(shí),該塊只包含一個(gè)語(yǔ)句。Aditya P. Mathur 2009基本塊的例子Example: 求X的Y次冪的程序Aditya P. Mathur 2009基本塊的例子(續(xù))Basic blocksAditya P. Mathur 2009控制流程圖(CFG)一個(gè)控制流圖(或流圖)G 被定義為一個(gè)有限的點(diǎn)的集合N和一個(gè)有限的邊的集合E。E中的一條邊(i, j)連接N中的兩個(gè)結(jié)點(diǎn)ni和nj 。我們經(jīng)常用G= (N, E)來(lái)表達(dá)一個(gè)點(diǎn)集為N,邊集為E的流圖。Aditya P. Mathur 2009控制流程圖(CFG)一個(gè)程序的流圖中,每個(gè)基本塊成為

26、一個(gè)節(jié)點(diǎn),而邊被用來(lái)表示控制在塊之間的流動(dòng)。塊和節(jié)點(diǎn)被標(biāo)記,使得塊bi對(duì)應(yīng)于結(jié)點(diǎn)Ni。 一條邊 (i, j) 連接基本塊 bi和bj說(shuō)明控制可以從塊bi到達(dá)塊bj。 我們還假設(shè)在N中有一個(gè)節(jié)點(diǎn)標(biāo)記為Start,它沒(méi)有進(jìn)入的邊,而另一個(gè)節(jié)點(diǎn)標(biāo)記為End,它沒(méi)有離開(kāi)的邊。Aditya P. Mathur 2009CFG 例子N=Start, 1, 2, 3, 4, 5, 6, 7, 8, 9, EndE=(Start,1), (1, 2), (1, 3), (2,4), (3, 4), (4, 5), (5, 6), (6, 5), (5, 7), (7, 8), (7, 9), (9, End)Aditya P. Mathur 2009CFG 例子N=S

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論