国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于p—值修正法的軟件錯誤數估算的可靠算法

2016-05-30 15:02黃焯恒孫鑒鋒王建新
軟件工程 2016年3期
關鍵詞:軟件測試

黃焯恒 孫鑒鋒 王建新

摘 要:軟件內部錯誤數估算是降低軟件工程風險、保證軟件工程順利實施的重要途徑。在當前軟件測試中,項目管理人員采用傳統的估算策略,但是估算效果往往受制于測試人員獨立性等諸多因素的干擾。其中,具有相似背景的測試人員對于測試過程會具有相似認知,這種不獨立性使軟件錯誤數的模型估算值往往比真實值偏低。類似潛在因素在軟件錯誤數估算中大量存在,降低了估算準確性。因此,本文基于傳統的Hyman估算法提出了一種改進的度量方法(p-值修正法),該方法能有效排除組間人員相關性對Hyman模型的干擾,能在很大程度上提高估算的準確性。同時,該方法易于用戶理解、簡便易行、可靠性高,可降低軟件工程風險,對決策人員有很大幫助,適合普遍推廣。

關鍵詞:軟件測試;軟件錯誤估算;Hyman估算法;p-值修正法

中圖分類號:TP311.5 文獻標識碼:A

Abstract:Estimating the inner error number of software is an important means of decreasing software engineering risks and making software engineering implemented successfully.In current software testing,project managers employ traditional estimation strategy,and the estimation effect is affected by the factors such as the independence of the test personnel.Testers of similar background may have similar cognition of the testing process,and such independence makes the estimated number of errors smaller than the real number.Moreover,such potential factors exist a lot in error estimating, hence destroying the estimation accuracy.Therefore,an improved estimation method,p-value revision method,is proposed in this paper,which is able to remove the intervention by the inter-group correlations of the testers,promoting the estimation accuracy.Meanwhile,this method is easy to be understood by users,is ready to be implemented,and is highly reliable.It is capable of decreasing software engineering risks,is helpful for decision makers,and is suitable for wide use.

Keywords:software testing;software error estimation;hyman estimation method;revision method of p-value

1 引言(Introduction)

當前,隨著互聯網時代的蓬勃發(fā)展,各類軟件層出不窮,數不勝數的軟件在互聯網這趟高速列車上蜂擁而至。并且,隨著用戶需求的不斷增加,軟件設計和開發(fā)過程中的復雜性不斷增高。為了確保軟件質量[1,2],應該開展更加行之有效的軟件測試[3,4]。計算機之父圖靈認為軟件測試是軟件正確性確認的一種方法。因此,軟件測試應盡力找出軟件設計的失敗與不足之處,并加以糾正,確保軟件最終設計目標的實現,以此不斷地提高軟件質量。1983年,IEEE對軟件測試給出了如下的定義:使用人工或自動手段來運行和測定某個系統的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是確定預期的結果與實際的結果之間的差別[5]。但在測試之前需使用良好的軟件錯誤估算方法[6],幫助測試人員發(fā)現錯誤,使預期結果和實際結果之間的距離不斷縮小,是軟件工程過程有更好的可控性。

軟件中錯誤數量的估算不準,對軟件質量的改善就越不確定,人們發(fā)現一個錯誤越晚,修正的難度越大,造成的損失也就越大。所以軟件的測試工作越早開始越好,軟件錯誤數的估算越準確越好。因而,良好的錯誤估算模型對于提升軟件質量猶如“銀彈”般至關重要。

回首過往,自軟件行業(yè)誕生以來,測試人員尋找良好的估算錯誤方法的腳步一直沒有停下來。從20世紀70年代開始到80年代中期是軟件可靠性建模技術的快速發(fā)展時期,這段時間產生了上百種的軟件可靠性模型。1972年Mills將種子模型(Seeding-Model)運用到了軟件錯誤數估算中[7]。在過去,種子模型是估計軟件錯誤數量的重要手段之一,該方法模仿估算池塘中魚尾數的方式,在開始排錯以前被測軟件中含有的錯誤數x。在不讓排錯程序人員知道的情況下,在程序中置入y個錯誤(相當于為y條魚尾作標記后放回池中)。經過一段時間的軟件測試,所測得的軟件錯誤可以分成兩類,一類是屬于置入的錯誤X,另一類是非置入的錯誤Y。通過構造其比例關系式,來成功的估算出全部的錯誤數量。該方法具有簡單直觀的優(yōu)點。但是該方法全過程不能自動實現,并且,無法保證人為置入的軟件錯誤的規(guī)律與軟件內實際存在的軟件錯誤的規(guī)律一樣或相似。后來,Hyman改進了Mills的估算錯誤的方法[8],該方法可以運用蒙特卡羅(Monte-Carlo)模擬方法[9]快速計算來解決這一問題,因而,這一模型被軟件行業(yè)廣泛應用。近來,苗洋[7]通過對Hyman估算公式的變形,構造出估錯數量與時間之間的函數,但是,該方法由于其較難操作,很難應用于實際的軟件估錯當中。

事實上,軟件測試中估算錯誤數量的過程會受到諸多外界因素的干擾。比如,當兩組測試人員不獨立且高度相關時(這也是經常出現的情形),其測得的相同錯誤數會偏低,從而使估算值比真實值偏高。并且,這種相關性越強,估算值的偏離程度越大。

為了盡可能縮減這一偏差,改善Hyman估算方法的質量,我們提出一種相似度系數(p-值修正法)來改善估算值的準確性。該方法通過度量測試人員之間的相關程度,運用“懲罰”的思想,修正估算結果,對軟件中的錯誤數做出更加精準的判斷。為此,我們在文中引入對Hyman法的概率推導過程[6],幫助讀者更好的理解p值修正法的整體思想。

2 估算軟件中錯誤數量的方法(Method of estimating software error number)

2.1 Hyman估算法

假設A組和B組兩組測試人員互相獨立地對某個軟件進行測試,我們記A組人員和B組人員測得的錯誤數分別為i和j 個,兩組測試人員共同測試出的錯誤數為k,軟件錯誤數的估算值與這三個量的關系如下:

式(1)即為著名的Hyman估錯方法表達式。該模型簡單易懂,但在排錯人員進行軟件測試之前,通常要做如下幾個假設:

(1)兩組測試人員之間是相互獨立的,并且在測試過程中沒有相互交流。

(2)排錯時,不再引入新的錯誤。

(3)排錯的過程隨機進行。

(4)在排錯過程中錯誤特性不變。

(5)所有軟件缺陷的觸發(fā)概率都是相等的。

如果上述某條假設不成立,均會在一定程度上降低最終結果的準確性。下面我們用概率模型的手段分析該問題。

一方面,由于實際生產生活當中,估算軟件錯誤數目帶有未知性和不確定性,因此,我們可以將這一過程抽象為一種概率問題;另一方面,這為了更好地幫助理解本文提出的優(yōu)化方法,引入針對Hyman法問題求解的概率模型,記事件Z為“A組人員和B組人員檢測出的相同錯誤的數量恰好為 個”,所以可有:

其中n為估算個數,也就是說我們希望找到最佳的,

令,研究函數的單調性。若,則函數單調遞增;若,則函數遞減。

將(2)式帶入當中,推得

即當,函數遞增;當,函數遞減,即,這也證明了采用Hyman估錯的可靠性。

但是,當兩組測試人員具有較高的相關性時,Hyman方法會有較大的估算誤差,如下面場景。

場景1:假設M公司的某款軟件中存在100個錯誤,A組和B組兩組測試人員在對該軟件中測試時,分別得到了i=20和j=20個錯誤。理想情況下,如果兩組測試人員之間完全獨立,則測出的共同錯誤數k的理論值為4,此時用式(1)估算的結果為100恰好與實際值相等;但如果兩組測試人員之間不獨立且有正相關性,則檢測出的共同錯誤數k大于4,比如k=4。此時根據公式(1)的估算值為40,與實際只有較大偏差??梢钥闯?,獨立性越差,偏差就越大。

經過對軟件測試行業(yè)現狀的分析和以往軟件測試的經驗,我們發(fā)現場景1中出現的測試人員的相關性問題會在很大程度上左右最終的估算結果,從而導致了較大的估算誤差。人員相關因素與人員的背景密切相關。例如,長時間共事的兩組測試人員,他們在糾錯認知方面勢必具有相似之處,這將在一定程度上破壞Hyman模型中的假設,使估算值向低偏離真實值。

從場景1的結果也進一步看到,當A組和B組人員之間的相關性越小時,越能提高估算結果的精確性。然而,由于兩組測試人員得到的共同測試錯誤的數量 已經是一個定數且不能改變,因此,我們需要找出一種策略去彌補這種不足?;谏鲜隹紤],本文提出了p值度量法(用p值來懲罰相關程度)來改進Hyman測試法。

2.2 改進Hyman法(p-值修正法)

p值修正法以人員之間的相似程度等一些外在因素為度量依據,能夠在一定程度上提升軟件錯誤數量估計值的準確度。決策人員可以根據測試人員之間的不同特性,來及時的更換p值(結合“專家意見法”[10]對人員相關因素的相關程度進行打分)的大小,這將對最終估算結果的正確性起到巨大的幫助。

為了讓當前軟件錯誤數量的估算值更加接近錯誤數量的真實值n,我們有必要重新確定一個估計值,它可以被如下定義

其中,1>p>0,觀察(4)式,可以看到p值其實就是一個在0—1的懲罰系數,這個懲罰的思想便是p值修正法的核心思想,該思想旨在消除兩組人員不獨立造成的影響,在干擾和估值之間做一個平衡。使獲得的新估算值較好的接近軟件錯誤數的真實值。其算法流程如圖1所示。

本文認為,在實際軟件測試當中,測試人員的先決條件(人員相關程度)能夠影響測試過程中測出的共同錯誤數量。這些先決條件包括測試人員的學習經歷和工作背景等情況,具體而言,對于衡量這個先決條件,主要通過幾個方面進行:

第一,測試人員之間的相關性與測試人員之前所處的環(huán)境(地點)有關。例如,兩組人員之中存在長期共事的情況,因為他們現今共同工作,對某一些類型的錯誤具有相同認識,使得測試結果中共同檢測出的錯誤數量變多。再比如,兩組人員中存在畢業(yè)同一院校的,他們之前的學習氛圍相近,受到的同種技巧教育的影響偏深,也會提高對軟件中某幾類錯誤具有共同認識的可能性,從而也導致共同檢測錯誤數量值變大。

第二,人員相關性施加于某項因素的時間相關。時間越長,相關性越大。

因此,我們立足于當前軟件行業(yè)的發(fā)展現狀和趨勢,并模擬“專家意見這一過程”,總結出測試人員相關性的主要類別,分別是:

(a)測試人員共事年限長短。

(b)測試人員工作年限相似度。

(c)測試人員畢業(yè)院校相似度。

(d)測試人員學歷相似度。

采用低、中、高作為相關程度的衡量標準,并且經由“專家意見法”,針對人員相關因素的相關程度進行打分,其取值如表1所示。

具體地,針對相關因素類型Qi而言,分為情況si(如表2所示),并且每種情況si用相應的相關程度值pi來權衡。表中的各類情況si隨值i的增加,其相關程度也在增加。

本模型規(guī)定,在評價測試人員相關性時,如果組內存在相關因素類型Qi的復合情況時,只保留相關程度值最大的一種,這稱為復合情況保留策略。相應地,pi為si的對應值。

在上述討論的基礎上,我們將p值修正法應用于場景1描述的問題中。當M公司A、B兩個小組各自測得的錯誤數和共同測得的錯誤數分別為20、20和10時,根據Hyman估算法得到了總錯誤數的估算值40,與真實值100有較大的偏差。

但通過對測試人員內部的評價,可獲得A、B兩個小組人員的信息。其中相關類型Q1出現了情況s1、s2、s3(兩組人員中共事年限最長為5年,根據復合情況的保留策略,取最相關情況s3,后同);相關類型為Q2出現了情況s1、s2(兩組人員中從業(yè)年限差最小為1.5年,取最相關情況s2);相關類型為Q3出現了情況s1、s2(兩組人員中無共同院校畢業(yè),但有相似院校畢業(yè)情況,取最相關情況s2),相關類型為Q4出現了情況s2、s3(兩組人員中有同為碩士畢業(yè)的情況,即學歷差為0,取最相關情況s3)。那么,{Q1,Q2,Q3,Q4}分別保留了情況{s3,s2,s2,s3},對應了相關程度值{p3,p2,p2,p3}={0.8,0.4,0.4,0.8},最終的p值為

p=W1×p3+W2×p2+W3×p2+W4×p3=0.6

上述結果帶入(4)式,得到p值修正法的估算結果為2.5=100??梢钥闯?,這個結果比較接近真實的軟件錯誤數估算結果。

通過表1中的p值懲罰系數,能夠將Hyman估算法的偏離值復原,得到的數據也就更加可靠。另一方面,通過“專家意見法”,不同公司可以根據自己的實際情況,調整表2的賦值,使得p值更加符合公司和企業(yè)的狀況,降低因錯誤數估算偏離造成的軟件工程風險。

3 結論(Conclusion)

軟件測試是軟件工程中至關重要的環(huán)節(jié),而軟件錯誤數的估算是實施有效的軟件測試的前提。估值過高或估值過低都會影響軟件工程的工期,造成資源投入的不足或浪費。我們提出的p值修正法是對傳統的Hyman估算法的改進,克服其因人員的相關性而造成的估值偏差。該方法通過簡單的p值修正即可使估算值與真實值之間的偏差大幅下降,并具有簡單易懂、實施方便和高效快捷等優(yōu)點,為降低軟件工程風險、保證軟件工程順利實施提供了良好的估算機制。

參考文獻(References)

[1] 聶蕓.基于CMMI的軟件質量保證過程管理[J].軟件工程師,2015,18(8):10-11.

[2] Baker E R,Fisher M J.Software quality program organization[M].Prentice Hall PTR,1998:115-145.

[3] 趙麗莉,金學軍.軟件性能測試面面觀[J].軟件工程師,2006(11):40-42.

[4] 陳明.軟件工程學教程[M].北京:科學出版社,2002.

[5] IEEE Standard Glossary,IEEE Std 729-1983.

[6] 李世慧,惠韶文.計算機軟件中錯誤數量的一種估算方法[J].佛山科學技術學院學報:社會科學版,1995,13(2):52-53.

[7] 苗揚.軟件可靠性測試與評估方法的改進[D].上海交通大學,2010.

[8] 劉繼華.基于風險的Web應用軟件測試方案研究與應用[D].太原理工大學,2006.

[9] 馬海云,黨建武.基于蒙特卡羅的軟件測試技術的研究與實現[J].鄭州大學學報(工學版),2007,28(4):55-58.

[10] 戴怡,等.面向數控系統可靠性評估的先驗信息融合方法—專家打分法[J].天津職業(yè)技術師范大學學報,2012,22(3):6-8.

作者簡介:

黃焯恒(1994-),男,碩士生.研究領域:軟件工程.

孫鑒鋒(1991-),男,博士生.研究領域:軟件工程,數據挖掘.

王建新(1972-),男,博士,教授.研究領域:軟件測試,軟件工程,數據挖掘.

猜你喜歡
軟件測試
軟件測試方向人才培養(yǎng)“1+X”融合研究
基于OBE的軟件測試課程教學改革探索
航天軟件測試模型構建與應用
基于MBD模型自動生成測試用例的軟件測試方法
計算機軟件測試方法的研究
EXCEL和VBA實現軟件測試記錄管理
關于軟件測試技術應用與發(fā)展趨勢研究
一種航空機載軟件測試項目的進度改進模型
軍用軟件測試文檔生成設計與實現
軟件測試工程化模型及應用研究