軟件測試工作量估算之功能點估算法
從上個世紀70年代開始,一些軟件企業(yè)就開始引入“功能點分析算法”,來評估軟件功能的規(guī)模,然后便可以對軟件開發(fā)的成本和工期,進行精確的度量,也可以對開發(fā)團隊的生產(chǎn)率進行考核評估。半個世紀以來,很多種不同的功能點算法模型被建立起來,Mk II功能點算法是其中一種比較常用的模型。
隨著淘寶網(wǎng)站的高速發(fā)展,淘寶開發(fā)團隊規(guī)模也不斷增大,于是必然要面對管理問題。人數(shù)的增多必然帶來管理層級的增多,這樣很容易出現(xiàn)管理結(jié)構(gòu)的臃腫,管理成本增高。如果我們引入一種簡單而且科學(xué)的工作度量模型,讓每個人每個團隊的工作質(zhì)量和效率用數(shù)字來說話,便可以促進管理結(jié)構(gòu)的扁平,簡化管理過程,每個管理者可以管理更多的人,并且對下屬的工作了如指掌。
功能點算法就是為了解決如何度量工作效率的問題,而工作質(zhì)量主要是依靠分析各種Bug數(shù)據(jù),我們在別的文章里討論。
首先我們講一下MVC模型,這是目前WEB開發(fā)的一種非常流行的軟件架構(gòu)模式。它把WEB應(yīng)用程序定義為3個部分,每個部分負責(zé)完成特定的任務(wù):
Model 模型
View 視圖
Controller 控制器
Model主要與數(shù)據(jù)庫交互,把數(shù)據(jù)表轉(zhuǎn)換成對象,并且實現(xiàn)基本的數(shù)據(jù)讀寫邏輯,比如在淘寶網(wǎng),商品就是一個Model。View負責(zé)實現(xiàn)界面的設(shè)計,我們?yōu)g覽網(wǎng)頁看到的WEB界面控件,比如按鈕、文本框、GRID都是在View中定義的,設(shè)計View主要是用Html和JS。用戶在View層進行的各種操作(比如點擊按鈕),就會啟動Controller里的函數(shù),主要的業(yè)務(wù)邏輯代碼,都寫在Controller里了,其實也就是對各種Model進行增刪改查,比如購買一個商品。
關(guān)于MVC的更多詳細說明請參考維基百科。
接下來我們介紹MkII功能點算法,淘寶測試選擇MkII的主要原因是,它的算法和MVC模式非常的吻合,可以說是黃金搭檔。
MkII功能點算法是這樣:先要給各個功能模塊劃分邏輯事務(wù),然后針對每個邏輯事務(wù),分析輸入DET(Data Element Type)和輸出DET的數(shù)量,以及關(guān)聯(lián)的實體類型數(shù)量,再根據(jù)一個算法公式,計算出功能點指數(shù):
功能點=輸入DET×0.58+實體類型×1.66+輸出DET×0.26
邏輯事務(wù)指用戶在WEB應(yīng)用程序中的原子操作。很多開發(fā)團隊都會設(shè)計UseCase,一般來說一個UC對應(yīng)一個邏輯事務(wù)。注意:邏輯事務(wù)一定是記錄用戶行為的,而不是程序內(nèi)部的處理邏輯。不過在實際的分析中,我們發(fā)現(xiàn)邏輯事務(wù)的個數(shù),往往要大于UC的個數(shù),這是正常的,主要因為很多UC包含的信息很多。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |