摘要:軟件測(cè)試是軟件開(kāi)發(fā)生命周期中的一個(gè)關(guān)鍵步驟。從某種程度上說(shuō),軟件測(cè)試決定了該產(chǎn)品的最終成敗。一種有效的軟件測(cè)試方法可以偵測(cè)出軟件產(chǎn)品中的錯(cuò)誤,并保證軟件產(chǎn)品可以準(zhǔn)確無(wú)誤的發(fā)布。但如何保證軟件測(cè)試的有效性一直是人們探討和爭(zhēng)論的問(wèn)題。通過(guò)提出了一種軟件測(cè)試的簡(jiǎn)單模型,以幫助人們正確的評(píng)估軟件測(cè)試的有效性。
關(guān)鍵詞:軟件測(cè)試;貝葉斯定理;測(cè)試有效性
中圖分類(lèi)號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16723198(2007)11026801
1引言
長(zhǎng)久以來(lái),在軟件開(kāi)發(fā)生命周期中,軟件測(cè)試一直扮演著舉足輕重的角色。它幫助人們?cè)谲浖a(chǎn)品正式發(fā)布以前,有效的偵測(cè)出軟件設(shè)計(jì)中的錯(cuò)誤和缺陷,及時(shí)予以糾正。更重要的是,軟件測(cè)試除由專(zhuān)業(yè)技術(shù)人員進(jìn)行外,通常有用戶(hù)的參與,可以在測(cè)試的過(guò)程中準(zhǔn)確理解用戶(hù)的需求,對(duì)產(chǎn)品進(jìn)行改進(jìn)和完善,保證軟件產(chǎn)品基于用戶(hù)要求量身訂制,真正實(shí)現(xiàn)產(chǎn)品客制化(Customization)。從而保證產(chǎn)品的高質(zhì)量和高效益。
與軟件測(cè)試的重要性隨之而來(lái)的一個(gè)根本問(wèn)題就是其有效性,即軟件測(cè)試正確偵測(cè)出產(chǎn)品缺陷或錯(cuò)誤的效率有多高。在軟件測(cè)試環(huán)節(jié)中通常遇到的問(wèn)題是:產(chǎn)品中存在的問(wèn)題并沒(méi)有被及時(shí)發(fā)現(xiàn),從而導(dǎo)致產(chǎn)品的最終失敗。或者產(chǎn)品中并沒(méi)有缺陷,而由于人為或測(cè)試系統(tǒng)的誤差,發(fā)出錯(cuò)誤警報(bào),迫使設(shè)計(jì)者不得不花費(fèi)大量的時(shí)間和精力去尋找并不存在的產(chǎn)品缺陷,導(dǎo)致資源浪費(fèi)和成本上升。那么如何避免上述兩種情況的發(fā)生呢?有效軟件測(cè)試的標(biāo)準(zhǔn)是什么呢?究竟什么樣的測(cè)試可以被定義為有效測(cè)試呢?本文針對(duì)這一問(wèn)題,從貝葉斯原理出發(fā),提出了一種評(píng)估軟件測(cè)試的簡(jiǎn)單模型。借助該模型,軟件開(kāi)發(fā)人員可以有效的判斷軟件測(cè)試是否達(dá)到預(yù)期的標(biāo)準(zhǔn)。
2理論基礎(chǔ)——貝葉斯定理
如果兩個(gè)事件A和B不是互相獨(dú)立的,并且知道事件B中的一個(gè)事件已經(jīng)發(fā)生,就能得到關(guān)于P(A)的信息。這反映為A在B中的條件概率,記為P(A|B):
P(A|B)=P(AB)P(B)
或
P(AB)=P(A|B)P(B)=P(B|A)P(A)
假設(shè)樣本空間S被分成一個(gè)含有n個(gè)互斥事件的集合,每個(gè)事件稱(chēng)為S的一個(gè)劃分:
S={A1,A2,A3,……,An}
AiAj=0i≠j
事件B可以寫(xiě)成由n 個(gè)不相交(互斥)事件BA1,BA2,..., BAn 組成,全概率定理:
P(B)=P(B|A1)P(A1)+P(B|A2)P(A2)+…+P(B|An)P(An)
用全概率定理和條件概率的定義可以得到貝葉斯定理:
P(Ai|B)=P(B|Ai)P(Ai)P(B)
=
P(B|Ai)P(Ai)P(B|A1)P(A1)(B)+…P(B|An)P(An)
3軟件測(cè)試效果評(píng)估模型
正如大部分人所熟知的那樣,軟件測(cè)試是人們預(yù)測(cè)、分析、偵測(cè)和修正前期軟件設(shè)計(jì)中的錯(cuò)誤和缺陷的過(guò)程。通過(guò)軟件測(cè)試,軟件產(chǎn)品設(shè)計(jì)中致命的錯(cuò)誤可以被及時(shí)發(fā)現(xiàn),并予以補(bǔ)救,以確保產(chǎn)品失敗的概率被降到最低限度。性能良好的軟件產(chǎn)品可以極大的提高用戶(hù)對(duì)產(chǎn)品的信心,從而積極配合新產(chǎn)品的使用和維護(hù),最終形成軟件開(kāi)發(fā)與用戶(hù)使用間的良好互動(dòng)。然而,軟件測(cè)試有其無(wú)法避免的局限性,比如:軟件測(cè)試環(huán)境與軟件實(shí)際運(yùn)行環(huán)境之間的差異,使得人們因?yàn)闊o(wú)法模擬實(shí)際運(yùn)行環(huán)境,而無(wú)從對(duì)系統(tǒng)中的關(guān)鍵部分或模塊的錯(cuò)誤發(fā)生率進(jìn)行準(zhǔn)確的評(píng)估,導(dǎo)致測(cè)試人員對(duì)產(chǎn)品可靠性作出錯(cuò)誤的判斷,最終可能使測(cè)試中運(yùn)行良好的產(chǎn)品在實(shí)際運(yùn)行中出現(xiàn)問(wèn)題。
那么,如何科學(xué)評(píng)價(jià)軟件測(cè)試的有效性呢?或者,換句話(huà)說(shuō),什么是有效的軟件測(cè)試呢?本文將建立一個(gè)軟件測(cè)試有效性的評(píng)估模型,通過(guò)這種模型,軟件測(cè)試的有效性可以用概率的方式進(jìn)行表示和計(jì)算,從而將軟件測(cè)試有效性的評(píng)價(jià)進(jìn)行量化。該模型是基于貝葉斯定理建立的,以下將分兩部分進(jìn)行介紹:第一部分是模型的邏輯關(guān)系原理,用邏輯關(guān)系圖表示;第二部分是在第一部分的基礎(chǔ)上建立的數(shù)學(xué)模型,也是該評(píng)估模型的核心部分。
(1)邏輯關(guān)系圖。
為便于闡述,我們將軟件測(cè)試的結(jié)果表示為 “Detected Defects”( 偵測(cè)出的缺陷),同時(shí)將影響測(cè)試結(jié)果的因素分為兩種類(lèi)型:一種是“Wrong Caution”(錯(cuò)誤警報(bào)),即產(chǎn)品本身并沒(méi)有缺陷,由于系統(tǒng)或人為的失誤導(dǎo)致測(cè)試結(jié)果錯(cuò)誤的顯示產(chǎn)品中有缺陷存在;另一種是“Successful Detection”(成功偵測(cè)出產(chǎn)品缺陷),即產(chǎn)品本身存在缺陷,軟件測(cè)試成功將其發(fā)現(xiàn)。下圖表示三者之間的邏輯關(guān)系,即:測(cè)試結(jié)果表明產(chǎn)品存在缺陷可能是由于兩種原因之一導(dǎo)致的:錯(cuò)誤警報(bào)或成果偵測(cè)。
(2)軟件測(cè)試有效性評(píng)估模型。
基于上述邏輯圖示,本文建立了以下軟件測(cè)試有效性的評(píng)估數(shù)學(xué)模型。
Figure 1The relationship among 3 terms
(1)定義以下事件:
D: 缺陷存在;
D′:缺陷不存在;
S: 缺陷被偵測(cè)出;
S′: 缺陷未被偵測(cè)出。
(2)測(cè)試人員可根據(jù)以往的經(jīng)驗(yàn)作出如下假設(shè):產(chǎn)品存在缺陷的概率為0.3;產(chǎn)品缺陷被成功發(fā)現(xiàn)的概率為0.9;測(cè)試中發(fā)出錯(cuò)誤警報(bào)的概率為0.2 。則,幾種事件的概率分別表示為:
P( D ) = 0.3;
P(S|D) = 0.9;
P(S|D′)=0.2。
根據(jù)貝葉斯定理,可計(jì)算得到:
P(D|S) = P(S|D) * P(D) / [P(S|D)P(D) + P(S|D′)P(D′)]
= 0.9 * 0.3 / (0.9 *0.3+ 0.2*0.7 ) = 0.66.
也就是說(shuō),上例中能正確的測(cè)試出軟件產(chǎn)品中的缺陷(或有效測(cè)試)的概率為0.66。如果事先設(shè)定的有效測(cè)試的概率為0.8,則說(shuō)明目前的軟件測(cè)試還無(wú)法達(dá)到有效測(cè)試的標(biāo)準(zhǔn),應(yīng)給予改進(jìn)。
4結(jié)論
在實(shí)際的軟件測(cè)試中,盡管人們無(wú)法保證完美無(wú)缺的測(cè)試,但至少計(jì)算出達(dá)到有效測(cè)試標(biāo)準(zhǔn)的概率是多少,即評(píng)價(jià)軟件測(cè)試的效果如何。因此上述模型基于貝葉斯定理為軟件測(cè)試者提供了一個(gè)簡(jiǎn)單的可量化評(píng)估測(cè)試效果的方法,幫助人們客觀的評(píng)價(jià)軟件測(cè)試的結(jié)果。如果與預(yù)期的概率仍有差距(如上例),則應(yīng)進(jìn)行測(cè)試環(huán)境的改進(jìn)以達(dá)到理想的效果。
本文僅提出了一個(gè)測(cè)試效果評(píng)價(jià)的簡(jiǎn)單模型,未來(lái)進(jìn)一步的研究將集中在影響測(cè)試效果的各種因素上,如:測(cè)試者的經(jīng)驗(yàn),技能;測(cè)試環(huán)境的仿真程度等,將進(jìn)一步研究各種影響因素的相互作用及其各自對(duì)測(cè)試效果的影響程度。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。