1. 程式人生 > >如何估算測試工作量(二)程式碼行分析方法

如何估算測試工作量(二)程式碼行分析方法

如何估算測試工作量

(程式碼行分析方法 – 常見的軟體規模估算方法

測試工作量的估計往往和軟體開發的規模是緊密相關的.很多軟體公司往往是在估計了即將要開發的軟體規模後才做測試工作量的估計,然後求和得出專案的最終工作量估計.這種方法比較適用於有經驗積累,測試和開發模式穩定的公司或專案,提供了一個比較準確,有參考的數字.但同時由於其完全依賴其前提-開發工作量的估計,顯得比較脆弱,如果開發工作量出現較大偏差,測試工作量也就變得毫無用處.在加之程式碼行本身就存在著許多問題和侷限,所以在選擇其做為專案估算方法時需要好好了解它的原理,優缺點進而有選擇性的使用.

程式碼行是來源與英文line of code.

那麼程式碼行分析方法就是就是對軟體產品的原始碼的行數進行測量.但是仔細想想,可能會有以下疑問:

l         是計算物理行數,還是程式的命令數量?

l         空行是否計算?

l         註釋是否計算?

l         預定義檔案是否計算?

l         不同版本如何計算?

l         這裡面是否設計到一系列的規則定義問題?

l         開發過程種的配置指令碼,編譯指令碼是否計算?

l         共享檔案(例如共享的開發庫檔案種的頭部檔案)如何計算?

那麼現在的一般規則是計算物理行數,不計算空行,不計算註釋.對於其他選項,一般為計算原始檔根目錄下的所有檔案.

所以程式碼行指的是指所有的可執行的原始碼行數,包括可交付的工作控制語言 (JCL  job control language) 語句、資料定義、資料型別宣告、等價宣告、輸入 / 輸出格式宣告等。常使用的單位有: SLOC(single line of code)KLOC(thousand lines of code) LLOC(logical line of code)PLOC(physical line of code)NCLOC (non-commented line of code)DSI(delivered source instruction)。其中SLOC和KLOC
比較常用.

程式碼行分析方法對技術人員是有意義的,因為它的確從某種程式上反映了軟體的規模,並且是物理上可測量的.但是這種方法也存在如下諸多問題.

l         在需求、計劃、設計階段因為本身沒有程式碼行,需要靠估算來解決。總體上估算準確度不高,除非有多年的類似專案經驗。估算的準確程度取決於是否有同類項目的資料和估算人員的經驗。在編碼、測試、實施階段可以直接數出來。

l         在滿足客戶的要求以及反映進度方面的能力差強人意,對於管理者意義不大.因此專案很難從整體上跟蹤程式碼行數的指標採取行動.

l         近來視覺化程式設計工具的大量採用,以及模板庫,類庫的廣泛採用,在程式的結果中有大量自動生成的程式碼或者複雜的自動配置指令碼或資原始檔設定,在採用這些工具的專案中,用程式碼行分析方法得到數值的意義已經大大降低.

l         對於不同的程式語言來說,程式碼行也缺乏可信轉換方式.

儘管程式碼行方法有很多缺點,但是由於它容易使用,操作成本低(如果採用適當的支援工具),還是推薦使用程式碼行作為軟體專案管理的參考和補充手段.

參考資料部分節選自<<功能點分析方法與實踐>>

相關推薦

如何估算測試工作量程式碼分析方法

如何估算測試工作量 (二) 程式碼行分析方法 – 常見的軟體規模估算方法 測試工作量的估計往往和軟體開發的規模是緊密相關的.很多軟體公司往往是在估計了即將要開發的軟體規模後才做測試工作量的估計,

如何估算測試工作量常規的估算測試工作量方法

相關 風險 delphi 積累 log 不同 功能點 經驗 依賴 如何估算測試工作量(一)常規的估算測試工作量的方法作為一個管理者,你是否被詢問到某個項目要花多少時間,多少人力測試;或是作為一個普通的測試員,你是否被詢問到要花多少時間來完成某個任務或是一次回歸測試?我想大多

webUI自動化測試框架程式碼分層-基礎層

前言:該webUI自動化框架主要分為四層:基礎層、物件層、操作層、用例層,每一層負責各自的功能,這樣有益於提高程式碼的可讀性,複用性和擴充套件性。基礎層主要封裝了一些工具類,如解析xml檔案,讀取excel,分瀏覽器啟動,時間處理等,供其他類呼叫。 另外,筆者這邊主要使用的

JMeter接口測試示例

jmeter 請求方式 user mon idt 長度 參數 方式 mil 獲取用戶余額 功能描述 獲取用戶余額:傳入userid獲取用戶余額 請求地址 http://api.nnzhp.cn/getmoney 請求方式 Post請求 入參 ,入參是json類型

Struts2學習Action中方法的三種方式

tracking 利用 content con return -m i++ var itl 1.運行execute()方法 一般的能夠直接在action中書寫execute,調用action時會自己主動運行此方法 2.配置method方法 在s

【轉】JMeter學習十八JMeter測試Java

sets interval permsize int 文件 不同 時間 結果 argument 實例: 服務為:將輸入的兩個參數通過IO存入文件; 1、打開MyEclipse,編寫Java代碼 服務: package test; import java.io.F

Brup Suite 滲透測試筆記

history 成對 其他 二進制 mage 表達 連接 基本類 安全套 接上次筆記 1、瀏覽器配置完後在地址欄中輸入http://brup出現官網 其他的瀏覽器火狐,Google Chrome,306極速瀏覽器,IE等設置基本類似,這裏不再做贅述。 2、配置好之後啟動i

python3修改HTMLTestRunner,生成有截圖的測試報告,並發送測試郵件

sdc 生成 方便 agen short pop 截圖 status 打印 3. 如何將第一步得到的地址和名稱 輸入 進第二步裏的表格中呢。。。 用上述查找元素的方法,發現HTMLTestRunner.py中REPORT_TEST_WITH_OUTPUT_TMPL是用來輸出

【20180311】2018北京集訓測試

char 開始 n) source 數組 區間 但是 多次 pan Problem A: 遊戲 題解&反思 模型轉化挺簡單的,但是轉化成“查詢區間內是否有若幹個數組成的集合xor和為0”問題的時候,突然發現不會做……最後只打了20暴力真是涼涼。 其實線性基這個東

Jenkins自動化搭建測試環境

打開 自己 到你 自動化部署 找到 工具 技術分享 directory 查看 Fork項目 找到項目 單擊Fork 這時,會發送一個郵件到你的git郵箱中,點擊鏈接即可完成fork 這樣,這個工程就已經fork到自己的git上了 然後就可以下載這個工程到本機了 這

初識gauge自動化測試框架

numbers 引用 文件中 自動化測試 文件描述 tor 興趣 測試 你是 看到一些同學對該工具有點一興趣,那麽我將繼續介紹Gauge自動化測試工具。 Gauge本質上一個BDD(Behavior Driven Development)測試框架。所以,首先你要了解BDD的

《Frustum PointNets for 3D Object Detection from RGB-D Data》論文及程式碼學習程式碼部分

《Frustum PointNets for 3D Object Detection from RGB-D Data》論文及程式碼學習(二)程式碼部分 文章目錄 《Frustum PointNets for 3D Object Detection from RG

Python + Robotframework + Appium 之APP自動化測試實踐

廢話不多說,直接來實踐(二),本次基於Android手機Settings模組下的search功能進行的自動化測試,程式碼如下 :   1 *** Settings *** 2 Library AppiumLibrary 3 4 *** Variables

[翻譯]pytest測試框架:使用

此文已由作者吳琪惠授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 呼叫pytest 呼叫命令: python -m pytest [...] 上面的命令相當於在命令列直接呼叫指令碼 pytest [...](前提是python已經加入環境變數) 一些幫

JMeter學習十八JMeter測試Java

例項: 服務為:將輸入的兩個引數通過IO存入檔案;   1、開啟MyEclipse,編寫Java程式碼 服務: package test; import java.io.File; import java.io.PrintWriter; public c

NDVI 資料處理,及估算植被覆蓋度arcgis 柵格轉ascii

經過上一步的處理,得到了11年*12月 共132各tif影象。 接下來把tif影象轉成我們習慣使用的文字格式,即經度,緯度,ndvi。共三列。當然也可以根據個人偏好製作為nc檔案等(製作nc檔案可參見我的部落格)。 一般在 ASCII 柵格的檔案頭中我們會看到這幾行:

App自動化測試探索MAC環境搭建iOS+Python+Appium測試環境

code -s image ios 使用 usr developer contents gis 環境搭建要求,MAC 機器一臺,要求 Xcode 8.0以上 1. 安裝 Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw

【selenium3+JAVA】介面自動化測試教程——瀏覽器的關閉

瀏覽器的關閉有兩個方法,如下所示: System.setProperty("webdriver.chrome.driver", "D:\\test\\driver\\chromedriver.exe"); ChromeDriver chrome = new Ch

nightwatch + selenium 瀏覽器自動化測試 教程

上一篇已經講述瞭如何搭建環境,這一片主要針對語法進行 目錄 測試案例 測試案例 module.exports = { 'Demo test Google' : function (browser) { browser .url('htt

【機器學習】決策樹演算法程式碼實現

#coding=utf8 ‘’’ Created on 2018年11月4日 @author: xiaofengyang 決策樹演算法:ID3演算法 ‘’’ from sklearn.feature_extraction import DictVectorize