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